🗺️ 贡献者指南 · 笔记规范

本文档面向希望向本项目贡献笔记的贡献者。 请遵循以下规范,确保知识库的一致性和可维护性。


目录结构规范

Notes/
├── index.md                     ← 知识库首页(唯一保留的 index 文件)
├── 知识图谱构建方法论.md         ← 本文档
│
├── <学科英文名>/                 ← 如 Algorithms、CSAPP
│   ├── <学科英文名>.md           ← 学科根节点 Hub(入口)
│   ├── 01-<章节名>/             ← 数字前缀 + 中文名
│   │   ├── <章节中文名>.md      ← 章节导航 Hub
│   │   ├── <X.Y> <知识点>.md    ← 原子笔记,带编号
│   │   └── ...
│   ├── 02-<章节名>/
│   │   └── ...
│   ├── images/                  ← 图片资源(可选)
│   └── notes/                   ← 原始长篇笔记(不上传至网站)
│
├── Others/                      ← 其他辅助文档
└── README.md

关键说明:仓库中不存在 index.md(除根目录外)。所有导航由 Hub 文件(<名称>.md)承担,在 Quartz 网站和 Obsidian 本地使用同一套文件。

文件命名规则

要素规则示例
学科根目录英文名Algorithms/CSAPP/
章节目录<2位数字>-<中文名>01-算法分析
学科根节点<学科名>.mdAlgorithms.mdCSAPP.md
章节导航<章节中文名>.md算法分析.md计算机系统漫游.md
原子笔记<X.Y> <名称>.md1.1 复杂度分析.md
原始笔记放在学科 notes/ 目录CSAPP/notes/1.md

⚠️ 原子笔记必须包含 X.Y 数字前缀,否则无法在 Explorer 中正确排序。

原子笔记内容要求

每篇原子笔记应遵循以下格式:

---
created: <YYYY-MM-DD>
tags: [<章节标签>, <学科标签>, <知识标签>]
---
 
# <知识点名>
 
用一两句话概述该知识点的核心内容。
 
## <子标题>
 
- 要点 1
- 要点 2
 
## 相关概念
 
- 可选的跨章节/跨学科链接(使用 markdown 链接,不要用 wiki-link)

要点

  • 一个笔记只讲一个概念,粒度要均匀,避免大而全
  • 公式使用 LaTeX 语法($$$),Quartz 会自动渲染
  • 代码块标注语言类型
  • 图片放在章节目录下的 images/ 或学科公共 images/
  • 原子笔记不要有出链(入链由章节 Hub 提供),仅可通过 markdown 链接进行跨章节引用

章节导航 Hub 文件

每个章节目录中需要一个 Hub 文件:

位置<章节目录>/<章节中文名>.md

---
created: <YYYY-MM-DD>
tags: [<学科标签>, moc, <章节标签>]
---
 
# 第<N>章 <章节中文名>
 
> 一句话概述本章内容
 
## 本章知识点
 
- [[<学科>/<目录>/<X.Y> <知识点>|<X.Y> <知识点>]]
- [[<学科>/<目录>/<X.Y> <知识点>|<X.Y> <知识点>]]
- ...
 
---
 
[[../<学科>|← 返回 <学科> 总览]]

规范要点

  • 知识点列表必须按 X.Y 编号升序排列
  • 不要添加 [[../<学科>|<章节名>]] 自引用作为第一个知识点(直接从知识点列表开始)
  • 返回链接指向学科 Hub([[../<学科英文名>]]),而非 ../index
  • Hub 中列出的知识点链接使用完整显式路径,包含学科前缀

学科根节点 Hub 文件

位置<学科根目录>/<学科名>.md

文件命名:学科 Hub 文件名不加数字前缀,与学科目录名一致(如 CSAPP.mdAlgorithms.md)。

---
created: <YYYY-MM-DD>
tags: [<学科标签>, map-of-content, root]
---
 
# <学科名>
 
> 一句话描述该学科
 
---
 
## 章节导航
 
### [[<学科>/<章节目录>/<章节Hub>|第<N>章 <章节名>]]
<章节核心主题概述>
 
---
 
[[../index|← 返回 📚 笔记主页]]

