Skip to content

docs: 统一多语言文档生成(源文件驱动、生成文件不入库) - #760

Open
PtJade-Ceramic wants to merge 9 commits into
maboloshi:gh-pagesfrom
PtJade-Ceramic:ISSUE_TEMPLATE-test
Open

docs: 统一多语言文档生成(源文件驱动、生成文件不入库)#760
PtJade-Ceramic wants to merge 9 commits into
maboloshi:gh-pagesfrom
PtJade-Ceramic:ISSUE_TEMPLATE-test

Conversation

@PtJade-Ceramic

@PtJade-Ceramic PtJade-Ceramic commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

简介

将议题模板、贡献指南(CONTRIBUTING)与仓库/扩展自述(README)的多语言文档统一为「YAML 源文件 + Jinja2 模板」的自动化生成流程。

生成文件不入库,由云端 CI 在默认分支自动生成并提交;开发者只需维护源文件。

变更内容

  • 源目录script/multilingual-docs/ 下的 YAML 源文件 + *.md.j2 Jinja2 模板
  • 统一生成CONTRIBUTING、仓库 README、vscode 扩展 README、议题模板均由 script/manage_templates.py 生成简体/繁体版本
  • 依赖管理:依赖统一从 script/requirements.txt 安装(由 pyproject.toml / --requirements 生成)
  • 生成文件不入库.gitignore 忽略生成文件并 git rm --cached 移除已跟踪文件;云端 CI 在默认分支用 git add -f 自动生成并提交
  • pre-commit 钩子:源文件变更时自动验证并检测手动修改/过时的生成文件,不一致时提示并交互询问 Y/N;支持 --doc-dir 重定向输出与 GIT_HOOK_NONINTERACTIVE
  • 钩子测试test/test_pre_commit_hook.sh 覆盖「阻止手动修改 / 放行无关改动 / 生成文件不入库」三场景
  • CIcheck_issue_template_consistency.yml 校验 + 钩子测试 + 默认分支自动生成提交
  • 贡献指南:新增 Windows 开发者注意事项(常见坑、WSL 测试环境)与多语言文档工作流说明

验证

  • manage_templates.py --check 全部通过(OpenCC 校验 CN/TW 一致性)
  • test/test_pre_commit_hook.sh 在 Windows 与 WSL 均通过
  • PR CI 检查全部通过

应先于 #758 审查和合并

