All skills
cat-xierluo avatar

/md2word

@ac4a31a

Markdown转Word文档技能。将Markdown文档转换为符合中文排版标准的专业格式Word文档,支持多种预设格式。适用于正式文档、论文、报告等需要规范排版的文档转换。

Use this Skill: https://skilld.dev/gh/cat-xierluo/legal-skills/md2word

This session only. Nothing lands on disk.

referencesexamples.md

≈1.6k tokens on demand. Your agent reads this file only when SKILL.md points to it.

使用示例

本文档提供 md2word 技能的使用示例和常见场景。

基本转换

最简单的用法

# 转换当前目录下的 Markdown 文件
python scripts/md2word.py document.md

输出:document_完整版.docx

指定输出文件名

python scripts/md2word.py input.md output.docx

使用预设格式

Legal 预设(正式文档格式)

python scripts/md2word.py contract.md --preset=legal

适用场景:合同、正式函件、法律文书

格式特点:

  • 字体:仿宋_GB2312
  • 字号:小四 (12pt)
  • 行距:1.5 倍
  • 页边距:上下 2.54cm,左右 3.18cm

Academic 预设(学术论文格式)

python scripts/md2word.py thesis.md --preset=academic

适用场景:学术论文、研究报告

格式特点:

  • 字体:宋体
  • 字号:小四 (12pt)
  • 行距:2.0 倍(双倍行距)

Report 预设(工作报告格式)

python scripts/md2word.py report.md --preset=report

适用场景:工作报告、总结报告

格式特点:

  • 标题:黑体
  • 正文:仿宋_GB2312
  • 行距:1.5 倍

Minimal 预设(极简文档格式)

python scripts/md2word.py notes.md --preset=minimal

适用场景:内部文档、笔记草稿

格式特点:基础格式,无特殊要求


自定义配置

创建自定义配置

  1. 复制配置模板:
cp assets/config-template.yaml my-config.yaml
  1. 编辑配置文件:
name: "我的自定义格式"
description: "自定义的文档格式"

page:
  width: 21.0
  height: 29.7
  margin_top: 2.5
  margin_bottom: 2.5
  margin_left: 3.0
  margin_right: 3.0

fonts:
  default:
    name: "宋体"
    ascii: "Times New Roman"
    size: 12
    color: "#000000"
  1. 使用自定义配置:
python scripts/md2word.py document.md --config=my-config.yaml

基于预设修改

# 复制预设作为起点
cp assets/presets/legal.yaml my-format.yaml

# 编辑后使用
python scripts/md2word.py document.md --config=my-format.yaml

使用 Word 模板

自动发现模板

将 .docx 模板文件放入 assets/templates/ 目录,程序会自动查找。

文件名包含"模板"或"template"的文件优先使用。

手动指定模板

python scripts/md2word.py document.md --template=my-template.docx

模板用途

Word 模板用于:

  • 预设页眉、页脚(如公司 Logo)
  • 预设文档结构
  • 保留特定的样式设置

注意:模板文件控制视觉元素,配置文件控制格式参数


常见场景

场景 1:合同文档转换

# 使用 legal 预设
python scripts/md2word.py contract.md --preset=legal

# 如果有公司模板
python scripts/md2word.py contract.md --preset=legal --template=company-template.docx

场景 2:学术论文转换

# 使用 academic 预设
python scripts/md2word.py paper.md --preset=academic output-paper.docx

场景 3:批量转换当前目录所有 Markdown 文件

# 不指定输入文件,自动处理所有 .md 文件
python scripts/md2word.py --preset=legal

场景 4:使用完全自定义的格式

# 先创建自定义配置
cat > my-custom.yaml << 'EOF'
name: "自定义格式"
fonts:
  default:
    name: "微软雅黑"
    size: 11
paragraph:
  line_spacing: 1.3
EOF

# 使用自定义配置转换
python scripts/md2word.py document.md --config=my-custom.yaml

场景 5:查看可用预设

python scripts/md2word.py --list-presets

输出示例:

可用的预设配置:
  - academic: 学术论文格式 - 宋体,小四号,双倍行距
  - legal: 正式文档格式 - 仿宋_GB2312,小四号,1.5倍行距
  - report: 工作报告格式 - 黑体标题,仿宋正文,1.5倍行距
  - minimal: 极简文档格式 - 无特殊格式要求

输入文件格式示例

基本文档结构

# 文档标题

## 第一条 条款内容

这是正文段落,首行会自动缩进两个字符。

### 子条款

1. 有序列表项
2. 另一项

**重点内容**可以加粗显示。

| 项目 | 说明 |
|:-----|:-----|
| 项目A | 说明A |
| 项目B | 说明B |

> 这是引用块内容

```python
def example():
    print("代码块")

### 支持的 Markdown 元素

- **标题**:`#` 到 `######`
- **列表**:无序 (`*`, `-`, `+`)、有序 (`1.`)、任务 (`- [ ]`)
- **表格**:Markdown 表格语法
- **代码块**:三反引号包裹
- **引用块**:`>` 开头
- **文本格式**:`**加粗**`、`*斜体*`、`<u>下划线</u>`、`~~删除线~~`
- **数学公式**:`$公式$`
- **分割线**:`---`、`***`、`___`
- **图片**:`![描述](path/to/image.png)`
- **Mermaid 图表**:```mermaid ... ```

---

## 高级功能

### 全书合并与章节本地图片

```bash
python scripts/md2word.py --book chapters/ch01.md chapters/ch02.md \
  -o output/book.docx --preset=book-publish

--book 会在串联各章前,以每个 Markdown 源文件自己的父目录为基准解析本地相对图片。因此,各章可继续使用 ![图](../../figures/example.png)、含空格或 URL 编码的 Markdown 图片路径,以及 HTML <img src="images/example.png">,不受 output/book.docx 所在目录影响。HTTP/HTTPS、data URI、锚点和绝对路径不改写;单章转换仍沿用原有解析流程。

Mermaid 图表

输入:

```mermaid
graph TD
    A[开始] --> B{判断}
    B -->|是| C[执行A]
    B -->|否| D[执行B]

程序会自动将 Mermaid 图表渲染为图片插入 Word 文档。

### 表格格式保留

输入:

```markdown
| **加粗** | *斜体* | 普通 |
|----------|--------|------|
| <u>下划线</u> | ~~删除线~~ | `代码` |

表格中的所有格式都会在 Word 输出中保留。


常见问题

Q: 如何修改字号?

A: 编辑自定义配置文件,修改 fonts.default.size 参数。

Q: 如何调整行距?

A: 编辑自定义配置文件,修改 paragraph.line_spacing 参数。

Q: 如何不自动添加页码?

A: 在配置文件中设置 page_number.enabled: false。

Q: 英文引号会自动转换吗?

A: 是的,默认会自动将英文引号转换为中文引号。可在配置中设置 quotes.convert_to_chinese: false 禁用。

Source: SKILL.md on GitHub

3 warnings1d4 checks · Risk MEDIUM
  • Gen Agent Trust Hub1d

    The skill converts Markdown to Word and includes features that download external images and render diagrams. It downloads images from arbitrary URLs, which poses a Server-Side Request Forgery (SSRF) risk to internal network resources. Additionally, it executes local rendering tools on user-supplied Mermaid and SVG code, which could lead to resource exhaustion or exploitation of vulnerabilities in those tools.

  • Socket1d

    1 alert: gptAnomaly

  • Snyk1d

    Risk: LOW · No issues

  • Runlayer7mo

    14/14 files flagged

Signed by skilld at ac4a31a. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated last week
homepage
https://github.com/cat-xierluo/legal-skills
author
杨卫薪律师(微信ywxlaw)
version
1.3.8

README badge

README badge for cat-xierluo/legal-skills/md2word