mcpField
M
markdown-exporter

markdown-exporter

github.com/bowenliang123文档处理274166 次安装11 周前更新
代码仓库

关于 markdown-exporter

markdown-exporter 是一项 Agent Skill,也提供命令行工具和 Python 包,可将 Markdown 转换为多种文档、图片和数据格式。它适用于需要从 Markdown 文件生成不同交付格式的用户,并支持自定义 DOCX、PPTX 模板。

主要功能

  1. 01导出 DOCX、HTML、PDF 和 PPTX
  2. 02将内容渲染为 PNG 或 SVG
  3. 03转换表格为 XLSX、CSV、JSON 等
  4. 04将代码块提取为独立文件
  5. 05支持 DOCX 和 PPTX 模板

适用场景

  1. 01从 Markdown 生成 Word 或 PDF 文档
  2. 02把 Markdown 表格转换为电子表格或数据文件
  3. 03将 Markdown 内容导出为分页图片
  4. 04从文档中提取代码块

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bowenliang123/markdown-exporter --skill markdown-exporter

安装后在 Claude Code 中输入/markdown-exporter确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.difyignore
AGENTS.md
.env.example
.gitignore
.ruff.toml
README.md
MANIFEST.in
LICENSE.txt
PRIVACY.md
main.py
manifest.yaml
.claude-plugin/
marketplace.json
plugin.json
.github/
PULL_REQUEST_TEMPLATE.md
.github/workflows/
plugin-publish.yml
python-publish.yml
dev/
bump-version.sh
pack-clawhub.sh
pack-dify-plugin.sh
uv-sync-with-dify.sh
reformat.sh
test.sh
uv-sync.sh
md_exporter/
__init__.py
cli.py
md_exporter/assets/fonts/
LICENSE
md_exporter/parser/
cli_md_to_codeblock.py
cli_md_to_html.py
cli_md_to_docx.py
cli_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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_csv /path/input.md /path/output.csv
    

    这会将输入 Markdown 文件中的所有表格转换为 CSV 格式。

  2. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_pdf /path/input.md /path/output.pdf
    

    这会将整个 Markdown 文件转换为 PDF 文档。

  2. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换(单张长页面图像):

    markdown-exporter md_to_png /path/input.md /path/output.png
    

    这会将整个 Markdown 文档渲染为一张长页面 PNG 图像。

  2. 多页输出:

    markdown-exporter md_to_png /path/input.md /path/output.png --multi-page
    

    如果文档有多页,则每张 A4 页面会导出为一张 PNG,文件名为 output_1.png、output_2.png 等。

  3. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_svg /path/input.md /path/output.svg
    

    这会将 Markdown 文件转换为 SVG 图像;如果文档有多页,则保存为 output_1.svg、output_2.svg 等。

  2. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_docx /path/input.md /path/output.docx
    

    这会将整个 Markdown 文件转换为 DOCX 文档。

  2. 使用自定义模板:

    markdown-exporter md_to_docx /path/input.md /path/output.docx --template /path/template.docx
    

    这会使用自定义 DOCX 模板进行样式设置。

  3. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_xlsx /path/input.md /path/output.xlsx
    

    这会将输入 Markdown 文件中的所有表格转换为一个 XLSX 工作簿,每个表格单独放在一个工作表中。

  2. 移除代码块包装:

    markdown-exporter md_to_xlsx /path/input.md /path/output.xlsx --strip-wrapper
    

    这会在处理 Markdown 前移除任何代码块包装(```)。

  3. 禁用强制文本:

    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 模板文件路径(可选)

示例:

  1. 基本转换:

    markdown-exporter md_to_pptx /path/input.md /path/output.pptx
    

    这会将 Markdown 文件转换为 PowerPoint 演示文稿。

  2. 使用自定义模板:

    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 文件中

示例:

  1. 提取到目录:

    markdown-exporter md_to_codeblock /path/input.md /path/output_dir
    

    这会将所有代码块提取为指定目录中的单独文件。

  2. 提取到 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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换(JSONL 格式):

    markdown-exporter md_to_json /path/input.md /path/output.json
    

    这会将表格转换为 JSON Lines 格式(每行一个 JSON 对象)。

  2. 转换为 JSON 数组:

    markdown-exporter md_to_json /path/input.md /path/output.json --style json_array
    

    这会将表格转换为包含多个对象的单个 JSON 数组。

  3. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_xml /path/input.md /path/output.xml
    

    这会将整个 Markdown 文件转换为 XML 文档。

  2. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_latex /path/input.md /path/output.tex
    

    此命令会将输入 Markdown 文件中的所有表格转换为 LaTeX 格式。

  2. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_html /path/input.md /path/output.html
    

    此命令会将整个 Markdown 文件转换为 HTML 文档。

  2. 移除代码块包装:

    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 - 如果存在代码块包装,则将其移除

示例:

  1. 基本转换:

    markdown-exporter md_to_ipynb /path/input.md /path/output.ipynb
    

    此命令会将 Markdown 文件转换为 Jupyter Notebook 格式。

  2. 移除代码块包装:

    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:

![Test Image](https://example.com/image.jpg)
:::
::: column
- This triggers the "Comparison" layout
- Useful for side-by-side comparisons
:::
:::::

## Content with Caption

Here's some explanatory text about the image below.

![Test Image](https://example.com/image.jpg "fig:Test Image")

---

# 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 中移除代码块包装(```)

评论

支持 Markdown