Skip to content

Wiki Schema

仲灏约 1 分钟

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):

yaml
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)(只读引用,不改为移动)
  • 更新:改 wiki 页时递增 updated 日期
  • 导航:新 wiki 页写入 _wiki/index.md 对应分节;每次操作追加 _wiki/log.md
  • 溯源:综合 3+ 来源的段落,可在段末脚注链到 raw:(来源:[raw 副本](../raw/articles/xxx.md))

Frontmatter(wiki 页) ​

yaml
---
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(不可变来源) ​

yaml
---
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 ​

新信息与旧内容冲突时:

  1. 以日期较新的来源为准(除非旧结论仍有效)
  2. 无法调和则并列两种说法并标注日期
  3. frontmatter 设置 contradictions: [page-slug] 或 contested: true
  4. lint 时上报人工确认

Ingest 来自博客的标准流程 ​

  1. 复制(不移动)博客 md → _wiki/raw/articles/,文件名建议 blog-<域>-<简短主题>.md
  2. 写入 raw frontmatter(blog_source, ingested, sha256)
  3. 查 _wiki/index.md 与 search_files,避免重复 concept
  4. 创建/更新 concepts/ 或 entities/,交叉链接
  5. 更新 _wiki/index.md、log.md
  6. 若一次更新 10+ 已有页,先向用户确认范围

发布到博客(wiki → VuePress) ​

  1. 在 _drafts/blog/ 生成带 VuePress frontmatter 的草稿
  2. 用户审阅后移入 10.大前端/ 等目录
  3. 在 wiki 页 frontmatter 补 permalink
  4. log.md 记录 publish 动作

Hermes 配置 ​

bash
# ~/.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。

上次更新: