fix(markdown): avoid leading number in link hash #1644
Merged
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.
The default slugification function processes anchor links (hash fragments). If an anchor starts with a number (e.g., #123), it is replaced with
#_number
(e.g.,#_123
). This rule is designed to prevent potential URL conflicts, though manually written anchors like#123
are rare in Markdown—hence the special handling.Key Behaviors:
Digits-Only Anchors:
#123
→#_123
(Adds _ to numeric anchors)Alphanumeric Anchors:
#123a
→#_123a
(Only the leading digits are modified)Non-Numeric Anchors:
#section
→#section
(No changes, letters remain untouched)Why It Matters:
URL Safety: Ensures numeric anchors (e.g.,
#1
) don’t break routing in frameworks like Vue Router or static site generators.Markdown Context: Most anchors are auto-generated from headings (e.g.,
#hello-world
), but explicit#123
anchors might appear in rare cases.