# 7. 参与维护 如何修正或扩展这个 Wiki。 ## 快速修正(错别字、一句话) 1. 编辑 `docs/` 下对应的 `.md` 文件。 2. 运行 `../.venv/bin/mkdocs build` 重新生成 `../site/zh/` 下的静态站点,或运行 `../.venv/bin/mkdocs serve` 实时预览。 3. 确认满意后提交。 这个 Wiki 只存在于本机:没有远程仓库、没有 CI、没有 Pages。阅读者可以本地打开 `site/index.html`,也可以自己运行 `mkdocs serve`。 ## 本地开发(编辑时预览) ```bash cd xly-wiki/zh ../.venv/bin/mkdocs serve # http://127.0.0.1:8000,支持实时刷新 ``` ## 重新生成自动目录 ```bash python scripts/gen_catalog.py # 通过 ~/.my.cnf 查询实时 DB,写入 docs/auto-catalog/** ``` 脚本直接使用 `~/.my.cnf` 的 `[client]` 配置连接实时 MySQL。需要时可用环境变量覆盖: ```bash DB_DEFAULTS_FILE=/path/to/other.cnf python scripts/gen_catalog.py DB_NAME=xlyweberp_some_other python scripts/gen_catalog.py ``` 生成器每次运行都会清空并重写 `docs/auto-catalog/{tables,views,procedures,functions}/` 下的全部文件。这些目录中的手工修改会丢失。 ## Pre-commit 钩子(可选,建议本地编辑时使用) 安装一次: ```bash ln -s ../../scripts/precommit.sh .git/hooks/pre-commit chmod +x scripts/precommit.sh ``` 钩子会在每次提交时运行 `mkdocs build --strict`,以便在提交前发现断开的交叉链接。 ## 风格 - **Markdown 源文件是事实来源。** `site/` 中的静态 HTML 是生成物,不要手工编辑。 - **中文正文保留代码和业务术语的原始标识符。** 术语翻译集中在 [术语表](../glossary/index.md)。 - **切片是叙述的主要位置。** 概念页和参考页保持短小;如果概念页超过约 300 字,通常应改成一个切片。 - **自动目录页不手工编辑。** 从手写内容交叉链接到自动目录,不反向维护叙述。 - **多做交叉链接。** 切片中首次提到框架表时应链接到自动目录,首次提到概念时应链接到概念页。 ## 添加新切片 1. 创建 `docs/slices/NN-.md`。 2. 把它加入 `mkdocs.yml` 的导航。 3. 端到端记录该切片(一个 UI 动作,贯穿所有层)。 4. 将概念链接到 Concepts,将表 / 存储过程链接到 Auto-Catalog。 5. 更新 [切片索引](../slices/index.md) 表。 ## 添加新概念 只有当至少一个切片引入该概念时才添加概念页。没有任何引用的概念页是负担。