Home

Awesome

<!-- // ┌───────────────────────────────────────────────────────────────┐ // │ Contents of README.md │ // ├───────────────────────────────────────────────────────────────┘ // │ // ├──┐toc // │ ├── What is it? // │ ├── Why should I use it? // │ ├── How does it work? // │ ├── How can I install it? // │ ├── How can I contribute? // │ └── What has changed from previous versions? // │ // └─────────────────────────────────────────────────────────────── -->

toc

<p align="center"> <b>Generate a table of contents from the comments of a file</b> </p> <!-- PyPi fix--> <!--![Example table of contents generated by toc](images/showcase.webp)-->

Example table of contents generated by toc

What is it?

toc is a CLI utility to generates Table of Contents of text files. It aims to be the tree for the contents of a file, instead of a directory.

toc comes with native support for Markdown, AsciiDoc, reStructuredText, HTML and many more. It can support any language through a special kind of comments.1

Why should I use it?

Few reasons that you may consider:

How does it work?

For markup languages such as Markdown, AsciiDoc, reStructuredText and HTML, no changes are needed. For other languages (e.g. C), write some comments representing the different sections of a file.1 After this, run toc on that file to turn those comments into a table of contents.

Comments are structured in this way:

Syntax of comments used to generate table of contents

By running toc file.c, you will read the table of contents of that file:

Toc generated from syntax comments

How can I install it?

First, you need Python installed in your system.

Then, you can install toc by running:

pip install tableofcontents

If you are using Arch or Manjaro Linux, you can install toc directly from the AUR.

You should now be able to run toc -h to display a list of parameter you can use.

<!--[USAGE.md](./USAGE.md)-->

See USAGE.md for step-by-step explanations of different features, and a list of languages supported natively or that need special attention (e.g. CSS)

How can I contribute?

See CONTRIBUTING.md

What has changed from previous versions?

See CHANGELOG.md

Footnotes

  1. For examples of valid and invalid comments, see https://regex101.com/r/ngzZXN/2 2