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 install
command 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
Hashes for mdit_py_toc-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f09c2b1d0068daccde94e712d0343cb43699514be05a7f492124df87ac28c7c1 |
|
MD5 | 2d2bb6ca030c8be16e0e43f019c0092c |
|
BLAKE2b-256 | 1c9379ebb659e7f3e874ece4021fb4786e0e826241f4c93cdc9da555014eeb7b |