GitHub - executablebooks/markdown-it-py: Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed. Now in Python! (original) (raw)
markdown-it-py
Markdown parser done right.
- Follows the CommonMark spec for baseline parsing
- Configurable syntax: you can add new rules and even replace existing ones.
- Pluggable: Adds syntax extensions to extend the parser (see the plugin list).
- High speed (see our benchmarking tests)
- Easy to configure for security
- Member of Google's Assured Open Source Software
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!
Installation
PIP
pip install markdown-it-py[plugins]
or with extras
pip install markdown-it-py[linkify,plugins]
Conda
conda install -c conda-forge markdown-it-py
or with extras
conda install -c conda-forge markdown-it-py linkify-it-py mdit-py-plugins
Usage
Python API Usage
Render 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)
Command-line Usage
Render markdown to HTML with markdown-it-py from the command-line:
usage: markdown-it [-h] [-v] [filenames [filenames ...]]
Parse one or more markdown files, convert each to HTML, and print to stdout
positional arguments: filenames specify an optional list of files to convert
optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit
Interactive:
$ markdown-it markdown-it-py [version 0.0.0] (interactive) Type Ctrl-D to complete input, or Ctrl-C to exit.
Example
... > markdown input ...
Example
markdown input
Batch:
$ markdown-it README.md README.footer.md > index.html
References / Thanks
Big thanks to the authors of markdown-it:
- Alex Kocharin github/rlidwka
- Vitaly Puzrin github/puzrin
Also John MacFarlane for his work on the CommonMark spec and reference implementations.