Markdown Exporter logo

Markdown Exporter

Community
bowenliang123
markdown-exporter

Convert Markdown text to DOCX, PPTX, XLSX, PDF, PNG, SVG, HTML, IPYNB, MD, CSV, JSON, JSONL, XML files, and extract code blocks in Markdown to Python, Bash,JS and etc files.

Overview

Publisherbowenliang123
Repositorymarkdown-exporter
Skill namemarkdown-exporter
Stars
274
Forks
67
Bundled files
181
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 181 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by bowenliang123 on GitHub. Read the source before you install it.

Installation

Install the Markdown Exporter AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/bowenliang123/markdown-exporter/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/bowenliang123/markdown-exporter.git \
  .claude/skills/markdown-exporter
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Markdown Exporter in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Markdown Exporter on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Markdown Exporter is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Markdown Exporter

Markdown Exporter is an Agent Skill that transforms your Markdown text into a wide variety of professional format files.

This SKILL.md for Agent Skills, the cli tool and Python package markdown-exporter are maintained in the GitHub repository bowenliang123/markdown-exporter by bowenliang123.

Tools and Supported Formats

ToolInput (File path of Markdown text or styles)Output (File path of exported file)
md_to_docx📝 Markdown text📄 Word document (.docx)
md_to_html📝 Markdown text🌐 HTML file (.html)
md_to_html_text📝 Markdown text🌐 HTML text string
md_to_jira📝 Markdown text🅹 Jira wiki markup text
md_to_pdf📝 Markdown text📑 PDF file (.pdf)
md_to_png📝 Markdown text🖼️ PNG image (.png), single long page or one image per page
md_to_svg📝 Markdown text🖼️ SVG image (.svg), one image per page
md_to_md📝 Markdown text📝 Markdown file (.md)
md_to_ipynb📝 Markdown text📓 Jupyter Notebook (.ipynb)
md_to_pptx📝 Markdown slides in Pandoc style🎯 PowerPoint (.pptx)
md_to_xlsx📋 Markdown tables📊 Excel spreadsheet (.xlsx)
md_to_csv📋 Markdown tables📋 CSV file (.csv)
md_to_json📋 Markdown tables📦 JSON/JSONL file (.json)
md_to_xml📋 Markdown tables🏷️ XML file (.xml)
md_to_latex📋 Markdown tables📝 LaTeX file (.tex)
md_to_codeblock💻 Code blocks in Markdown📁 Code files by language (.py, .js, .sh, etc.)

📦 Usage

Overview

Markdown Exporter is available as a PyPI package, which provides a seamless command-line interface for all its functionality.

Installation

bash
# with pip
pip install md-exporter

# with uv 
uv tool install md-exporter

# on OpenClaw
npx clawhub install markdown-exporter

Check markdown-exporter command and usages:

markdown-exporter -h

markdown-exporter <subcommand> -h

Basic Usage

Use the markdown-exporter command to access all the tools:

bash
markdown-exporter <subcommand> <args> [options]

Important Notes

  • All commands only support file paths as input
  • The package handles all dependency management automatically
  • You can run the command from anywhere in your system, no need to navigate to the project directory

🔧 Scripts

md_to_csv - Convert Markdown tables to CSV

Converts Markdown tables to CSV format file.

Usage:

bash
markdown-exporter md_to_csv <input> <output> [options]

Arguments:

  • input - Input Markdown file path containing tables
  • output - Output CSV file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts all tables in the input Markdown file to CSV format.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_csv /path/input.md /path/output.csv --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_pdf - Convert Markdown to PDF

Converts Markdown text to PDF format with support for Chinese, Japanese, and other languages.

Usage:

bash
markdown-exporter md_to_pdf <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output PDF file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts the entire Markdown file to a PDF document.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_pdf /path/input.md /path/output.pdf --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_png - Convert Markdown to PNG

Converts Markdown text to PNG image(s), with support for Chinese, Japanese, and other languages.

Usage:

