# Editorial drafts live on private cms/* branches, not in Hugo's draft flag.
# Keep Cloudflare preview deployments disabled/protected before saving CMS drafts.
backend:
  name: github
  repo: Ziba-li/orthant
  branch: main
  base_url: https://orthant-5pt.pages.dev
  auth_endpoint: api/auth

publish_mode: editorial_workflow
locale: zh_Hans
site_url: https://orthant-5pt.pages.dev
display_url: https://orthant-5pt.pages.dev
logo_url: /favicon.svg
media_folder: static/uploads
public_folder: /uploads
show_preview_links: false

# Strict false excludes section _index.md (no draft field) and the two legacy sample drafts.
# Imported articles must use draft: false before they can be managed by these collections.
# Do not auto-convert the existing sample drafts during migration.
collections:
  - name: python
    label: Python 基础
    label_singular: 技术笔记
    editor: {preview: false}
    description: 保存后进入编辑流程，确认内容可公开再发布；原有样例草稿仅保留本地预览。
    folder: content/knowledge/python
    create: true
    extension: md
    format: yaml-frontmatter
    filter: {field: draft, value: false}
    slug: "note-{{fields.cms_id}}"
    summary: "{{title}}"
    sortable_fields: [weight, date, title]
    fields:
      - {label: 标题, name: title, widget: string}
      - {label: 文章编号（自动生成）, name: cms_id, widget: uuid, read_only: true, hint: 无需填写；编号用于生成稳定的文章地址。}
      - label: 一句话摘要
        name: description
        widget: text
        hint: 用一两句话说明文章解决的问题，摘要会显示在列表和正文顶部。
      - {name: draft, widget: hidden, default: false}
      - label: 首次发布日期
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        time_format: false
        hint: 修改正文时不必修改此日期；最近更新时间由 Git 记录生成。
      - {label: 阅读顺序, name: weight, widget: number, value_type: int, default: 100, min: 1}
      - label: 关键词
        name: tags
        widget: list
        required: false
        default: []
        hint: 用英文逗号分隔关键词，例如迭代器, 数据模型；所属主题由左侧栏目决定。
      - label: 正文
        name: body
        widget: markdown
        modes: [rich_text, raw]
        sanitize_preview: true
        hint: 代码注明语言；公式使用 math 代码块。复杂公式、表格或 Hugo 语法请切换源码模式编辑。
        default: |
          ## 要解决的问题

          这篇笔记回答什么问题？适用于什么场景？

          ## 核心概念

          用自己的话解释概念，写清前提和边界。

          ## 示例与实践

          给出一个最小例子，说明输入、过程和结果。

          ## 常见误区

          记录容易混淆的地方，以及不适用的情况。

          ## 参考资料

          列出实际使用的官方文档、论文或其他原始来源。

  - name: leetcode
    label: LeetCode
    label_singular: 技术笔记
    editor: {preview: false}
    description: 保存后进入编辑流程，确认内容可公开再发布；原有样例草稿仅保留本地预览。
    folder: content/knowledge/leetcode
    create: true
    extension: md
    format: yaml-frontmatter
    filter: {field: draft, value: false}
    slug: "note-{{fields.cms_id}}"
    summary: "{{title}}"
    sortable_fields: [weight, date, title]
    fields:
      - {label: 标题, name: title, widget: string}
      - {label: 文章编号（自动生成）, name: cms_id, widget: uuid, read_only: true, hint: 无需填写；编号用于生成稳定的文章地址。}
      - label: 一句话摘要
        name: description
        widget: text
        hint: 用一两句话说明文章解决的问题，摘要会显示在列表和正文顶部。
      - {name: draft, widget: hidden, default: false}
      - label: 首次发布日期
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        time_format: false
        hint: 修改正文时不必修改此日期；最近更新时间由 Git 记录生成。
      - {label: 阅读顺序, name: weight, widget: number, value_type: int, default: 100, min: 1}
      - label: 关键词
        name: tags
        widget: list
        required: false
        default: []
        hint: 用英文逗号分隔关键词，例如迭代器, 数据模型；所属主题由左侧栏目决定。
      - label: 正文
        name: body
        widget: markdown
        modes: [rich_text, raw]
        sanitize_preview: true
        hint: 代码注明语言；公式使用 math 代码块。复杂公式、表格或 Hugo 语法请切换源码模式编辑。
        default: |
          ## 要解决的问题

          这篇笔记回答什么问题？适用于什么场景？

          ## 核心概念

          用自己的话解释概念，写清前提和边界。

          ## 示例与实践

          给出一个最小例子，说明输入、过程和结果。

          ## 常见误区

          记录容易混淆的地方，以及不适用的情况。

          ## 参考资料

          列出实际使用的官方文档、论文或其他原始来源。

  - name: machine-learning
    label: 机器学习
    label_singular: 技术笔记
    editor: {preview: false}
    description: 保存后进入编辑流程，确认内容可公开再发布；原有样例草稿仅保留本地预览。
    folder: content/knowledge/machine-learning
    create: true
    extension: md
    format: yaml-frontmatter
    filter: {field: draft, value: false}
    slug: "note-{{fields.cms_id}}"
    summary: "{{title}}"
    sortable_fields: [weight, date, title]
    fields:
      - {label: 标题, name: title, widget: string}
      - {label: 文章编号（自动生成）, name: cms_id, widget: uuid, read_only: true, hint: 无需填写；编号用于生成稳定的文章地址。}
      - label: 一句话摘要
        name: description
        widget: text
        hint: 用一两句话说明文章解决的问题，摘要会显示在列表和正文顶部。
      - {name: draft, widget: hidden, default: false}
      - label: 首次发布日期
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        time_format: false
        hint: 修改正文时不必修改此日期；最近更新时间由 Git 记录生成。
      - {label: 阅读顺序, name: weight, widget: number, value_type: int, default: 100, min: 1}
      - label: 关键词
        name: tags
        widget: list
        required: false
        default: []
        hint: 用英文逗号分隔关键词，例如迭代器, 数据模型；所属主题由左侧栏目决定。
      - label: 正文
        name: body
        widget: markdown
        modes: [rich_text, raw]
        sanitize_preview: true
        hint: 代码注明语言；公式使用 math 代码块。复杂公式、表格或 Hugo 语法请切换源码模式编辑。
        default: |
          ## 要解决的问题

          这篇笔记回答什么问题？适用于什么场景？

          ## 核心概念

          用自己的话解释概念，写清前提和边界。

          ## 示例与实践

          给出一个最小例子，说明输入、过程和结果。

          ## 常见误区

          记录容易混淆的地方，以及不适用的情况。

          ## 参考资料

          列出实际使用的官方文档、论文或其他原始来源。

  - name: computer-vision
    label: 计算机视觉
    label_singular: 技术笔记
    editor: {preview: false}
    description: 保存后进入编辑流程，确认内容可公开再发布；原有样例草稿仅保留本地预览。
    folder: content/knowledge/computer-vision
    create: true
    extension: md
    format: yaml-frontmatter
    filter: {field: draft, value: false}
    slug: "note-{{fields.cms_id}}"
    summary: "{{title}}"
    sortable_fields: [weight, date, title]
    fields:
      - {label: 标题, name: title, widget: string}
      - {label: 文章编号（自动生成）, name: cms_id, widget: uuid, read_only: true, hint: 无需填写；编号用于生成稳定的文章地址。}
      - label: 一句话摘要
        name: description
        widget: text
        hint: 用一两句话说明文章解决的问题，摘要会显示在列表和正文顶部。
      - {name: draft, widget: hidden, default: false}
      - label: 首次发布日期
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        time_format: false
        hint: 修改正文时不必修改此日期；最近更新时间由 Git 记录生成。
      - {label: 阅读顺序, name: weight, widget: number, value_type: int, default: 100, min: 1}
      - label: 关键词
        name: tags
        widget: list
        required: false
        default: []
        hint: 用英文逗号分隔关键词，例如迭代器, 数据模型；所属主题由左侧栏目决定。
      - label: 正文
        name: body
        widget: markdown
        modes: [rich_text, raw]
        sanitize_preview: true
        hint: 代码注明语言；公式使用 math 代码块。复杂公式、表格或 Hugo 语法请切换源码模式编辑。
        default: |
          ## 要解决的问题

          这篇笔记回答什么问题？适用于什么场景？

          ## 核心概念

          用自己的话解释概念，写清前提和边界。

          ## 示例与实践

          给出一个最小例子，说明输入、过程和结果。

          ## 常见误区

          记录容易混淆的地方，以及不适用的情况。

          ## 参考资料

          列出实际使用的官方文档、论文或其他原始来源。

  - name: natural-language-processing
    label: 自然语言处理
    label_singular: 技术笔记
    editor: {preview: false}
    description: 保存后进入编辑流程，确认内容可公开再发布；原有样例草稿仅保留本地预览。
    folder: content/knowledge/natural-language-processing
    create: true
    extension: md
    format: yaml-frontmatter
    filter: {field: draft, value: false}
    slug: "note-{{fields.cms_id}}"
    summary: "{{title}}"
    sortable_fields: [weight, date, title]
    fields:
      - {label: 标题, name: title, widget: string}
      - {label: 文章编号（自动生成）, name: cms_id, widget: uuid, read_only: true, hint: 无需填写；编号用于生成稳定的文章地址。}
      - label: 一句话摘要
        name: description
        widget: text
        hint: 用一两句话说明文章解决的问题，摘要会显示在列表和正文顶部。
      - {name: draft, widget: hidden, default: false}
      - label: 首次发布日期
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        time_format: false
        hint: 修改正文时不必修改此日期；最近更新时间由 Git 记录生成。
      - {label: 阅读顺序, name: weight, widget: number, value_type: int, default: 100, min: 1}
      - label: 关键词
        name: tags
        widget: list
        required: false
        default: []
        hint: 用英文逗号分隔关键词，例如迭代器, 数据模型；所属主题由左侧栏目决定。
      - label: 正文
        name: body
        widget: markdown
        modes: [rich_text, raw]
        sanitize_preview: true
        hint: 代码注明语言；公式使用 math 代码块。复杂公式、表格或 Hugo 语法请切换源码模式编辑。
        default: |
          ## 要解决的问题

          这篇笔记回答什么问题？适用于什么场景？

          ## 核心概念

          用自己的话解释概念，写清前提和边界。

          ## 示例与实践

          给出一个最小例子，说明输入、过程和结果。

          ## 常见误区

          记录容易混淆的地方，以及不适用的情况。

          ## 参考资料

          列出实际使用的官方文档、论文或其他原始来源。

  - name: projects
    label: 项目案例
    label_singular: 项目案例
    editor: {preview: false}
    description: 只保存脱敏信息；保存后进入编辑流程，确认可公开再发布。原有样例不会出现在此列表。
    folder: content/projects
    create: true
    extension: md
    format: yaml-frontmatter
    filter: {field: draft, value: false}
    slug: "project-{{fields.cms_id}}"
    summary: "{{title}}"
    sortable_fields: [weight, date, title]
    fields:
      - {label: 标题, name: title, widget: string}
      - {label: 文章编号（自动生成）, name: cms_id, widget: uuid, read_only: true, hint: 无需填写；编号用于生成稳定的文章地址。}
      - {label: 一句话摘要, name: description, widget: text}
      - {name: draft, widget: hidden, default: false}
      - label: 首次发布日期
        name: date
        widget: datetime
        default: "{{now}}"
        date_format: YYYY-MM-DD
        time_format: false
        hint: 修改正文时不必修改此日期；最近更新时间由 Git 记录生成。
      - {label: 阅读顺序, name: weight, widget: number, value_type: int, default: 100, min: 1}
      - label: 首页精选
        name: featured
        widget: boolean
        default: false
        hint: 首页最多展示两个精选项目，按阅读顺序排列。
      - {label: 个人职责, name: role, widget: string}
      - label: 技术栈
        name: stack
        widget: list
        required: false
        default: []
        hint: 用英文逗号分隔，例如 Python, PyTorch, FastAPI。
      - label: 结果摘要
        name: outcome
        widget: text
        required: false
        hint: 只填写可验证且可公开的成果；没有可靠数字时不必强行量化。
      - label: 正文
        name: body
        widget: markdown
        modes: [rich_text, raw]
        sanitize_preview: true
        hint: 不上传公司源码、客户数据、内部地址或凭据。复杂公式与 Hugo 语法请用源码模式编辑。
        default: |
          ## 项目背景

          要解决什么问题？约束和目标是什么？

          ## 我的职责

          区分自己负责的部分、团队合作的部分与已有系统。

          ## 关键难点

          选一到两个真正有挑战的问题。

          ## 方案与取舍

          比较考虑过的方案，解释选择依据和代价。

          ## 实现过程

          展示可公开的架构、关键流程或代码片段。

          ## 结果与证据

          写清指标口径、对照条件和可验证的结果。

          ## 复盘

          哪些做法有效？如果重做，会怎样改进？

  - name: homepage
    label: 首页文案
    editor: {preview: false}
    description: 修改首页介绍与阅读入口，布局仍由网站模板控制。
    delete: false
    format: yaml-frontmatter
    files:
      - name: homepage
        label: 首页文案
        file: content/_index.md
        fields:
          - {name: title, widget: hidden, default: ORTHANT · 技术知识库}
          - {label: 页面摘要, name: description, widget: text}
          - {name: layout, widget: hidden, default: orthant-home}
          - {name: toc, widget: hidden, default: false}
          - {label: 首页标题, name: headline, widget: string}
          - {label: 首页介绍, name: intro, widget: text}
          - label: 推荐阅读方向
            name: directions
            widget: list
            summary: "{{fields.title}}"
            fields:
              - {label: 入口标题, name: title, widget: string}
              - {label: 入口说明, name: text, widget: text, required: false}
              - label: 目标主题
                name: path
                widget: select
                options:
                  - {label: Python 基础, value: knowledge/python}
                  - {label: LeetCode, value: knowledge/leetcode}
                  - {label: 机器学习, value: knowledge/machine-learning}
                  - {label: 计算机视觉, value: knowledge/computer-vision}
                  - {label: 自然语言处理, value: knowledge/natural-language-processing}
                  - {label: 项目案例, value: projects}
          - {name: body, widget: hidden, default: "", required: false}

  - name: about
    label: 关于我
    editor: {preview: false}
    description: 仅填写确认愿意公开的个人介绍、经历和联系方式。
    delete: false
    format: yaml-frontmatter
    files:
      - name: about
        label: 关于我
        file: content/about.md
        fields:
          - {label: 标题, name: title, widget: string}
          - {label: 一句话摘要, name: description, widget: text}
          - {name: toc, widget: hidden, default: false}
          - label: 正文
            name: body
            widget: markdown
            modes: [rich_text, raw]
            sanitize_preview: true
