Emit slug-based heading IDs for anchor link navigation#430
Open
falcon-enoc wants to merge 2 commits into
Open
Conversation
Headings now receive text-derived id attributes so standard CommonMark/GFM anchor links like [text](#section) navigate to the corresponding heading in the preview. The visible [TOC] renderer uses the same slugs for its links, keeping them consistent with the new heading ids. Existing golden fixtures and a few inline assertions that assumed <h*> without attributes are updated. Four new tests cover slug generation (basic ASCII, UTF-8 preservation, punctuation handling, and emission independent of the TOC preference). Related to schuyler#429
MPQuickLookRenderer uses its own parallel Hoedown setup, so without this the anchor link fix would only apply to the main preview pane and not to Finder Quick Look previews of the same file. The slugify helper and header renderer are duplicated rather than shared because MacDownCore is a separate Xcode target without access to MacDown's hoedown_html_patch.c. Sharing them would require restructuring the project, which is out of scope here. Related to schuyler#429
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
idattributes regardless of the "Detect TOC token" preference, enabling standard[text](#section)anchor links in the preview.[TOC]renderer uses the same slugs.hoedown_html_patch.c) and the Quick Look renderer (MPQuickLookRenderer.m) for parity.Tests
xcodebuild test -workspace "MacDown 3000.xcworkspace" -scheme MacDown -destination 'platform=macOS'— 875 / 875 passing locally.MPMarkdownRenderingTests.mfor slug behavior.id="..."additions only).Related to #429