doctoc

Generates TOC for markdown files of local git repo.

DocToc

Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites via a command line flag.

**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
npm install -g doctoc

Go into the directory that contains you local git project and type:

doctoc .

This will update all markdown files in the current directory and all its subdirectories with a table of content that will point at the anchors generated by the markdown parser. Doctoc defaults to using the GitHub parser, but other modes can be specified.

If you already have a TOC inserted by doctoc, it will automatically be updated by running the command (rather than inserting a duplicate toc). Doctoc locates the TOC by the <!-- START doctoc --> and <!-- END doctoc --> comments, so you can also move a generated TOC to any other portion of your document and it will be updated there.

If you want to convert only a specific file, do:

doctoc /path/to/file
doctoc README.md

In order to add a table of contents whose links are compatible other sites add the appropriate mode flag:

Available modes are:

--bitbucket bitbucket.org
--nodejs    nodejs.org
--github    github.com
--gitlab    gitlab.com
--ghost     ghost.org
doctoc README.md --bitbucket

By default, doctoc places the toc at the top of the file. You can indicate to have it placed elsewhere with the following format:

<!-- START doctoc -->
<!-- END doctoc -->

You place this code directly in your .md file. For example:

// my_new_post.md
Here we are, introducing the post. It's going to be great!
But first: a TOC for easy reference.
 
<!-- START doctoc -->
<!-- END doctoc -->
 
# Section One
 
Here we'll discuss...
 

Running doctoc will insert the toc at that location.

Use the --title option to specify a (Markdown-formatted) custom TOC title; e.g., doctoc --title '**Contents**' .

Use the --maxlevel option to limit TOC entries to headings only up to the specified level; e.g., doctoc --maxlevel 3 .

By default,

  • no limit is placed on Markdown-formatted headings,
  • whereas headings from embedded HTML are limited to 4 levels.