newcomb-labs/engineering-journal-kb

GitHub: newcomb-labs/engineering-journal-kb

一个基于 Docusaurus 的工程日志与文档平台,用于集中化、可治理地沉淀知识并提供自动化内容管理。

Stars: 0 | Forks: 0

# Newcomb Labs — 工程日志 一个面向实验室、课堂笔记、案例研究、日志条目和治理文档的个人知识库与文档平台。 使用 **Docusaurus** 构建,并托管在 [chrisnewcomb.name](https://chrisnewcomb.name)。 ## 内容板块 | 板块 | 说明 | | --- | --- | | `journal/` | 按日期记录的工程笔记、实验室笔记、架构决策与回顾 | | `notes/class/` | 来自 BYU-Pathway Worldwide 课程的课堂笔记 | | `personal/` | 信仰反思与个人写作 | | `labs/` | 动手实验练习与逐步指南 | | `case-studies/` | 故障排查记录与根因分析 | | `decisions/` | 架构决策记录(ADR) | | `governance/` | 仓库规范、内容契约、分类法与生命周期规则 | | `engineering/` | 参考架构与自动化文档 | | `operations/` | 运行手册与事件响应流程 | | `library/` | 阅读笔记与参考资料 | | `resources/` | 外部链接与精选参考 | | `experiments/` | 探索性工作与概念验证 | | `changelog/` | 站点与平台变更历史 | | `drafts/` | 进行中的工作 | | `templates/` | 所有 19 个分类的受控内容模板 | ## 技术栈 - **文档平台:** [Docusaurus 3.9](https://docusaurus.io) - **托管:** GitHub Pages → Cloudflare CDN → `chrisnewcomb.name` - **CI/CD:** GitHub Actions - **代码检查:** MegaLinter(JS、CSS、Python、密钥与漏洞检查) - **内容治理:** 自定义 Python 校验器与预提交钩子 - **拼写检查:** 带有自定义词典的 cspell - **安全扫描:** Gitleaks、Secretlint、Trivy ## 内容治理 每个文档都需要包含受控的前置元数据块: ``` title: "" description: "" content_type: doc|journal|lab|case-study type: doc|journal|lab|case-study status: draft|active|deprecated lifecycle: draft|active|deprecated created_at: "YYYY-MM-DD" last_reviewed: "YYYY-MM-DD" owners: - "@newcomb-labs" tags: - notes primary_domain: networking|security|systems|... category: journal|lab-notes|class-notes|... ``` 完整的架构说明请参见 [治理文档](https://chrisnewcomb.name/docs/governance/repo-standards)。 ## 生成内容 `generate_content_artifacts.py` 脚本会根据受控前置元数据生成确定性内容,确保每次提交后保持同步: - **章节目录** — 每个 `index.md` 落地页都会自动生成目录,列出其文档范围内的条目 - **相关链接** — 内容文件会新增 `## 相关内容` 章节,基于标签、领域与分类的加权重叠计算生成 - **全站索引** — 位于 `/indexes/all-content` 的单一页面,按章节列出所有已发布文档 - **区域索引** — 位于 `_generated/indexes/` 的各章节索引 - **术语表** — 基于受控标签与术语构建的中心化术语表 - **内容清单** — 所有文档及其元数据的机器可读 JSON 清单 ## 创建内容 使用内容脚手架 CLI: ``` # 新建日志条目 python3 scripts/new_content.py journal "My Entry Title" # 新建课堂笔记 python3 scripts/new_content.py doc "My Notes Title" --category class-notes # 新建实验笔记 python3 scripts/new_content.py journal "My Lab Title" --category lab-notes # 新建 ADR python3 scripts/new_content.py doc "ADR: My Decision" --category decisions ``` ## 分支与提交规范 **分支命名:** `feat/`、`fix/`、`chore/`、`docs/` **提交信息** 必须遵循 [Conventional Commits](https://www.conventionalcommits.org): ``` feat(scope): description fix(scope): description docs(scope): description chore(scope): description ``` **拉取请求** 必须包含 `type:*` 标签、`area:*` 标签,并关联对应问题。 ## 本地开发 ``` # 安装依赖 cd website && npm install # 启动开发服务器 npm start # 构建 npm run build # 运行内容验证 python3 scripts/validate_content.py website/docs/... # 运行预提交钩子 pre-commit run --all-files ``` ## CI 工作流 所有 18 个 GitHub Actions 工作流均包含内联文档说明。关键流水线包括: - **docs-ci** — 校验治理规则、检查 Markdown 格式、校验 Prettier、构建站点 - **content-validation** — 校验变更文件中的受控前置元数据 - **megalinter** — 对 JS、CSS、Python、YAML 进行代码检查与自动修复 - **spell-check** — 对 Markdown/MDX 执行 cspell 检查并监控旧版文档漂移 - **link-check** — 使用 lychee 扫描失效链接(PR、推送与每周调度) - **conventional-commits** — 强制 PR 标题符合约定格式 - **pr-preview** — 为每个 PR 部署 Cloudflare Pages 预览 - **gitleaks** — 对每个 PR 和推送进行密钥扫描 所有 CI 工作流都会提交 `GITHUB_STEP_SUMMARY` 表格,以便快速查看结果。 ## 版本 当前版本:`0.3.0` — 详见 [CHANGELOG.md](https://github.com/newcomb-labs/engineering-journal-kb/blob/main/CHANGELOG.md) 版本管理由 [Commitizen](https://commitizen-tools.github.io/commitizen/) 控制, 通过 `bumpversion.yml`(创建发布 PR)与 `release-tag.yml`(在合并时创建 Git 标签)实现。
标签:Docusaurus, Ruby, 个人知识管理, 内容模板, 变更日志, 可搜索知识库, 学习笔记, 实验室笔记, 工程文档, 技术写作, 搜索, 数据可视化, 文档系统, 架构决策记录, 案例研究, 治理文档, 知识库, 自动化文档, 课程笔记, 运行手册, 逆向工具, 静态站点生成