bash
markdown-exporter md_to_png <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output PNG file path

Options:

  • --multi-page - Export one PNG per A4 page (numbered files) instead of a single long-page PNG
  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion (single long-page image):

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

    This renders the entire Markdown document as a single long-page PNG image.

  2. Multi-page output:

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

    This exports one PNG per A4 page, saved as output_1.png, output_2.png, etc. when the document has multiple pages.

  3. With code block wrapper removal:

    bash
    markdown-exporter md_to_png /path/input.md /path/output.png --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_svg - Convert Markdown to SVG

Converts Markdown text to SVG image(s), one SVG per page, with support for Chinese, Japanese, and other languages.

Usage:

bash
markdown-exporter md_to_svg <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output SVG file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts the Markdown file to SVG image(s), saved as output_1.svg, output_2.svg, etc. when the document has multiple pages.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_svg /path/input.md /path/output.svg --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_docx - Convert Markdown to DOCX

Converts Markdown text to DOCX format file.

Usage:

bash
markdown-exporter md_to_docx <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output DOCX file path

Options:

  • --template - Path to DOCX template file (optional)
  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts the entire Markdown file to a DOCX document.

  2. With custom template:

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

    This uses a custom DOCX template for styling.

  3. With code block wrapper removal:

    bash
    markdown-exporter md_to_docx /path/input.md /path/output.docx --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_xlsx - Convert Markdown tables to XLSX

Converts Markdown tables to XLSX format with multiple sheets support.

Usage:

bash
markdown-exporter md_to_xlsx <input> <output> [options]

Arguments:

  • input - Input Markdown file path containing tables
  • output - Output XLSX file path

