运行时依赖
安装命令
点击复制技能文档
docx-template-strict 的目的是将 .docx 文件作为模板使用,完整保留模板的封面、分节(sectPr)、页眉页脚、样式、下划线 run 结构、字体与布局;只在模板中指定的占位符位置填充文本/图片/参考文献。关键原则是不要用 python-docx 重新生成段落结构(这会破坏模板 run/sectPr)。本 skill 采用:docx(zip)→ XML 精确替换 → 写回 docx。
适用场景是“按某个 Word 模板格式提交作业/论文/报告,封面与排版必须和模板一致”。需要插图、图题、参考文献,同时保持模板视觉 1:1。输入要求(模板必须包含占位符)占位符格式统一:{{TOKEN_NAME}},必须是连续字符串,避免被 Word 拆成多个 run。
常用占位符(建议)包括: {{TITLE_CN}} / {{TITLE_EN}} {{NAME_CN}} / {{NAME_EN}} {{MAJOR}} {{CLASS}} {{STUDENT_ID}} {{COURSE}} {{TEACHER}} {{DATE_CN}} {{ABSTRACT_CN}} {{KEYWORDS_CN}} {{ABSTRACT_EN}} {{KEYWORDS_EN}}
图占位符(段落级)每张图推荐 3 段占位符(各占一整段,且仅包含该 token): {{FIG1}} {{FIG1_CAPTION_CN}} {{FIG1_CAPTION_EN}} 第二张图:FIG2 同理。
参考文献占位符推荐整块替换:{{REFERENCES}}(多行文本,包含 [1]...)。
用法: 1) 填充模板生成 docx 运行脚本: python3 ~/.openclaw/skills/docx-template-strict/scripts/fill_template.py \ --template "/path/to/template.docx" \ --out "/path/to/output.docx" \ --data "/path/to/data.json" data.json 示例: { "TITLE_CN": "...", "TITLE_EN": "...", "NAME_CN": "林佩权", "NAME_EN": "Lin Peiquan", "ABSTRACT_CN": "...", "ABSTRACT_EN": "...", "KEYWORDS_CN": "...", "KEYWORDS_EN": "...", "REFERENCES": "[1] ...\n[2] ...\n" }
2) 插图(可选)在 data.json 中提供: { "FIG1": {"path": "/path/to/fig1.png"}, "FIG2": {"path": "/path/to/fig2.jpg"} } 脚本会:把 {{FIG1}} 所在段落替换为图片 drawing,保留模板段落样式(对齐/缩进)。
输出 QA(脚本自动做)包括: 扫描是否仍存在 {{...}} 未替换 token 检查模板分节数量(sectPr)是否被破坏(必须一致) 检查 media 资源是否写入且 rels 指向有效
注意事项 / 已知限制: 强依赖占位符:如果模板里没有 token,无法保证 1:1。 若 Word/WPS 将 token 拆成多个 run:脚本可能无法识别(建议复制 token 时使用“仅保留文本”)。 PDF 导出不在本 skill 保真范围内:建议用本机 Word/WPS 导出 PDF,避免 LibreOffice 渲染漂移。