minimax-docx by minimax-ai/skills
npx skills add https://github.com/minimax-ai/skills --skill minimax-docx通过基于 OpenXML SDK (.NET) 构建的 CLI 工具或直接 C# 脚本创建、编辑和格式化 DOCX 文档。
首次使用: bash scripts/setup.sh(或在 Windows 上使用 powershell scripts/setup.ps1,--minimal 可跳过可选依赖项)。
会话中的首次操作: scripts/env_check.sh — 如果显示 NOT READY,请勿继续。(在同一会话的后续操作中可跳过此步骤。)
当任务需要结构性文档操作(自定义样式、复杂表格、多节布局、页眉/页脚、目录、图片)时,直接编写 C# 代码,而不是费力应对 CLI 的限制。使用以下脚手架:
// 文件:scripts/dotnet/task.csx (或在 Console 项目中新建一个 .cs 文件)
// dotnet run --project scripts/dotnet/MiniMaxAIDocx.Cli -- run-script task.csx
#r "nuget: DocumentFormat.OpenXml, 3.2.0"
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using var doc = WordprocessingDocument.Create("output.docx", WordprocessingDocumentType.Document);
var mainPart = doc.AddMainDocumentPart();
mainPart.Document = new Document(new Body());
// --- 在此处编写你的逻辑 ---
// 首先阅读相关的 Samples/*.cs 文件以获取经过测试的模式。
// 请参阅下方“参考资料”部分的 Samples 表格。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在编写任何 C# 代码之前,请先阅读相关的 Samples/*.cs 文件 — 它们包含可编译、经过 SDK 版本验证的模式。下方“参考资料”部分的 Samples 表格将主题映射到文件。
以下所有 CLI 命令均使用 $CLI 作为以下命令的简写:
dotnet run --project scripts/dotnet/MiniMaxAIDocx.Cli --
通过检查以下条件进行路由:用户是否有输入的 .docx 文件?
用户任务
├─ 无输入文件 → 流程 A:创建
│ 信号:"write", "create", "draft", "generate", "new", "make a report/proposal/memo"
│ → 阅读 references/scenario_a_create.md
│
└─ 有输入 .docx 文件
├─ 替换/填充/修改内容 → 流程 B:填充-编辑
│ 信号:"fill in", "replace", "update", "change text", "add section", "edit"
│ → 阅读 references/scenario_b_edit_content.md
│
└─ 重新格式化/应用样式/模板 → 流程 C:格式化-应用
信号:"reformat", "apply template", "restyle", "match this format", "套模板", "排版"
├─ 模板是纯样式(无内容) → C-1:叠加(将样式应用到源文档)
└─ 模板具有结构(封面/目录/示例章节) → C-2:基础-替换
(使用模板作为基础,将示例内容替换为用户内容)
→ 阅读 references/scenario_c_apply_template.md
如果请求涉及多个流程,请按顺序运行它们(例如,先创建再格式化-应用)。
如果需要,转换 .doc → .docx:scripts/doc_to_docx.sh input.doc output_dir/
编辑前预览(避免读取原始 XML):scripts/docx_preview.sh document.docx
分析结构以进行编辑场景:$CLI analyze --input document.docx
首先阅读 references/scenario_a_create.md、references/typography_guide.md 和 references/design_principles.md。从 Samples/AestheticRecipeSamples.cs 中选择一个与文档类型匹配的美学配方 — 不要发明格式化值。对于 CJK,还需阅读 references/cjk_typography.md。
选择你的路径:
$CLI create --type report --output out.docx --config content.jsonSamples/*.cs。CLI 选项:--type (report|letter|memo|academic), --title, --author, --page-size (letter|a4|legal|a3), --margins (standard|narrow|wide), --header, --footer, --page-numbers, --toc, --content-json.
然后运行验证流程(见下文)。
首先阅读 references/scenario_b_edit_content.md。预览 → 分析 → 编辑 → 验证。
选择你的路径:
references/openxml_element_order.md 和相关的 Samples/*.cs。可用的 CLI 编辑子命令:
replace-text --find "X" --replace "Y"
fill-placeholders --data '{"key":"value"}'
fill-table --data table.json
insert-section, remove-section, update-header-footer
$CLI edit replace-text --input in.docx --output out.docx --find "OLD" --replace "NEW" $CLI edit fill-placeholders --input in.docx --output out.docx --data '{"name":"John"}'
然后运行验证流程。同时运行 diff 以验证最小更改:
$CLI diff --before in.docx --after out.docx
首先阅读 references/scenario_c_apply_template.md。预览并分析源文档和模板。
$CLI apply-template --input source.docx --template template.docx --output out.docx
对于复杂的模板操作(多模板合并、每节页眉/页脚、样式合并),直接编写 C# 代码 — 请参阅下方的关键规则以获取所需模式。
运行验证流程,然后运行硬性门禁检查:
$CLI validate --input out.docx --gate-check assets/xsd/business-rules.xsd
门禁检查是硬性要求。在通过之前,请勿交付。如果失败:诊断、修复、重新运行。
同时运行 diff 以验证内容保留:$CLI diff --before source.docx --after out.docx
每次写入操作后运行。对于场景 C,完整流程是强制性的;对于场景 A/B,是推荐的(仅当操作极其简单时可跳过)。
$CLI merge-runs --input doc.docx # 1. 合并 runs
$CLI validate --input doc.docx --xsd assets/xsd/wml-subset.xsd # 2. XSD 结构
$CLI validate --input doc.docx --business # 3. 业务规则
如果 XSD 失败,自动修复并重试:
$CLI fix-order --input doc.docx
$CLI validate --input doc.docx --xsd assets/xsd/wml-subset.xsd
如果 XSD 仍然失败,回退到业务规则 + 预览:
$CLI validate --input doc.docx --business
scripts/docx_preview.sh doc.docx
# 验证:字体污染=0,表格数量正确,绘图数量正确,sectPr 数量正确
最终预览:scripts/docx_preview.sh doc.docx
这些规则可防止文件损坏 — OpenXML 对元素顺序有严格要求。
元素顺序(属性始终在前):
| 父元素 | 顺序 |
|---|---|
w:p | pPr → runs |
w:r | rPr → t/br/tab |
w:tbl | tblPr → tblGrid → tr |
w:tr | trPr → tc |
w:tc | tcPr → p (至少 1 个 <w:p/>) |
w:body | 块内容 → sectPr (最后一个子元素) |
直接格式污染: 从源文档复制内容时,内联的 rPr(字体、颜色)和 pPr(边框、底纹、间距)会覆盖模板样式。始终剥离直接格式 — 仅保留 pStyle 引用和 t 文本。同时清理表格(包括单元格内的 pPr/rPr)。
跟踪修订: <w:del> 使用 <w:delText>,绝不使用 <w:t>。<w:ins> 使用 <w:t>,绝不使用 <w:delText>。
字体大小: w:sz = 点数 × 2 (12pt → sz="24")。边距/间距单位为 DXA (1 英寸 = 1440, 1cm ≈ 567)。
标题样式必须具有 OutlineLevel: 定义标题样式(Heading1、ThesisH1 等)时,始终在 StyleParagraphProperties 中包含 new OutlineLevel { Val = N } (H1→0, H2→1, H3→2)。没有这个,Word 会将其视为普通样式文本 — 目录和导航窗格将无法工作。
多模板合并: 当给定多个模板文件(字体、标题、分节)时,首先阅读 references/scenario_c_apply_template.md 中的“多模板合并”部分。关键规则:
w:pPr 内的 w:sectPr)和样式间距(w:spacing 的 before/after)进行视觉分隔。titlePg 设置。摘要和目录节通常需要 titlePg=true。多节页眉/页脚: 具有 10 个以上节(例如,中文论文)的模板具有每节不同的页眉/页脚(罗马数字与阿拉伯数字页码、每区域不同的页眉文本)。规则:
references/scenario_c_apply_template.md 中的“多节页眉/页脚转移”部分。按需加载 — 不要一次性加载所有内容。为任务选择最相关的文件。
下面的 C# 示例和设计参考资料是项目的知识库(“百科全书”)。 编写 OpenXML 代码时,始终首先阅读相关的示例文件 — 它包含可编译、经过 SDK 版本验证的模式,可防止常见错误。进行美学决策时,阅读设计原则和配方文件 — 它们编码了来自权威来源(IEEE、ACM、APA、Nature 等)的经过测试、和谐的参数集,而不是猜测。
| 文件 | 何时使用 |
|---|---|
references/scenario_a_create.md | 流程 A:从头创建 |
references/scenario_b_edit_content.md | 流程 B:编辑现有内容 |
references/scenario_c_apply_template.md | 流程 C:应用模板格式化 |
| 文件 | 主题 |
|---|---|
Samples/DocumentCreationSamples.cs | 文档生命周期:创建、打开、保存、流、文档默认值、设置、属性、页面设置、多节 |
Samples/StyleSystemSamples.cs | 样式:Normal/Heading 链、字符/表格/列表样式、DocDefaults、latentStyles、CJK 公文、APA 7th、导入、解析继承 |
Samples/CharacterFormattingSamples.cs | RunProperties:字体、大小、粗体/斜体、所有下划线、颜色、高亮、删除线、上标/下标、大写、间距、底纹、边框、着重号 |
Samples/ParagraphFormattingSamples.cs | ParagraphProperties:对齐、缩进、行/段落间距、保持/孤行控制、大纲级别、边框、制表位、编号、双向文本、框架 |
Samples/TableSamples.cs | 表格:边框、网格、单元格属性、边距、行高、标题行重复、合并(水平/垂直)、嵌套、浮动、三线表、斑马条纹 |
Samples/HeaderFooterSamples.cs | 页眉/页脚:页码、"Page X of Y"、首页/偶数页/奇数页、徽标图片、表格布局、公文 "-X-"、每节 |
Samples/ImageSamples.cs | 图片:内联、浮动、文字环绕、边框、替代文本、在页眉/表格中、替换、SVG 后备、尺寸计算 |
Samples/ListAndNumberingSamples.cs | 编号:项目符号、多级十进制、自定义符号、大纲→标题、法律编号、中文 一/(一)/1./(1)、重新开始/继续 |
Samples/FieldAndTocSamples.cs | 域:目录、SimpleField 与复杂域、DATE/PAGE/REF/SEQ/MERGEFIELD/IF/STYLEREF、目录样式 |
Samples/FootnoteAndCommentSamples.cs | 脚注、尾注、批注(4 文件系统)、书签、超链接(内部 + 外部) |
Samples/TrackChangesSamples.cs | 修订:插入(w:t)、删除(w:delText!)、格式更改、全部接受/拒绝、移动跟踪 |
Samples/AestheticRecipeSamples.cs | 来自权威来源的 13 种美学配方:ModernCorporate、AcademicThesis、ExecutiveBrief、ChineseGovernment (GB/T 9704)、MinimalModern、IEEE Conference、ACM sigconf、APA 7th、MLA 9th、Chicago/Turabian、Springer LNCS、Nature、HBR — 每个都包含来自官方样式指南的精确值 |
注意:Samples/ 路径相对于 scripts/dotnet/MiniMaxAIDocx.Core/。
| 文件 | 何时使用 |
|---|---|
references/openxml_element_order.md | XML 元素排序规则(防止损坏) |
references/openxml_units.md | 单位转换:DXA、EMU、半磅、八分之一磅 |
references/openxml_encyclopedia_part1.md | 详细 C# 百科全书:文档创建、样式、字符和段落格式化 |
references/openxml_encyclopedia_part2.md | 详细 C# 百科全书:页面设置、表格、页眉/页脚、节、文档属性 |
references/openxml_encyclopedia_part3.md | 详细 C# 百科全书:目录、脚注、域、跟踪修订、批注、图片、数学公式、编号、保护 |
references/typography_guide.md | 字体配对、大小、间距、页面布局、表格设计、配色方案 |
references/cjk_typography.md | CJK 字体、字号大小、RunFonts 映射、GB/T 9704 公文标准 |
references/cjk_university_template_guide.md | 中国大学论文模板:数字 styleIds (1/2/3 vs Heading1)、文档区域结构(封面→摘要→目录→正文→参考文献)、字体期望、常见错误 |
references/design_principles.md | 美学基础:6 个设计原则(留白、对比/比例、邻近、对齐、重复、层次结构)— 教授“为什么”,而不仅仅是“是什么” |
references/design_good_bad_examples.md | 好与坏的比较:10 类排版错误,包含 OpenXML 值、ASCII 模拟图和修复方法 |
references/track_changes_guide.md | 修订标记深入探讨 |
references/troubleshooting.md | 症状驱动的修复:13 个常见问题,按你看到的现象索引(标题错误、图片缺失、目录损坏等)— 按症状搜索,找到修复方法 |
每周安装次数
126
仓库
GitHub 星标
3.5K
首次出现
3 天前
安全审计
安装于
codex123
cursor122
opencode122
cline121
gemini-cli121
kimi-cli121
API 文档生成器 - 基于 OpenAPI/Swagger 规范自动生成全面 API 文档
281 周安装
Figma设计系统规则生成指南 - 为AI编码代理定制项目规则
1,300 周安装
skill-lookup:Claude技能搜索与安装工具,支持按类别标签过滤,快速集成AI助手功能
1,300 周安装
奥派经济聊天室:AI模拟哈耶克与米塞斯对话,探讨奥地利学派经济学
1,400 周安装
GitHub Issue 分类自动化工具 - 流式架构实现高效问题管理与分析
1,300 周安装
音乐下载器 - 支持YouTube/Spotify/SoundCloud高质量音频下载,支持MP3/Opus格式转换
1,400 周安装
Swift 风格指南 - 官方代码规范与最佳实践,提升代码可读性与团队协作效率
1,400 周安装