Is it possible to count the number of headings in the Table of Contents and then add a css class to the markup if the count exceeds a value?
For long pages with many headings, I’d like to add a css class to the markup output so I can break up the TOC into two columns.
The .TableOfContents method renders something like this:
<nav id="TableOfContents">
<ul>
<li><a href="#section-1">Section 1</a>
<ul>
<li><a href="#section-11">Section 1.1</a></li>
</ul>
</li>
</ul>
</nav>
Use the findRE function to count the number of li elements:
{{ .TableOfContents | findRE `<li>` | len }} --> 2
2 Likes
@jmooring - thank you
I think I’ll use {{ findRE `(?s)<h2.*?>.*?</h2>` .Content | len }} since I’m really only interested in finding the count for h2.
Wouldn’t <h2 be sufficient as RE in that case? You don’t need groups nor the closing tag, I think.
1 Like