Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR closes #537 by adding the capability to parse
<h[1-6]>
tags and include their IDs in the table of contents.It works by matching HTML header tags, checking for an
id=
attribute and then adding an entry to the TOC. If the tag does not have an ID, a new one is generated and inserted into the HTML.Since HTML content is hashed before markdown headers are processed, this step intercepts headers in
_hash_html_block_sub
before they get hashed. This means that TOC entries are inserted out of order. To fix this, I added a function that sorts the TOC by order of appearance.It works by taking the TOC header entry, searching the text for that header and returning the index at which it is found.
This new headers behaviour is disabled by default, and can be enabled using the new
header-ids
options dict.