mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-16 22:10:13 +01:00
Update MD051/link-fragments to use the same character classes as GitHub, encode unprintable characters from emojii.
This commit is contained in:
parent
db5d9f6dbb
commit
9a5e7e42ef
3 changed files with 34 additions and 7 deletions
17
lib/md051.js
17
lib/md051.js
|
|
@ -18,10 +18,19 @@ const identifierRe = /(?:id|name)\s*=\s*['"]?([^'"\s>]+)/iu;
|
|||
*/
|
||||
function convertHeadingToHTMLFragment(inline) {
|
||||
const inlineText = inline.children.map((token) => token.content).join("");
|
||||
return "#" + inlineText
|
||||
.toLowerCase()
|
||||
.replace(/ /g, "-")
|
||||
.replace(/[^-_a-z0-9]/g, "");
|
||||
return "#" + encodeURIComponent(
|
||||
inlineText
|
||||
.toLowerCase()
|
||||
// RegExp source with Ruby's \p{Word} expanded into its General Categories
|
||||
// eslint-disable-next-line max-len
|
||||
// https://github.com/gjtorikian/html-pipeline/blob/main/lib/html/pipeline/toc_filter.rb
|
||||
// https://ruby-doc.org/core-3.0.2/Regexp.html
|
||||
.replace(
|
||||
/[^\p{Letter}\p{Mark}\p{Number}\p{Connector_Punctuation}\- ]/gu,
|
||||
""
|
||||
)
|
||||
.replace(/ /gu, "-")
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue