Wiki Schema
Domain
仲灏个人对外知识库(public-docs):大前端、后端与运维、其他技术、生活随笔、面经与项目笔记。 本目录 _wiki/ 由 Hermes llm-wiki skill 维护;与 VuePress 博客层并行,通过 ingest 从博客复制来源,通过 发布草稿 回流博客。
双轨边界(必读)
VuePress 博客层 — Agent 只读
以下路径供 VuePress 构建对外站点,禁止直接修改(摄入时仅 复制 到 _wiki/raw/,不改源文件):
| 路径 | 用途 |
|---|---|
index.md | 博客首页 |
目录页/ | 分类落地页(Catalogue) |
@pages/ | 归档 / 分类 / 标签页 |
_posts/ | 随笔 |
10.大前端/ | 前端技术文章 |
20.后端&运维/ | 后端与运维文章 |
30.其他技术/ | 其他技术文章 |
40.生活/ | 生活类文章 |
50.关于我/、60.收藏/ | 个人页与收藏 |
《Notes-admin》文档/、《react-zh-admin》文档/、《前端项目基础建设》笔记/、《大前端》面经/ | 专题笔记 |
博客文章 frontmatter 约定(摄入时保留在 raw 副本中,wiki 页使用本 schema 的 frontmatter):
title:
date:
permalink: /pages/xxxx/ # 或 /web 等分类 permalink
categories:
tags:
sidebar:Wiki 层 — Agent 可写
仅 _wiki/ 下内容(raw/ 写入后视为不可变,见下方 raw 约定):
_wiki/
├── SCHEMA.md
├── index.md
├── log.md
├── raw/
├── entities/
├── concepts/
├── comparisons/
└── queries/草稿层 — 人工审阅后移入博客
| 路径 | 用途 |
|---|---|
_drafts/blog/ | wiki 定稿后的 VuePress 博文草稿;不参与 wiki lint 的 index 统计 |
VuePress 构建须排除:_wiki/**、_drafts/**、.obsidian/**(见仓库根 .vuepress/config.js)。
Conventions
- 文件名:小写英文与连字符为主(如
vue-computed-vs-watch.md);中文 slug 仅用于与博客源文件对应的 raw 副本 - Wiki 页:必须有 YAML frontmatter(见下)
- 链接(本库强制 Markdown,不用 wikilink):
- 与 Obsidian
useMarkdownLinks: true、VuePress 保持一致 - wiki 页互链用 相对路径 Markdown:
[显示文字](../entities/vue.md) - 每页至少 2 条出站 Markdown 链接(指向其他 wiki 页或博客只读原文)
- 禁止
[[wikilinks]](Hermes 默认 skill 与本 SCHEMA 冲突时,以本 SCHEMA 为准) - 连到博客原文:
[原文](../../10.大前端/1040.Vue/xxx.md)(只读引用,不改为移动)
- 与 Obsidian
- 更新:改 wiki 页时递增
updated日期 - 导航:新 wiki 页写入
_wiki/index.md对应分节;每次操作追加_wiki/log.md - 溯源:综合 3+ 来源的段落,可在段末脚注链到 raw:
(来源:[raw 副本](../raw/articles/xxx.md))
Frontmatter(wiki 页)
---
title: 页面标题
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query | summary
tags: [来自下方 Taxonomy]
sources:
- _wiki/raw/articles/源文件名.md
# 可选:
blog_source: 10.大前端/1040.Vue/xxx.md # 对应博客原文路径(只读引用)
permalink: /pages/xxxx/ # 若已发布到博客,填 VuePress permalink
confidence: high | medium | low
contested: true
contradictions: [other-page-slug]
---raw/ Frontmatter(不可变来源)
---
source_url: https://example.com/article # 可选
blog_source: 10.大前端/1040.Vue/xxx.md # 从本仓库博客复制时必填
ingested: YYYY-MM-DD
sha256: <正文(frontmatter 之后)的 sha256>
---raw/ 铁律:写入后不再修改;更正写在 wiki 页。重新摄入同一 blog_source 时比对 sha256,未变则跳过。
Tag Taxonomy
新增 tag 须先在本节登记,再用于页面。
前端
javascript, typescript, vue, react, nodejs, es6, webpack, vite, uniapp, electron, 小程序, css, html, 性能, 工程化
后端与运维
java, spring, springboot, python, golang, nestjs, redis, mysql, linux, docker, k8s, nginx, 运维
其他技术
物联网, 嵌入式, 网络, 算法, 数据结构
生活与其他
健康, 阅读, 工具, 随笔, 理财
元信息
面经, 项目笔记, 对比, 教程, 踩坑, 面试
Page Thresholds
- 新建页:实体/概念在 2+ 来源出现,或在单篇来源中处于核心地位
- 更新已有页:来源仅顺带提及时,合并进已有 concept/entity
- 不建页:脚注级提及、域外内容、一次性碎碎念
- 拆分:单页超过约 200 行
- 归档:内容被完全取代 →
_wiki/_archive/,从index.md移除
Entity Pages
人物、框架、产品、公司等。须含:概述、关键事实、与其他页面的 Markdown 相对链接、sources。
Concept Pages
技术或生活主题。须含:定义、当前理解、开放问题、相关 Markdown 相对链接。
Lint 链接检查(Markdown 模式)
- 断链:
[text](path)中path指向不存在的文件 - 孤立页:无其它 wiki 页通过 Markdown 链接指向本页(可用脚本扫
](相对路径) - wikilink 残留:正文或 index 中出现
[[...]]视为违规,应改为 Markdown 链接
Comparison Pages
对比分析;优先用表格;给出结论与 sources。
Update Policy
新信息与旧内容冲突时:
- 以日期较新的来源为准(除非旧结论仍有效)
- 无法调和则并列两种说法并标注日期
- frontmatter 设置
contradictions: [page-slug]或contested: true - lint 时上报人工确认
Ingest 来自博客的标准流程
- 复制(不移动)博客 md →
_wiki/raw/articles/,文件名建议blog-<域>-<简短主题>.md - 写入 raw frontmatter(
blog_source,ingested,sha256) - 查
_wiki/index.md与search_files,避免重复 concept - 创建/更新
concepts/或entities/,交叉链接 - 更新
_wiki/index.md、log.md - 若一次更新 10+ 已有页,先向用户确认范围
发布到博客(wiki → VuePress)
- 在
_drafts/blog/生成带 VuePress frontmatter 的草稿 - 用户审阅后移入
10.大前端/等目录 - 在 wiki 页 frontmatter 补
permalink log.md记录publish动作
Hermes 配置
# ~/.hermes/.env
WIKI_PATH=/Users/zhonghao/Code/zh-cloud/zh-cloud-public-docs/_wiki
OBSIDIAN_VAULT_PATH=/Users/zhonghao/Code/zh-cloud/zh-cloud-public-docs每次会话开始:读 SCHEMA.md → index.md → log.md 最近 30 条,再 ingest / query / lint。

讨论区
欢迎留下想法与补充