in pelican/plugins/asfgenid.py [0:0]
def generate_toc(content, tags, title, toc_headers, debug):
settoc = False
tree = node = HtmlTreeNode(None, title, 'h0', '')
# find the last [TOC]
taglast = tags[0]
for tag in tags:
taglast = tag
# find all headings after the final [TOC]
heading_re = re.compile(toc_headers)
for header in taglast.findAllNext(heading_re):
# we have heading content for the ToC
settoc = True
# add the heading.
node, _new_header = node.add(header)
# convert the ToC to Beautiful Soup
tree_soup = ''
if settoc:
if debug:
print(' ToC')
# convert the HtmlTreeNode into Beautiful Soup
tree_string = '{}'.format(tree)
tree_soup = BeautifulSoup(tree_string, 'html.parser')
# Make the ToC available to the theme's template
content.toc = tree_soup.decode(formatter='html')
# replace the first [TOC] with the generated table of contents
for tag in tags:
tag.replaceWith(tree_soup)
# replace additional [TOC] with nothing
tree_soup = ''