Skip to main content

markdown-convert

Convert Markdown files to PDF from your command line.

pip install markdown-convert


Button Hover Button Hover





Why markdown-convert?

Unlike other similar tools, markdown-convert:

  • Can be fully installed via pip install markdown-convert, with no external system-level dependencies.

  • Comes with a sensible default CSS stylesheet out of the box.

  • Supports:

    Feature Example
    LaTeX Math Equations $E=mc^2$ is rendered as a math equation.
    Mermaid, Vega-Lite and Schemdraw Diagrams ```mermaid ... is rendered as a diagram.
    Syntax-Highlighted Code Blocks ```python ... gets syntax highlighting.
    Admonitions !!! note ... is styled as a note box.
    Dynamic Table of Contents [TOC] inserts a Table of Contents.
    Image Attributes ![::shadow::](sky.png) shows a shadow behind the image.
    Captions ![sky](sky.png)_A beautiful sky_ shows a caption, centered below the image.
    Tables and Queries > [my_table] under your table gives it a name,
    [query:select ... from my_table] queries it.
    Live Conversion markdown-convert file.md --mode=live updates the PDF every time the Markdown file changes.
    Custom CSS markdown-convert file.md --css=style.css extends the default CSS with your own stylesheet.
    Task Lists, Containers, CSS Paged Media and more! ...

    Check out CUSTOM_SYNTAX.md for all the extra features and how to use them.

Installation

markdown-convert is available on PyPI and can be installed via pip:

pip install markdown-convert

Usage

1. From your terminal

Simply run markdown-convert file.md to convert file.md to file.pdf.

You can specify the following options:

Usage:
  markdown-convert [markdown_file_path] [options]

Options:
  --mode=once|live|debug
      Convert the markdown file once (default) or live.
      Use debug to preserve the intermediate html file.
  --css=[css_file_path]
      Use a custom CSS file.
  --out=[output_file_path]
      Specify the output file path.
  --extras=[extra1,extra2,...]
      Specify the extras to use. Uses all extras if not specified.
      Supported extras:
        admonitions,anchors,task-lists,math,custom-spans,highlights,
        syntax-highlighting,table-of-contents,vega-lite,inline-math,
        block-math,schemdraw,mermaid,dynamic-tables,dynamic-queries
  --security=basic|default|strict
      Specify the security level.
      Basic:
        - Inline HTML:   No restrictions.
        - JS:            Restricted to extras.
        - Remote files:  Restricted to images and fonts via https.
        - Local files:   No restrictions.
      Default:
        - Inline HTML:   Disabled.
        - JS:            Restricted to extras.
        - Remote files:  Restricted to images and fonts via https.
        - Local files:   Restricted to files inside the base directory.
      Strict:
        - Inline HTML:   Disabled.
        - JS:            Disabled (may break some extras).
        - Remote files:  Disabled (internet access completely disabled).
        - Local files:   Restricted to files inside the base directory.

For example: markdown-convert README.md --mode=live --css=style.css --out=output.pdf will convert README.md to output.pdf using style.css and update the PDF live as you edit the Markdown file.

2. As a Python library

You can also use markdown-convert as a library in your Python code:

from markdown_convert import convert, convert_text, live_convert

# Convert your Markdown file and save it as a PDF file
convert('README.md', 'style.css', 'README.pdf')

# Convert your Markdown string and get the PDF bytes
pdf_bytes = convert_text('# Hello World', 'h1 { color: red; }')

# Convert your Markdown file to PDF every time it changes
live_convert('README.md', 'style.css', 'README.pdf')

3. From the context menu of your file explorer

Install the extension of your choice:

Then right click any Markdown file and select Convert to PDF to convert it.

Metadata

Release files for markdown_convert 2.0.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for markdown_convert 2.0.17
File Size Uploaded
markdown_convert-2.0.17.tar.gz 28.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for markdown_convert 2.0.17
File Interpreter ABI Platform
markdown_convert-2.0.17-py3-none-any.whl Python 3 none any Details

Total release size: 60.5 kB

Release files / markdown_convert-2.0.17.tar.gz

Download URL markdown_convert-2.0.17.tar.gz
Size 28.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6915f38a0dedfb6caef9e9f8569424a52c20d5b2c2ce936bc46a8da77328e7e1
BLAKE2b-256 checksum
How to use checksums
c30e1b7e2b7a244f489d2b658ef3305b137b645ae2b899b0ba75ffe761d00442
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / markdown_convert-2.0.17-py3-none-any.whl

Download URL markdown_convert-2.0.17-py3-none-any.whl
Size 32.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87a9dd4245073542844659c2c4e0634d52acc2c31920333d4335fbd7943ab5f9
BLAKE2b-256 checksum
How to use checksums
4fd4391080d748ce48cd8e40f9f5e5fcf077c59aa35792cd227c9245f46eb490
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

2.0.17 This release

2 release files

2.0.15

2 release files

2.0.14

2 release files

2.0.13

2 release files

2.0.12

2 release files

2.0.11

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.66

2 release files

1.2.65

2 release files

1.2.64

2 release files

1.2.63

1 release file

1.2.62

2 release files

1.2.61

2 release files

1.2.60

2 release files

1.2.59

2 release files

1.2.58

2 release files

1.2.57

2 release files

1.2.55

2 release files

1.2.54

2 release files

1.2.53

2 release files

1.2.52

2 release files

1.2.51

2 release files

1.2.50

2 release files

1.2.49

2 release files

1.2.48

2 release files

1.2.47

2 release files

1.2.46

2 release files

1.2.45

2 release files

1.2.44

2 release files

1.2.43

2 release files

1.2.42

2 release files

1.2.41

2 release files

1.2.40

2 release files

1.2.39

2 release files

1.2.38

2 release files

1.2.23

2 release files

1.2.22

2 release files

1.2.21

2 release files

1.2.20

2 release files

1.2.19

2 release files

1.2.18

2 release files

1.2.17

2 release files

1.2.16

2 release files

1.2.15

2 release files

1.2.14

2 release files

1.2.13

2 release files

1.2.12

2 release files

1.2.11

2 release files

1.2.10

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.6

2 release files

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page