技术性:
- 添加 `script\multilingual-issue-templates\bug-提交.yml` 作为现有议题模板的唯一多语言源文件
- 添加 `script\manage_templates.py` 验证每个语种的纯度(防止简繁混杂),赋能本地验证和云端持续集成(CI)
- 添加 `.githooks\pre-commit` 在提交前验证议题模板,阻止手动更改单语言模板
- 添加 `.github\workflows\check_issue_template_consistency.yml` 在云端验证和生成议题模板
- 添加 `pyproject.toml` 给出依赖;添加 `script\.gitignore` 忽略自动生成的 `requirement.txt`
- 更改 `.gitignore` 将 Python 虚拟环境纳入其中(见 https://docs.python.org/3/library/venv.html )
- 添加 `CONTRIBUTING.md` 给出今后议题模板的维护指南

编辑性:
- [breaking change] 更改议题模板中“预期”和“实际”小节的 ID
- 议题模板中添加空行,改进排版
- 区分源文件、生成模板和生成贡献指南三类暂存内容
- 手动修改生成文件时先运行脚本再比对差异并阻止提交
- 源文件变更时自动生成模板并纳入暂存区
- 修复直接编辑 CONTRIBUTING 文档时无法拦截的问题

👷 ci(multilingual): 扩展多语言文件一致性检查

- 将工作流重命名为“多语言文件一致性”
- 新增 CONTRIBUTING.md 与 CONTRIBUTING_zh-TW.md 的一致性校验
- 更新流程图,展示源文件生成议题模板和贡献指南的流程
- 新增 Jinja2 依赖到 pyproject.toml,用于模板化生成多语言文档
- 移除 _render_doc 函数,改用 Jinja2 Environment 加载 .md.j2 模板
- 新增 CONTRIBUTING.md.j2 通用递归模板,结构与层级完全由 YAML 键顺序及 heading 嵌套推断
- 启用 StrictUndefined,模板缺失字段时立即报错,避免生成不完整文档
- `README`、`vscode-extension/README` 与 `CONTRIBUTING` 统一走 Jinja2 + YAML 源文件
- 源目录 `multilingual-issue-templates` 更名 `multilingual-docs`
- 贡献者墙自动写入 `README.yml`(`update_contributors_images.yml` + `update_contributors.py`)
- `pre-commit` 钩子覆盖三份生成文档,并强制 LF 行尾
- 单次使用符号内联
@PtJade-Ceramic PtJade-Ceramic changed the title docs(ISSUE_TEMPLATE): 新工作流程统一管理议题模板 docs: 统一管理议题模板、贡献指南与自述的多语言生成 Aug 2, 2026
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 2, 2026 17:15
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as draft August 2, 2026 17:29
- 移除无条件运行的生成脚本,`git diff HEAD` 检测已暂存的手动修改,阻止提交并打印差异
- 新增 `test/test_pre_commit_hook.sh`:临时 git 仓库重演钩子行为
  - 动态检测 GFM 块类型 × 行首/行中/行尾 + 列表/引用/alert 空行断块
  - 源文件变更自动生成纳入、无关改动放行
- CI 接入钩子测试;`chmod +x` 保证 Linux 钩子可执行;trap 清理失败不阻塞
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 2, 2026 18:29
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as draft August 2, 2026 18:31
PtJade-Ceramic and others added 2 commits August 3, 2026 03:32
- `git rm --cached` + `.gitignore`:自述/贡献指南/扩展自述/议题模板等生成文件不再入库
- 钩子:源文件变更时生成到临时目录与工作区比对,检测手动修改生成文件并阻止
- `manage_templates.py` 加 `--doc-dir` 支持输出重定向
- CI:默认分支 `git add -f` 生成并提交;PR 验证 + 测试钩子
- 测试脚本适配“手动修改阻止 / 生成文件不入库 / 无关放行,全通过”
- 检测到生成文件与源文件不一致时,列出文件并提示改源文件或重新生成预览
- 交互询问 y/N:Y 重新生成到工作区并继续提交;N 取消提交
- 钩子 stdin 默认 /dev/null,交互提交时从 /dev/tty 读取
- 新增 GIT_HOOK_NONINTERACTIVE,供测试/CI 非交互环境默认 N
- 测试脚本验证"重新生成"提示,三场景通过
- 新增"Windows 开发者注意事项":exec 位、CRLF/LF、钩子 stdin、PEP 668 常见坑
- 建议在 WSL 中测试以接近云端 CI,附 venv 准备步骤(依赖从 script/requirements.txt 安装)
@PtJade-Ceramic
PtJade-Ceramic marked this pull request as ready for review August 2, 2026 21:39
@PtJade-Ceramic PtJade-Ceramic changed the title docs: 统一管理议题模板、贡献指南与自述的多语言生成 docs: 统一多语言文档生成(源文件驱动、生成文件不入库) Aug 2, 2026
@maboloshi
maboloshi requested a review from Copilot August 3, 2026 01:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@PtJade-Ceramic

PtJade-Ceramic commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Tip

@maboloshi 请安装 GitHub App gh-chinese-ai-reviewer 到您的账户 + 仅 github-chinese 仓库。
好处:任何用户可随时在 PR 评论 /review 请求 AI 审查,或提交后自动审查;每次审查使用请求者自己的 DeepSeek 额度,仓库不存任何密钥;审查以机器人 gh-chinese-ai-reviewer[bot] 身份发布(不占用任何用户账号)。可随时在 App 设置中撤销安装。
FYI: PtJade-Ceramic#5 (comment)

@maboloshi

Copy link
Copy Markdown
Owner

最近可能没太多时间复核 复杂PR,需要晚点处理

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants