关于 markdown-exporter
markdown-exporter 是一项 Agent Skill,也提供命令行工具和 Python 包,可将 Markdown 转换为多种文档、图片和数据格式。它适用于需要从 Markdown 文件生成不同交付格式的用户,并支持自定义 DOCX、PPTX 模板。
主要功能
- 01导出 DOCX、HTML、PDF 和 PPTX
- 02将内容渲染为 PNG 或 SVG
- 03转换表格为 XLSX、CSV、JSON 等
- 04将代码块提取为独立文件
- 05支持 DOCX 和 PPTX 模板
适用场景
- 01从 Markdown 生成 Word 或 PDF 文档
- 02把 Markdown 表格转换为电子表格或数据文件
- 03将 Markdown 内容导出为分页图片
- 04从文档中提取代码块
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bowenliang123/ markdown-exporter --skill markdown-exporter安装后在 Claude Code 中输入/markdown-exporter确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.difyignoreAGENTS.md.env.example.gitignore.ruff.tomlREADME.mdMANIFEST.inLICENSE.txtPRIVACY.mdmain.pymanifest.yaml.claude-plugin/marketplace.jsonplugin.json.github/PULL_REQUEST_TEMPLATE.md.github/workflows/plugin-publish.ymlpython-publish.ymldev/bump-version.shpack-clawhub.shpack-dify-plugin.shuv-sync-with-dify.shreformat.shtest.shuv-sync.shmd_exporter/__init__.pycli.pymd_exporter/assets/fonts/LICENSEmd_exporter/parser/cli_md_to_codeblock.pycli_md_to_html.pycli_md_to_docx.pycli_md_to_csv.py详细介绍
Markdown 导出器
Markdown 导出器是一项 Agent 技能,可将 Markdown 文本转换为各种专业格式的文件。
这项面向 Agent Skills 的 SKILL.md、命令行工具和 Python 包 markdown-exporter 由 bowenliang123 在 GitHub 仓库 bowenliang123/markdown-exporter 中维护。
工具和支持的格式
| 工具 | 输入(Markdown 文本或样式文件的路径) | 输出(导出文件的路径) |
|---|---|---|
md_to_docx | 📝 Markdown 文本 | 📄 Word 文档(.docx) |
md_to_html | 📝 Markdown 文本 | 🌐 HTML 文件(.html) |
md_to_html_text | 📝 Markdown 文本 | 🌐 HTML 文本字符串 |
md_to_jira | 📝 Markdown 文本 | 🅹 Jira wiki 标记文本 |
md_to_pdf | 📝 Markdown 文本 | 📑 PDF 文件(.pdf) |
md_to_png | 📝 Markdown 文本 | 🖼️ PNG 图像(.png),单张长图或每页一张图 |
md_to_svg | 📝 Markdown 文本 | 🖼️ SVG 图像(.svg),每页一张图 |
md_to_md | 📝 Markdown 文本 | 📝 Markdown 文件(.md) |
md_to_ipynb | 📝 Markdown 文本 | 📓 Jupyter Notebook(.ipynb) |
md_to_pptx | 📝 Pandoc 风格的 Markdown 幻灯片 | 🎯 PowerPoint(.pptx) |
md_to_xlsx | 📋 Markdown 表格 | 📊 Excel 电子表格(.xlsx) |
md_to_csv | 📋 Markdown 表格 | 📋 CSV 文件(.csv) |
md_to_json | 📋 Markdown 表格 | 📦 JSON/JSONL 文件(.json) |
md_to_xml | 📋 Markdown 表格 | 🏷️ XML 文件(.xml) |
md_to_latex | 📋 Markdown 表格 | 📝 LaTeX 文件(.tex) |
md_to_codeblock | 💻 Markdown 代码块 | 📁 按语言生成的代码文件(.py、.js、.sh 等) |
📦 使用方法
概览
Markdown 导出器提供 PyPI 包,可为所有功能提供流畅的命令行界面。
安装
# with pip
pip install md-exporter
# with uv
uv tool install md-exporter
# on OpenClaw
npx clawhub install markdown-exporter
检查 markdown-exporter 命令及其用法:
markdown-exporter -h
markdown-exporter <subcommand> -h
基本用法
使用 markdown-exporter 命令访问所有工具:
markdown-exporter <subcommand> <args> [options]
重要说明
- 所有命令的输入都只支持文件路径
- 此包会自动处理所有依赖项
- 你可以在系统中的任意位置运行该命令,无需切换到项目目录
🔧 脚本
md_to_csv - 将 Markdown 表格转换为 CSV
将 Markdown 表格转换为 CSV 格式文件。
用法:
markdown-exporter md_to_csv <input> <output> [options]
参数:
input- 包含表格的输入 Markdown 文件路径output- 输出 CSV 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_csv /path/input.md /path/output.csv这会将输入 Markdown 文件中的所有表格转换为 CSV 格式。
-
移除代码块包装:
markdown-exporter md_to_csv /path/input.md /path/output.csv --strip-wrapper这会在处理 Markdown 前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下方Markdown 输入示例 - 基本文本和表格部分中的“基本文本和表格”示例。
md_to_pdf - 将 Markdown 转换为 PDF
将 Markdown 文本转换为 PDF 格式,支持中文、日语及其他语言。
用法:
markdown-exporter md_to_pdf <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 PDF 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_pdf /path/input.md /path/output.pdf这会将整个 Markdown 文件转换为 PDF 文档。
-
移除代码块包装:
markdown-exporter md_to_pdf /path/input.md /path/output.pdf --strip-wrapper这会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下文 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_png - 将 Markdown 转换为 PNG
将 Markdown 文本转换为 PNG 图像,支持中文、日语及其他语言。
用法:
markdown-exporter md_to_png <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 PNG 文件路径
选项:
--multi-page- 每张 A4 页面导出一张 PNG(文件名带编号),而不是导出为一张长页面 PNG--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换(单张长页面图像):
markdown-exporter md_to_png /path/input.md /path/output.png这会将整个 Markdown 文档渲染为一张长页面 PNG 图像。
-
多页输出:
markdown-exporter md_to_png /path/input.md /path/output.png --multi-page如果文档有多页,则每张 A4 页面会导出为一张 PNG,文件名为
output_1.png、output_2.png等。 -
移除代码块包装:
markdown-exporter md_to_png /path/input.md /path/output.png --strip-wrapper这会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下文 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_svg - 将 Markdown 转换为 SVG
将 Markdown 文本转换为 SVG 图像,每页生成一张 SVG,支持中文、日语及其他语言。
用法:
markdown-exporter md_to_svg <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 SVG 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_svg /path/input.md /path/output.svg这会将 Markdown 文件转换为 SVG 图像;如果文档有多页,则保存为
output_1.svg、output_2.svg等。 -
移除代码块包装:
markdown-exporter md_to_svg /path/input.md /path/output.svg --strip-wrapper这会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下文 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_docx - 将 Markdown 转换为 DOCX
将 Markdown 文本转换为 DOCX 格式文件。
用法:
markdown-exporter md_to_docx <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 DOCX 文件路径
选项:
--template- DOCX 模板文件路径(可选)--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_docx /path/input.md /path/output.docx这会将整个 Markdown 文件转换为 DOCX 文档。
-
使用自定义模板:
markdown-exporter md_to_docx /path/input.md /path/output.docx --template /path/template.docx这会使用自定义 DOCX 模板进行样式设置。
-
移除代码块包装:
markdown-exporter md_to_docx /path/input.md /path/output.docx --strip-wrapper这会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下文 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_xlsx - 将 Markdown 表格转换为 XLSX
将 Markdown 表格转换为 XLSX 格式,并支持多个工作表。
用法:
markdown-exporter md_to_xlsx <input> <output> [options]
参数:
input- 包含表格的输入 Markdown 文件路径output- 输出 XLSX 文件路径
选项:
--force-text- 将单元格值转换为文本类型(默认:True)--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_xlsx /path/input.md /path/output.xlsx这会将输入 Markdown 文件中的所有表格转换为一个 XLSX 工作簿,每个表格单独放在一个工作表中。
-
移除代码块包装:
markdown-exporter md_to_xlsx /path/input.md /path/output.xlsx --strip-wrapper这会在处理 Markdown 前移除任何代码块包装(```)。
-
禁用强制文本:
markdown-exporter md_to_xlsx /path/input.md /path/output.xlsx --force-text False这样 Excel 可以自动确定单元格类型。
示例 Markdown 输入: 使用下方 示例 Markdown 输入 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_pptx - 将 Markdown 转换为 PPTX
将 Markdown 文本转换为 PPTX 格式文件。
用法:
markdown-exporter md_to_pptx <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 PPTX 文件路径
选项:
--template- PPTX 模板文件路径(可选)
示例:
-
基本转换:
markdown-exporter md_to_pptx /path/input.md /path/output.pptx这会将 Markdown 文件转换为 PowerPoint 演示文稿。
-
使用自定义模板:
markdown-exporter md_to_pptx /path/input.md /path/output.pptx --template /path/template.pptx这会使用自定义 PowerPoint 模板设置样式。
示例 Markdown 输入: 使用下方 示例 Markdown 输入 - 幻灯片(用于 PPTX) 部分中的“幻灯片(用于 PPTX)”示例。
md_to_codeblock - 将代码块提取到文件
从 Markdown 中提取代码块,并将其保存为单独的文件。
用法:
markdown-exporter md_to_codeblock <input> <output> [options]
参数:
input- 包含代码块的输入 Markdown 文件路径output- 输出目录路径或 ZIP 文件路径
选项:
--compress- 将所有代码块压缩到 ZIP 文件中
示例:
-
提取到目录:
markdown-exporter md_to_codeblock /path/input.md /path/output_dir这会将所有代码块提取为指定目录中的单独文件。
-
提取到 ZIP 文件:
markdown-exporter md_to_codeblock /path/input.md /path/output.zip --compress这会提取所有代码块,并将其压缩到 ZIP 文件中。
示例 Markdown 输入: 使用下方 示例 Markdown 输入 - 代码块 部分中的“代码块”示例。
md_to_json - 将 Markdown 表格转换为 JSON
将 Markdown 表格转换为 JSON 或 JSONL 格式文件。
用法:
markdown-exporter md_to_json <input> <output> [options]
参数:
input- 包含表格的输入 Markdown 文件路径output- 输出 JSON 文件路径
选项:
--style- JSON 输出样式:jsonl(默认)或json_array--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换(JSONL 格式):
markdown-exporter md_to_json /path/input.md /path/output.json这会将表格转换为 JSON Lines 格式(每行一个 JSON 对象)。
-
转换为 JSON 数组:
markdown-exporter md_to_json /path/input.md /path/output.json --style json_array这会将表格转换为包含多个对象的单个 JSON 数组。
-
移除代码块包装:
markdown-exporter md_to_json /path/input.md /path/output.json --strip-wrapper这会在处理 Markdown 前移除任何代码块包装(```)。
示例 Markdown 输入: 使用下方 示例 Markdown 输入 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_xml - 将 Markdown 转换为 XML
将 Markdown 文本转换为 XML 格式文件。
用法:
markdown-exporter md_to_xml <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 XML 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_xml /path/input.md /path/output.xml这会将整个 Markdown 文件转换为 XML 文档。
-
移除代码块包装:
markdown-exporter md_to_xml /path/input.md /path/output.xml --strip-wrapper这会在处理 Markdown 前移除任何代码块包装(```)。
示例 Markdown 输入: 使用下方 示例 Markdown 输入 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_latex - 将 Markdown 表格转换为 LaTeX
将 Markdown 表格转换为 LaTeX 格式文件。
用法:
markdown-exporter md_to_latex <input> <output> [options]
参数:
input- 包含表格的输入 Markdown 文件路径output- 输出 LaTeX 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_latex /path/input.md /path/output.tex此命令会将输入 Markdown 文件中的所有表格转换为 LaTeX 格式。
-
移除代码块包装:
markdown-exporter md_to_latex /path/input.md /path/output.tex --strip-wrapper此命令会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下方 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_html - 将 Markdown 转换为 HTML
将 Markdown 文本转换为 HTML 格式文件。
用法:
markdown-exporter md_to_html <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 HTML 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_html /path/input.md /path/output.html此命令会将整个 Markdown 文件转换为 HTML 文档。
-
移除代码块包装:
markdown-exporter md_to_html /path/input.md /path/output.html --strip-wrapper此命令会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下方 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_html_text - 将 Markdown 转换为 HTML 文本
将 Markdown 文本转换为 HTML,并输出到标准输出。
用法:
markdown-exporter md_to_html_text <input>
参数:
input- 输入 Markdown 文件路径
示例:
markdown-exporter md_to_html_text /path/input.md
Markdown 输入示例: 请使用下方 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_jira - 将 Markdown 转换为 Jira Wiki 标记
将 Markdown 文本转换为 Jira Wiki 标记,并输出到标准输出。
用法:
markdown-exporter md_to_jira <input>
参数:
input- 输入 Markdown 文件路径
示例:
markdown-exporter md_to_jira /path/input.md
Markdown 输入示例: 请使用下方 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_md - 将 Markdown 转换为 MD 文件
将 Markdown 文本保存到 .md 文件。
用法:
markdown-exporter md_to_md <input> <output>
参数:
input- 输入 Markdown 文件路径output- 输出 MD 文件路径
示例:
markdown-exporter md_to_md /path/input.md /path/output.md
Markdown 输入示例: 请使用下方 Markdown 输入示例 - 基本文本和表格 部分中的“基本文本和表格”示例。
md_to_ipynb - 将 Markdown 转换为 IPYNB
将 Markdown 文本转换为 Jupyter Notebook(.ipynb)格式文件。
用法:
markdown-exporter md_to_ipynb <input> <output> [options]
参数:
input- 输入 Markdown 文件路径output- 输出 IPYNB 文件路径
选项:
--strip-wrapper- 如果存在代码块包装,则将其移除
示例:
-
基本转换:
markdown-exporter md_to_ipynb /path/input.md /path/output.ipynb此命令会将 Markdown 文件转换为 Jupyter Notebook 格式。
-
移除代码块包装:
markdown-exporter md_to_ipynb /path/input.md /path/output.ipynb --strip-wrapper此命令会在处理 Markdown 之前移除所有代码块包装(```)。
Markdown 输入示例: 请使用下方 Markdown 输入示例 - 代码块 部分中的“代码块”示例。
Markdown 输入示例
为帮助你测试各种工具,下面列出一些常见的 Markdown 输入示例,它们代表了输入文件的内容:
基本文本和表格
# Test Markdown File
This is a test markdown file for testing various export tools.
## Table Test
| Name | Description | Price |
|------|-------------|-------|
| Item 1 | First item | $10 |
| Item 2 | Second item | $20 |
| Item 3 | Third item | $30 |
## Text Test
This is a paragraph with **bold** and *italic* text.
- List item 1
- List item 2
- List item 3
> This is a blockquote.
代码块
# Test Markdown File
## Code Block Test
```python
print("Hello, World!")
def add(a, b):
return a + b
# Test the function
result = add(5, 3)
print(f"Result: {result}")
```
```bash
# Bash script example
echo "Hello from Bash"
ls -la
```
```javascript
// JavaScript example
console.log("Hello from JavaScript");
function multiply(a, b) {
return a * b;
}
```
幻灯片(用于 PPTX)
---
title: Markdown Exporter
author: Bowen Liang
---
# Introduction
## Welcome Slide
Welcome to our Markdown Exporter!
::: notes
Remember to greet the audience warmly.
:::
---
# Section 1: Basic Layouts
## Title and Content
- This is a basic slide with bullet points
- It uses the "Title and Content" layout
- Perfect for simple content presentation
## Two Column Layout
::::: columns
::: column
Left column content:
- Point 1
- Point 2
:::
::: column
Right column content:
- Point A
- Point B
:::
:::::
## Comparison Layout
::::: columns
::: column
Text followed by an image:

:::
::: column
- This triggers the "Comparison" layout
- Useful for side-by-side comparisons
:::
:::::
## Content with Caption
Here's some explanatory text about the image below.

---
# Section 2: Advanced Features
## Code Block
Here's a Python code block:
```python
def greet(name):
return f"Hello, {name}!"
print(greet("World"))
```
## Table Example
| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| Row 1 | Data | More |
| Row 2 | Info | Stuff |
## Incremental List
::: incremental
- This point appears first
- Then this one
- And finally this one
:::
## {background-image="https://example.com/image.jpg"}
::: notes
This is a slide with a background image and speaker notes only.
The "Blank" layout will be used.
:::
# Conclusion
## Thank You
Thank you for viewing this kitchen sink presentation!
::: notes
Remember to thank the audience and invite questions.
:::
📝 注意事项
- 所有脚本仅支持将文件路径作为输入
- 对于生成多个文件的脚本(例如,包含多个表格或多个代码块),输出文件名会自动编号
- 使用
--strip-wrapper选项可从输入 Markdown 中移除代码块包装(```)