Options:

  • --force-text - Convert cell values to text type (default: True)
  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts all tables in the input Markdown file to an XLSX workbook, with each table on a separate sheet.

  2. With code block wrapper removal:

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

    This removes any code block wrappers (```) before processing the Markdown.

  3. With force-text disabled:

    bash
    markdown-exporter md_to_xlsx /path/input.md /path/output.xlsx --force-text False

    This allows Excel to automatically determine cell types.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_pptx - Convert Markdown to PPTX

Converts Markdown text to PPTX format file.

Usage:

bash
markdown-exporter md_to_pptx <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output PPTX file path

Options:

  • --template - Path to PPTX template file (optional)

Examples:

  1. Basic conversion:

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

    This converts the Markdown file to a PowerPoint presentation.

  2. With custom template:

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

    This uses a custom PowerPoint template for styling.

Sample Markdown Input: Use the "Slides (for PPTX)" example from the Sample Markdown Inputs - Slides (for PPTX) section below.


md_to_codeblock - Extract Codeblocks to Files

Extracts code blocks from Markdown and saves them as individual files.

Usage:

bash
markdown-exporter md_to_codeblock <input> <output> [options]

Arguments:

  • input - Input Markdown file path containing code blocks
  • output - Output directory path or ZIP file path

Options:

  • --compress - Compress all code blocks into a ZIP file

Examples:

  1. Extract to directory:

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

    This extracts all code blocks to individual files in the specified directory.

  2. Extract to ZIP file:

    bash
    markdown-exporter md_to_codeblock /path/input.md /path/output.zip --compress

    This extracts all code blocks and compresses them into a ZIP file.

Sample Markdown Input: Use the "Code Blocks" example from the Sample Markdown Inputs - Code Blocks section below.


md_to_json - Convert Markdown Tables to JSON

Converts Markdown tables to JSON or JSONL format file.

Usage:

bash
markdown-exporter md_to_json <input> <output> [options]

Arguments:

  • input - Input Markdown file path containing tables
  • output - Output JSON file path

Options:

  • --style - JSON output style: jsonl (default) or json_array
  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion (JSONL format):

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

    This converts tables to JSON Lines format (one JSON object per line).

  2. Convert to JSON array:

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

    This converts tables to a single JSON array of objects.

  3. With code block wrapper removal:

    bash
    markdown-exporter md_to_json /path/input.md /path/output.json --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_xml - Convert Markdown to XML

Converts Markdown text to XML format file.

Usage:

bash
markdown-exporter md_to_xml <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output XML file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts the entire Markdown file to an XML document.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_xml /path/input.md /path/output.xml --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_latex - Convert Markdown Tables to LaTeX

Converts Markdown tables to LaTeX format file.

Usage:

bash
markdown-exporter md_to_latex <input> <output> [options]

Arguments:

  • input - Input Markdown file path containing tables
  • output - Output LaTeX file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts all tables in the input Markdown file to LaTeX format.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_latex /path/input.md /path/output.tex --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_html - Convert Markdown to HTML

Converts Markdown text to HTML format file.

Usage:

bash
markdown-exporter md_to_html <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output HTML file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts the entire Markdown file to an HTML document.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_html /path/input.md /path/output.html --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_html_text - Convert Markdown to HTML Text

Converts Markdown text to HTML and outputs to stdout.

Usage:

bash
markdown-exporter md_to_html_text <input>

Arguments:

  • input - Input Markdown file path

Example:

bash
markdown-exporter md_to_html_text /path/input.md

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_jira - Convert Markdown to Jira Wiki Markup

Converts Markdown text to Jira wiki markup and outputs to stdout.

Usage:

bash
markdown-exporter md_to_jira <input>

Arguments:

  • input - Input Markdown file path

Example:

bash
markdown-exporter md_to_jira /path/input.md

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_md - Convert Markdown to MD File

Saves Markdown text to a .md file.

Usage:

bash
markdown-exporter md_to_md <input> <output>

Arguments:

  • input - Input Markdown file path
  • output - Output MD file path

Example:

bash
markdown-exporter md_to_md /path/input.md /path/output.md

Sample Markdown Input: Use the "Basic Text and Tables" example from the Sample Markdown Inputs - Basic Text and Tables section below.


md_to_ipynb - Convert Markdown to IPYNB

Converts Markdown text to Jupyter Notebook (.ipynb) format file.

Usage:

bash
markdown-exporter md_to_ipynb <input> <output> [options]

Arguments:

  • input - Input Markdown file path
  • output - Output IPYNB file path

Options:

  • --strip-wrapper - Remove code block wrapper if present

Examples:

  1. Basic conversion:

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

    This converts the Markdown file to a Jupyter Notebook format.

  2. With code block wrapper removal:

    bash
    markdown-exporter md_to_ipynb /path/input.md /path/output.ipynb --strip-wrapper

    This removes any code block wrappers (```) before processing the Markdown.

Sample Markdown Input: Use the "Code Blocks" example from the Sample Markdown Inputs - Code Blocks section below.

Sample Markdown Inputs

To help you test the various tools, below are common Markdown input examples that represent the content of input files:

Basic Text and Tables
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.
Code Blocks
markdown
# 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;
}
```
Slides (for PPTX)
markdown
---
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.
:::

📝 Notes

  • All scripts only support file paths as input
  • For scripts that generate multiple files (e.g., multiple tables, multiple code blocks), the output filename will be automatically numbered
  • Use the --strip-wrapper option to remove code block wrappers (```) from the input Markdown

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 121 more files.

Frequently asked questions

What does the Markdown Exporter AI skill do?

Convert Markdown text to DOCX, PPTX, XLSX, PDF, PNG, SVG, HTML, IPYNB, MD, CSV, JSON, JSONL, XML files, and extract code blocks in Markdown to Python, Bash,JS and etc files.

Why use Markdown Exporter on TypingMind?

Because you install it once and use it with any model. Markdown Exporter is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Markdown Exporter in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/bowenliang123/markdown-exporter/tree/main. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Markdown Exporter?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Markdown Exporter?

As many as you like. As long as a model supports skills, you can use Markdown Exporter with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Markdown Exporter AI skill free?

Yes. It is published on GitHub by bowenliang123 under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