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.mdsearch_files,避免重复 concept
  4. 创建/更新 concepts/entities/,交叉链接
  5. 更新 _wiki/index.mdlog.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.mdindex.mdlog.md 最近 30 条,再 ingest / query / lint。

上次更新:

讨论区

欢迎留下想法与补充