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] [--stdin|filenames [filenames ...]]
Parse one or more markdown files, convert each to HTML, and print to stdout
positional arguments:
--stdin read source Markdown file from standard input
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*
...
<h1>Example</h1>
<blockquote>
<p>markdown <em>input</em></p>
</blockquote>
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.
Release files for markdown-it-py 4.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| markdown_it_py-4.2.0.tar.gz | 82.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| markdown_it_py-4.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:174.1 kB
Release files / markdown_it_py-4.2.0.tar.gz
| Download URL | markdown_it_py-4.2.0.tar.gz |
|---|---|
| Size | 82.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49
|
|
BLAKE2b-256 checksum How to use checksums |
06ff7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.33.1
|
Release files / markdown_it_py-4.2.0-py3-none-any.whl
| Download URL | markdown_it_py-4.2.0-py3-none-any.whl |
|---|---|
| Size | 91.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a
|
|
BLAKE2b-256 checksum How to use checksums |
b3814da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.33.1
|