handling the case of multiple top-level headers #108
Closed
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.
I ran into a weird bug - if you have a page with multiple top-level headers, then the in-page TOC logic breaks down.
This is less-common (though possible) with rST, but consider in markdown a page like this:
In this case, Sphinx will parse all of the headers at the same, top level. Our in-page TOC code assumes that the only top-level header is the title node, and that all other headers are underneath it.
This PR does the following:
The one awkward thing is that if there are other 2nd and 3rd level headers in-between the next 1st-level header, they will be missed in the TOC. Something like this:
The TOC would only show "My header 1" and "My header 2".
But I think that's probably the behavior we'd want to encourage?
Lemme know if you'd like me to explain a bit more...I think the longer-term solution will be to make the "get_page_toc" function a little bit less-hacky, but this seems like a reasonable patch for now