Pandoc 中文 Word 模板 Skill
用预置的中文 Word 参考模板和 Lua 过滤器,让 Markdown 通过 Pandoc 导出符合中文排版习惯的 docx 文档。
技能为本地文档转换,描述范围内无网络请求、无凭据读取、无破坏性操作,工作流透明并提示用户验证输出;扣分项:SKILL.md 引用的 scripts/md2docx.py 等脚本未在本次证据中提供,无法静态核实其行为是否严格最小权限,许可证元数据未知,回滚与确认机制未声明。
SKILL.md 提供了清晰的命令路径、模板选择表、无 Bash 时的 PowerShell 回退以及转换后验证步骤,自洽性较好;扣分项:脚本源码未见,错误处理与失败反馈质量无法核实,未提供测试或边界用例(如空文档、损坏模板),静态审查下不允许超过10分。
场景清晰(Markdown↔docx,中文排版),触发描述明确列出 md/docx 转换、中文模板、SCI 模板等语义触发条件,并明确声明了不适用边界(WPS、macOS Word 兼容性问题),对中文用户和国内笔记软件(思源、Typora、Obsidian)适配良好;扣分项:依赖本地安装 Pandoc 与 Python,环境前置条件在 SKILL.md 中说明较简略。
文档分层良好:SKILL.md 精炼、README 详尽含 FAQ 与已知限制、CHANGELOG 持续更新至 2026-05,维护轨迹明显活跃;扣分项:许可证未在证据中出现,脚本与 Lua 文件的具体版本对应关系未声明,部分命名(模板中文名)跨平台稳定性存疑。
目标明确、对比价值清晰(解决 Pandoc 默认 docx 样式不符合中文排版习惯的真实痛点),README 有样式前后对比截图和详细进阶文档,边际价值明显;扣分项:静态审查无法执行验证,代表性输出未被独立复现,效果主张主要依赖作者截图,按上限不超过7分。
有多类佐证材料:变更日志、样式对比截图、知乎博客系列、pandoc 官方 issue 交叉引用;扣分项:均为作者自述材料,无第三方执行证据或测试套件,关键路径不可独立复现,静态上限为5分,事实与推断边界基本清楚但覆盖面有限。
- 许可证未在证据中确认,企业合规使用前需核实仓库 LICENSE。
- SKILL.md 引用的 Python 脚本源码未在本次审查证据中提供,安装前建议人工审阅脚本行为。
- 模板仅在 Windows 版 Microsoft Word 测试过,WPS 与 macOS Word 可能渲染不一致。
- 效果主张基于作者截图与博客,未经独立执行验证,重要文档请先小样转换核对样式。
- 使用需本地安装 Pandoc 与 Python,中文文件名模板在非 Windows 环境可能有路径编码问题。
这个 Skill 能做什么,适合哪些场景?
Pandoc 默认导出的 Word 文档样式往往不符合中文排版习惯,且对 HTML 标签、图片标题、字体颜色等的处理不理想。本仓库提供一套经过作者日常使用的 Word 参考模板(含标题编号/不编号、列表缩进变体、SCI 论文样式),并配套 Lua 过滤器和两个 Python 转换脚本。仓库包含可供 Agent 识别的 SKILL.md,作者声明可在 Claude Code、Codex 等支持 Skill 的 Agent 中使用。模板仅在 Windows 端 Office Word 测试过。
读取 Markdown 或 docx 文件,调用 Pandoc 完成双向转换:md2docx.py 先将 Markdown 转 HTML 再转 docx(配合 markdown-to-docx.lua 过滤器),docx2md.py 将 docx 转为 GFM 并可提取内嵌媒体。导出时套用 templates/ 目录下的参考模板,控制正文字体(宋体/Times New Roman)、标题黑体加粗、标题多级编号、列表缩进、引述块、代码块边框等样式。Lua 过滤器分别处理 HTML 标签识别(sub/sup/img)、图片 title 转 Figure 图注及编号、HTML span 字体颜色保留、行内代码独立样式。
- 思源笔记用户希望导出的 Word 文档符合中文排版(宋体正文、黑体标题),在设置中的「导出-Pandoc执行参数」配置 --reference-doc 模板路径
- Typora 用户在偏好设置「导出-Word(.docx)」中指定样式文件路径,让日常笔记导出即美化
- Obsidian 用户安装 obsidian-enhancing-export 插件后,在命令模板中加 --reference-doc 参数导出 Word
- 科研人员需要将 Markdown 论文导出为 SCI 风格 docx(双倍行距、标题编号、行号、Figure 图注)
- Agent 用户在 Claude Code/Codex 中要求「把 Markdown 转成 Word」「套用中文模板导出 docx」时,Skill 自动调用相应脚本
- 需要把已有 Word 文档转回 Markdown 并提取图片素材的用户,使用 docx2md.py 或 pandoc gfm 转换
这个 Skill 有哪些优点和局限?
- 提供 7 个现成的中文排版 Word 模板,覆盖标题编号/不编号、列表第二行顶格/缩进、无首行缩进、SCI 论文(双倍行距+行号)等常见需求
- 附带 5 个针对性 Lua 过滤器,解决 Pandoc 默认转换中 HTML 标签丢失、图片图注取 alt 而非 title、字体颜色丢失、图片编号、行内代码样式等实际问题
- 同时提供脚本封装和原始 Pandoc 命令两种用法,Bash 不可用时可用 PowerShell 等价管线
- README 详细说明如何自行修改模板样式(正文/标题/多级列表编号/表格/列表),并附作者知乎博客链接
- 面向双向转换:Markdown 到 docx 和 docx 到 Markdown(含媒体提取)都有覆盖
- 仅在 Windows 端 Office Word 测试,WPS 和 macOS 版 Word 可能存在兼容性问题,作者明确提示
- 仓库 License 未标注,采用前需自行确认授权
- 有序/无序列表的项目符号样式作者本人表示是误打误撞得到、自己未能复现,建议基于现有模板修改
- 表格单元格自动居中依赖 Markdown 源表格本身居中语法,模板无法强制
- 若以导出的 docx 再作为模板,会产生 -Tok 结尾的代码高亮样式导致无法修改高亮(Pandoc 已知 issue #10896),需直接使用本仓库模板
- README 未提供测试套件或版本兼容性说明
如何安装这个 Skill?
方式一:在 Claude Code、Codex、OpenClaw 等支持 Skill 的 Agent 中直接说「帮我安装这个 skill:https://github.com/Achuan-2/pandoc_docx_template」。方式二(手动):Codex 用户创建 %USERPROFILE%\.codex\skills\pandoc-docx-template 文件夹;Claude Code 用户创建 %USERPROFILE%\.claude\skills\pandoc-docx-template 文件夹,将仓库中 Skill 相关文件放入其中。仓库未提供自动化安装脚本。
如何使用这个 Skill?
前置条件:安装 Pandoc(用 pandoc --version 验证)。Markdown 转 Word:python scripts/md2docx.py input.md -o output.docx,可用 --reference 指定模板(默认 template_标题不编号-列表第二行顶格.docx),用 -- 追加 Pandoc 参数(如 -- --highlight-style tango)。Word 转 Markdown:python scripts/md2docx.py 的姊妹脚本 python scripts/docx2md.py input.docx -o output.md --media-dir assets。若无法运行 Bash 脚本,可直接调用 Pandoc 管线:pandoc input.md -t html | pandoc -f html -o output.docx --reference-doc <模板路径> --lua-filter markdown-to-docx.lua。在笔记软件中则在各自的导出设置里填入 --reference-doc 参数。
这个 Skill 与同类方案有什么区别?
作者定位是弥补 Pandoc 默认 docx 导出样式不符合中文排版习惯的问题;相比直接使用 pandoc 默认 --reference-doc,本仓库提供了现成模板和 Lua 过滤器合集,免去了全网缺少具体模板制作教程、需自行摸索的成本。