Skip to main content

gfm-toc

中文文档 | README

Table of Contents

Overview

Easy and customizable way to generate TOC for README.md on GitHub.

  • Automatically generate table of contents in accordance with Github Favored Markdown format
  • Just a single .py file can be done with no other dependencies
  • Support for text content in both Chinese and English languages
  • Support for customizing the header level of the table of contents
  • Supports automatic write results to files, and also can print results to standard output for further processing
  • Supports generating table of contents for multiple files at the same time
  • Support for repeating headers, filtering headers in code blocks

If you don't want to download any files or read the command instructions below, you can try my online build tool.

Installation

Pypi

$ pip3 install gfm-toc --upgrade

Manually

$ git clone https://github.com/waynerv/github-markdown-toc
$ cd github-markdown-toc
$ python3 setup.py install

You can also directly download the file gfm_toc/md_toc.py in the repository and run this script manually like this:

$ python3 md-toc.py [-h] [-s {1,2,3,4,5,6}] [-e {1,2,3,4,5,6}] [-o] file [file ...]

Usage

The command syntax is as follows:

$ gfm-toc [-h] [-s {1,2,3,4,5,6}] [-e {1,2,3,4,5,6}] [-o] file [file ...]

Run the command as follows to get help information for the command options(you can replace -h with --help).:

$ gfm-toc -h

Note: Make sure your device has successfully installed Python3 before run it.

Single file

Automatically generate TOC for a single markdown file and print result to standard output with only 2-4 title levels:

$ gfm-toc -s 2 -e 4 -o README_eng.md
Generate from file: README_eng.md

- [Table of Contents](#table-of-contents)
- [md-toc](#md-toc)
- [Installation](#installation)
- [Usage](#usage)
  - [Single file](#single-file)
  - [Multiple files](#multiple-files)
  - [Configuration](#configuration)
    - [customize  the title level](#customize--the-title-level)
    - [Write results to a file or print to standard output](#write-results-to-a-file-or-print-to-standard-output)
- [Dependency](#dependency)

Table of contents generated.

Then copy/paste result between prompt sentence from console into original README.md.

Multiple files

Use the default configuration to generate TOC for multiple markdown files and write them to a file separately:

$ gfm-toc file01.md file02.md file03.md
Table of contents generated.

Here's an example:

After generating TOC and writing to the file:

Configuration

customize the header level

Use the command line options -s or --start and add parameters to set the start header level of TOC. The default value of the parameter is 1.

Use the command line options -e or --end and add parameters to set the end header level of TOC. The default value of the parameter is 6.

The title level parameter must be an integer between 1 and 6, and the start header level cannot be greater than the end header level.

-s {1,2,3,4,5,6}, --start {1,2,3,4,5,6}  choose the start level of TOC, default value is 1
-e {1,2,3,4,5,6}, --end {1,2,3,4,5,6}  choose the end level of TOC, default value is 6

Generate TOC of 1-6 header levels (default option):

$ gfm-toc test/Mastering_Markdown.md -o
Generate from file: test/Mastering_Markdown.md

- [Mastering Markdown](#mastering-markdown)
  - [What is Markdown?](#what-is-markdown)
  - [Examples](#examples)
  - [Syntax guide](#syntax-guide)
    - [Headers](#headers)
    - [Emphasis](#emphasis)
    - [Lists](#lists)
      - [Unordered](#unordered)
      - [Ordered](#ordered)
    - [Images](#images)
    - [Links](#links)
    - [Blockquotes](#blockquotes)
    - [Inline code](#inline-code)

Table of contents generated.

Only generate 2-3 header levels:

$ gfm-toc examples/Mastering_Markdown.md -o -s 2 -e 3
Generate from file: examples/Mastering_Markdown.md

- [What is Markdown?](#what-is-markdown)
- [Examples](#examples)
- [Syntax guide](#syntax-guide)
  - [Headers](#headers)
  - [Emphasis](#emphasis)
  - [Lists](#lists)
  - [Images](#images)
  - [Links](#links)
  - [Blockquotes](#blockquotes)
  - [Inline code](#inline-code)

Table of contents generated.

Write results to a file or print to standard output

By default, the program automatically writes the generated TOC to the beginning of the original file.

Add the option -o or --output when you want to print the results to standard output for copying or other processing.

-o, --output          print toc to stdout instead of writing to file

Use the > on the command line to export the generated directory to a separate file:

$ gfm-toc -o README.md > table_of_content.md

Add a title to the generated TOC

This option is not very common, because in many cases, people write Markdown documents according to different specifications or their own habits. But if you need, you can add -t or --title options when executing commands. This will add a level 2 header called Table of contens to the generated TOC, as follows:

$ gfm-toc examples/Mastering_Markdown.md -o -s 2 -e 3 -t
Generate from file: examples/Mastering_Markdown.md

## Table of contents

- [What is Markdown?](#what-is-markdown)
- [Examples](#examples)
- [Syntax guide](#syntax-guide)
  - [Headers](#headers)
  - [Emphasis](#emphasis)
  - [Lists](#lists)
  - [Images](#images)
  - [Links](#links)
  - [Blockquotes](#blockquotes)
  - [Inline code](#inline-code)

Table of contents generated.

Dependency

  • Python3

Tested on Ubuntu 18.04 in bash with Python 3.6.7.

License

MIT

Metadata

Release files for gfm-toc 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gfm-toc 0.0.7
File Size Uploaded Provenance
gfm-toc-0.0.7.tar.gz 6.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for gfm-toc 0.0.7
File Interpreter ABI Platform
gfm_toc-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / gfm-toc-0.0.7.tar.gz

Download URL gfm-toc-0.0.7.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c53ed0e2cd400e89051377017ca98c11c9cef628b2effddf787db4fc19ff343d
BLAKE2b-256 checksum
How to use checksums
c911ebcf4b0f261f886d06ba81c6055fad17eb64ba259f2d20e259b67913b7f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

Release files / gfm_toc-0.0.7-py3-none-any.whl

Download URL gfm_toc-0.0.7-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
247af7267a6cbbdd4213f8383157997bcb07e39e819db737bd2dbfbdb94ee7ae
BLAKE2b-256 checksum
How to use checksums
5d935af84cd3a2f818d5a68d154796b0e6a25cd490b82ee26071d6d43d883dc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7

Security for gfm-toc 0.0.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page