fix: render module doc body before examples in TOC#792
Open
fix: render module doc body before examples in TOC#792
Conversation
The module doc body (README) is rendered before @example sections in the page HTML, but the TOC entries were added in the opposite order. This caused README headings to appear after Examples entries in the table of contents, and the shared offset state inflated their nesting level. Swap the order so jsdoc_body_to_html runs before jsdoc_examples, making the TOC match the page layout. Closes jsr-io/jsr#486 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The offset in HeadingToCAdapter is shared mutable state set as a side effect of add_entry. Previously, render_markdown_inner read it lazily inside the anchorizer closure, so any add_entry call before the markdown was fully rendered could inflate heading levels. Snapshot the offset at the start of render_markdown_inner so it is immune to later mutations. This makes the heading level calculation deterministic regardless of call ordering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
@exampletagsoffsetstate fromadd_entryinflated README heading levels when examples were present, nesting them too deeplyCloses jsr-io/jsr#486
Test plan
readme_toc_order_with_examplestest that verifies README headings appear before Examples in the TOC🤖 Generated with Claude Code