HUGO
News Docs Themes Community GitHub

TableOfContents

Returns a table of contents for the given page.

Syntax

PAGE.TableOfContents

Returns

template.HTML

The TableOfContents method on a Page object returns an ordered or unordered list of the Markdown ATX and setext headings within the page content.

This template code:

{{ .TableOfContents }}

Produces this HTML:

<nav id="TableOfContents">
  <ul>
    <li><a href="#section-1">Section 1</a>
      <ul>
        <li><a href="#section-11">Section 1.1</a></li>
        <li><a href="#section-12">Section 1.2</a></li>
      </ul>
    </li>
    <li><a href="#section-2">Section 2</a></li>
  </ul>
</nav>

By default, the TableOfContents method returns an unordered list of level 2 and level 3 headings. You can adjust this in your site configuration:

markup:
  tableOfContents:
    endLevel: 3
    ordered: false
    startLevel: 2
[markup]
  [markup.tableOfContents]
    endLevel = 3
    ordered = false
    startLevel = 2
{
   "markup": {
      "tableOfContents": {
         "endLevel": 3,
         "ordered": false,
         "startLevel": 2
      }
   }
}