Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed. Now in Python!
Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed. Now in Python!
Markdown parser done right.
This is a Python port of markdown-it, and some of its associated plugins. For more details see: https://markdown-it-py.readthedocs.io.
For details on markdown-it itself, see:
See also: markdown-it-pyrs for an experimental Rust binding, for even more speed!
pip install markdown-it-py[plugins]or with extras
pip install markdown-it-py[linkify,plugins]conda install -c conda-forge markdown-it-pyor with extras
conda install -c conda-forge markdown-it-py linkify-it-py mdit-py-pluginsRender markdown to HTML with markdown-it-py and a custom configuration with and without plugins and features:
from markdown_it import MarkdownIt
from mdit_py_plugins.front_matter import front_matter_plugin
from mdit_py_plugins.footnote import footnote_plugin
md = (
MarkdownIt("commonmark", {"breaks": True, "html": True})
.use(front_matter_plugin)
.use(footnote_plugin)
.enable("table")
)
text = """
---
a: 1
---
a | b
- | -
1 | 2
A footnote [^1]
[^1]: some details
"""
tokens = md.parse(text)
html_text = md.render(text)
## To export the html to a file, uncomment the lines below:
# from pathlib import Path
# Path("output.html").write_text(html_text)Render markdown to HTML with markdown-it-py from the command-line:
…Tables are disabled by default, as in CommonMark.
Use --enable-tables with any input mode to enable them:
markdown-it --enable-tables README.md > index.html
markdown-it --enable-tables --stdin < README.md > index.html
markdown-it --enable-tablesBig thanks to the authors of markdown-it:
Also John MacFarlane for his work on the CommonMark spec and reference implementations.
No open issues yet, or sync has not completed.