CLI and pre-commit hook to add hierarchical numbering to Markdown headings.
Project description
markdown-heading-numbering
CLI formatter and pre-commit hook that adds hierarchical numbering to Markdown headings.
Table of Contents
- 1. Why add numbering to markdown headings?
- 2. How to use this tool?
- 3. Compatibility with other formatters
1. Why add numbering to markdown headings?
Here are some benefits of numbering markdown headings:
- Improve readability
- Numbering naturally indicate hierarchy: "3.1.6" is the child of "3.1"
- Without numbering, we'd rely on font style & size to tell hierarchy, which is not reliable
- Reduce communication overhead in a team setting
- You can reference the section by "Section 2.3.5" instead of "the section named 'Monthly Sales Trend and What That Means for Our Business in the Long Run'"
- Make diffs clearer
- Renumbered headings reveal structural edits instead of hiding content changes in walls of text
2. How to use this tool?
2.1. As a command-line tool
First, install it from PyPI:
pip install markdown-heading-numbering
And then:
markdown-heading-numbering \
--start-from-level 2 \
--end-at-level 5 \
--initial-numbering 1 \
docs/README.md
Options:
--start-from-level(int, default2): first heading level to number.--end-at-level(int, default6): last heading level to number (inclusive).--initial-numbering(int, default1): starting value for the top-most numbered heading.
Any existing numbering is removed before the formatter applies the new sequence.
2.2. As a pre-commit hook
This repository ships a .pre-commit-hooks.yaml that points to the CLI. Add
the hook to your .pre-commit-config.yaml:
- repo: https://github.com/jsh9/markdown-heading-numbering
rev: <commit-or-tag>
hooks:
- id: markdown-heading-numbering
args:
- --start-from-level=2
- --end-at-level=4
- --initial-numbering=1
The hook shares the same options as the CLI and formats files in place.
3. Compatibility with other formatters
3.1. With markdown-toc-creator
If you are also using my other markdown formatter
markdown-toc-creator as a
pre-commit hook to for create tables of contents in your markdown files, put
that hook after this one.
3.2. With mdformat
This tool is fully compatible with
mdformat as pre-commit hooks.
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 markdown_heading_numbering-0.1.1.tar.gz.
File metadata
- Download URL: markdown_heading_numbering-0.1.1.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2d20391868506b6c17968c4b132017e8daf8f27725ed954f0c193d845243044
|
|
| MD5 |
c2152839b8b754fc6a3217fa8161515d
|
|
| BLAKE2b-256 |
2d21e52d312ad944382fd2e3500153e9d07269da15245e7d62cc3be27b427034
|
File details
Details for the file markdown_heading_numbering-0.1.1-py3-none-any.whl.
File metadata
- Download URL: markdown_heading_numbering-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc7824448d2a65894498f4d4473f34ebd491d5f78f500a4da9ffeeb5bad881f3
|
|
| MD5 |
d2072c6fca49f55365f31f30fcfe937b
|
|
| BLAKE2b-256 |
dcb7b467929e8ce534026180c79a28077b1a8bc4c9021ed7446c489e5e01f1c1
|