规范要点

  • H1 标题直接用学科英文名(如 # CSAPP),不加「知识图谱」后缀
  • 章节链接使用 ### 标题链接 + 描述行格式,不再使用表格
  • 链接必须包含学科前缀,如 [[CSAPP/01-计算机系统漫游/计算机系统漫游]]
  • 返回链接指向根 index.md[[../index|← 返回 📚 笔记主页]]

链接规范(重要)

本仓库使用 Hub-only 文件体系,不依赖 index.md

位置链接目标示例
根 index.md → 学科学科 Hub[[CSAPP/CSAPP|CSAPP]]
学科 Hub → 章节章节 Hub[[Algorithms/01-算法分析/算法分析|第1章 算法分析]]
学科 Hub → 根根 index.md[[../index|← 返回 📚 笔记主页]]
章节 Hub → 原子笔记原子笔记文件[[CSAPP/01-计算机系统漫游/1.1 抽象层次结构|1.1 抽象层次结构]]
章节 Hub → 学科学科 Hub[[../CSAPP|← 返回 CSAPP 总览]]

标签体系

标签类型格式示例
学科标签小写英文csappalgorithms
章节标签<学科>-ch<编号>csapp-ch1algo-ch3
知识标签中文复杂度浮点数
页面类型map-of-content / moc / root根节点用 root

统一格式检查清单

学科根节点 Hub(<学科名>.md

# <学科英文名>                          ← 英文名,无「知识图谱」后缀
### [[<学科>/<章节目录>/<章节Hub>|第N章 <章节名>]]  ← 含学科前缀
<描述>
[[../index|← 返回 📚 笔记主页]]         ← 底部回链
  • H1 标题为学科英文名(# CSAPP),无中文「知识图谱」
  • 章节链接使用 ### 标题链接格式,含学科前缀
  • 底部有 [[../index|← 返回 📚 笔记主页]] 回链
  • 无表格格式

章节 Hub(<章节中文名>.md

# 第N章 <章节中文名>
 
## 本章知识点
 
- [[<学科>/<章节目录>/<X.Y> <知识点>|<X.Y> <知识点>]]
 
---
 
[[../<学科>|← 返回 <学科英文名> 总览]]   ← 底部回链
  • 文件名不含数字前缀(如 计算机系统漫游.md,非 01-计算机系统漫游.md
  • 没有 [[../<学科>|<章节名>]] 自引用行作为第一个知识点
  • 知识点列表按 X.Y 升序排列
  • 每条链接包含完整学科前缀(CSAPP/Algorithms/
  • 每条链接包含 |X.Y name 显示名(如 |1.1 抽象层次结构
  • 底部有 [[../<学科>|← 返回 <学科> 总览]] 回链
  • 回链不是用自引用行代替的

原子笔记(<X.Y> <名称>.md

  • 文件名包含 X.Y 数字前缀
  • 有 Front Matter(createdtags
  • 没有出链 wiki-link(入链由章节 Hub 提供)
  • 上下知识点导航用 wiki-link,带学科前缀和 |X.Y 显示名

链接格式总则

[[CSAPP/CSAPP|CSAPP]]                                                    ✅ 学科 Hub 显示名
[[CSAPP/01-计算机系统漫游/计算机系统漫游|第1章 计算机系统漫游]]        ✅ 学科 Hub→章节 Hub
[[CSAPP/01-计算机系统漫游/1.1 抽象层次结构|1.1 抽象层次结构]]          ✅ 章节 Hub→原子笔记
[[../CSAPP|← 返回 CSAPP 总览]]                                           ✅ 回链
[[../index|← 返回 📚 笔记主页]]                                          ✅ 学科 Hub→主页
[[CSAPP/01-计算机系统漫游/1.1 抽象层次结构]]                            ❌ 缺少 | 显示名
[[../CSAPP|计算机系统漫游]]                                              ❌ 章节 Hub 中不允许自引用
[[01-计算机系统漫游/1.1 抽象层次结构]]                                  ❌ 缺少学科前缀

提交 PR 流程

  1. Fork 本仓库
  2. 按照上述规范创建或修改笔记
  3. 对照检查清单逐项验证
  4. 提交 Pull Request,说明改动内容

注意事项

  • 不要上传 PDF 文件(已全局 .gitignore
  • 不要在原子笔记中使用出链 wiki-link(会破坏图谱结构),跨章节引用请用 markdown 链接。同一章节内的上下知识点导航可用 wiki-link,须带学科前缀和 |X.Y 显示名
  • notes/ 目录的原始笔记仅供 Git 备份,不会出现在 Quartz 网站中
  • 除根 index.md 外,不要创建其他 index.md 文件(CI 会自动删除)
  • 章节导航中知识点列表必须按 X.Y 编号升序排列
  • 所有 wiki-link 使用完整显式路径,包含学科前缀和 |X.Y 显示名,不要使用裸链接或模糊匹配