Fix slugify bug affecting headings containing special characters#19
Open
michaelhogg wants to merge 1 commit intowibblemonkey:masterfrom
Open
Fix slugify bug affecting headings containing special characters#19michaelhogg wants to merge 1 commit intowibblemonkey:masterfrom
michaelhogg wants to merge 1 commit intowibblemonkey:masterfrom
Conversation
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.
🔴 Problem
As described in issue #17, Markdown heading text containing special characters doesn't get correctly slugified, and so the links from the TOC to the headings don't work.
🔬 Investigation
By default, this extension uses the
slugify()function provided bymarkdown-it-table-of-contents:However, that function's output is incompatible with VSCode's slugifier ❌
🟢 Solution
This PR copies the exact logic from VSCode's slugifier:
to ensure that the slugification logic is accurate.
ℹ️ Example
The following example heading text:
is slugified by
markdown-it-table-of-contents'sslugify()function like this: ❌This PR fixes the slugification logic, so that that example heading text is now slugified to:
which is identical to the slug generated by VSCode's slugifier ✅