A table of contents (TOC) plugin for markdown-it-py
Project description
mdit-py-toc
A table of contents (TOC) plugin for markdown-it-py based on markdown-it-toc-done-right.
Installation
Install using poetry
Because mdit-py-toc is a plugin, you most likely need a tool to handle Python package dependencies and Python environments. Therefore we strongly recommend using poetry.
You can install the latest stable release and add it as a dependency for your current project using poetry
poetry add mdit-py-toc
Install using pip
[!NOTE] The
pip installcommand does no longer work out-of-the-box in newer distributions like Ubuntu >= 23.04 because of PEP 668.
You can install the latest stable release from the Python Package Index (pypi) using pip
python -m pip install mdit-py-toc
Options
| Name | Description | Default |
|---|---|---|
| pattern | The pattern serving as the TOC placeholder in your markdown | r"^(\[TOC\]") |
| level | Heading level to apply anchors on or iterable of selected levels | (1, 2) |
| list_type | Type of list ("ul" for unordered, "ol" for ordered) |
"ul" |
| slug_func | Function to convert heading title text to id slugs for link references | mdit_py_toc.slugify |
Usage
mdit-py-toc works best in conjunction with the anchors plugin.
from markdown_it import MarkdownIt
from mdit_py_plugins.anchors import anchors_plugin
from mdit_py_toc import toc_plugin, slugify
md = (
MarkdownIt()
.use(anchors_plugin, permalink=True, slug_func=slugify)
.use(toc_plugin, list_type="ol")
)
markdown = """
# A Page
[TOC]
## Section 1
## Section 2
"""
html = md.render(markdown)
Creates the following HTML output
<h1 id="a-page">A Page <a class="header-anchor" href="#a-page">¶</a></h1>
<nav>
<ol>
<li><a href="#a-page">A Page </a><ol>
<li><a href="#section-1">Section 1 </a></li>
<li><a href="#section-2">Section 2 </a></li>
</ol></li>
</ol></nav>
<h2 id="section-1">Section 1 <a class="header-anchor" href="#section-1">¶</a></h2>
<h2 id="section-2">Section 2 <a class="header-anchor" href="#section-2">¶</a></h2>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mdit_py_toc-1.0.0.tar.gz.
File metadata
- Download URL: mdit_py_toc-1.0.0.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a7f5f548185f8d24dacb60032d8606728ded59bc72326b3c4765ae00978fa7a
|
|
| MD5 |
b20b5e39e361f0c3d1fb30d12374ba34
|
|
| BLAKE2b-256 |
5a662b87cd98820aa3794717748b9b0f042bb63918622f5551f3522edce1f6e7
|
File details
Details for the file mdit_py_toc-1.0.0-py3-none-any.whl.
File metadata
- Download URL: mdit_py_toc-1.0.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f09c2b1d0068daccde94e712d0343cb43699514be05a7f492124df87ac28c7c1
|
|
| MD5 |
2d2bb6ca030c8be16e0e43f019c0092c
|
|
| BLAKE2b-256 |
1c9379ebb659e7f3e874ece4021fb4786e0e826241f4c93cdc9da555014eeb7b
|