Generate a table of contents for a page, based on the headings within the page.
To load this functionality from HTML:
<script>
CMS.loadExtra('cms-toc');
</script>
or from within config.js
extras: {
'cms-toc': {}
}
N/A
No schema is required, but use of heading tags (H1-H6) is required for the table of contents to be generated.
<ul is="cms-toc"></ul>
Note, when used in Markdown files, the directive must be on a single line.
<ul is="cms-toc"></ul>
These will generate the example result:
<ul is="cms-toc">
<li class="level-0">
<a href="#">(Top)</a>
</li>
<li class="level-0">
<a href="#some-heading">Some Heading</a>
</li>
<li class="level-1">
<a href="#some-subheading">Some Subheading</a>
</li>
</ul>
ul[is=cms-toc] {
list-style: none;
padding-left: 0;
border-top: 1px solid;
}
ul[is=cms-toc] li {
margin: 1rem 0;
padding-left: 0;
}
ul[is=cms-toc] li.level-1 {
padding-left: 1rem;
}
ul[is=cms-toc] li.level-2 {
padding-left: 2rem;
}
ul[is=cms-toc] li.level-3 {
padding-left: 3rem;
}
ul[is=cms-toc] li.level-4 {
padding-left: 4rem;
}