@@ -6139,6 +6139,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6139
6139
addError = _require . addError ,
6140
6140
addErrorDetailIf = _require . addErrorDetailIf ;
6141
6141
var _require2 = __webpack_require__ ( /*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs" ) ,
6142
+ filterByPredicate = _require2 . filterByPredicate ,
6142
6143
filterByTypes = _require2 . filterByTypes ,
6143
6144
getHtmlTagInfo = _require2 . getHtmlTagInfo ;
6144
6145
@@ -6147,6 +6148,10 @@ var idRe = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]i
6147
6148
var nameRe = / [ \t - \r \xA0 \u1680 \u2000 - \u200A \u2028 \u2029 \u202F \u205F \u3000 \uFEFF ] n a m e [ \t - \r \xA0 \u1680 \u2000 - \u200A \u2028 \u2029 \u202F \u205F \u3000 \uFEFF ] * = [ \t - \r \xA0 \u1680 \u2000 - \u200A \u2028 \u2029 \u202F \u205F \u3000 \uFEFF ] * [ " ' ] ? ( (?: (? ! [ \t - \r " ' > \xA0 \u1680 \u2000 - \u200A \u2028 \u2029 \u202F \u205F \u3000 \uD800 - \uDFFF \uFEFF ] ) [ \s \S ] | [ \uD800 - \uDBFF ] [ \uDC00 - \uDFFF ] ) + ) / i;
6148
6149
var anchorRe = / \{ ( # [ 0 - 9 a - z ] + (?: [ \x2D _ ] [ 0 - 9 a - z ] + ) * ) \} / g;
6149
6150
6151
+ // Sets for filtering heading tokens during conversion
6152
+ var childrenExclude = new Set ( [ "image" , "reference" , "resource" ] ) ;
6153
+ var tokensInclude = new Set ( [ "codeTextData" , "data" ] ) ;
6154
+
6150
6155
/**
6151
6156
* Converts a Markdown heading into an HTML fragment according to the rules
6152
6157
* used by GitHub.
@@ -6155,7 +6160,11 @@ var anchorRe = /\{(#[0-9a-z]+(?:[\x2D_][0-9a-z]+)*)\}/g;
6155
6160
* @returns {string } Fragment string for heading.
6156
6161
*/
6157
6162
function convertHeadingToHTMLFragment ( headingText ) {
6158
- var inlineText = filterByTypes ( headingText . children , [ "codeTextData" , "data" ] ) . map ( function ( token ) {
6163
+ var inlineText = filterByPredicate ( headingText . children , function ( token ) {
6164
+ return tokensInclude . has ( token . type ) ;
6165
+ } , function ( token ) {
6166
+ return childrenExclude . has ( token . type ) ? [ ] : token . children ;
6167
+ } ) . map ( function ( token ) {
6159
6168
return token . text ;
6160
6169
} ) . join ( "" ) ;
6161
6170
return "#" + encodeURIComponent ( inlineText . toLowerCase ( )
@@ -6181,18 +6190,20 @@ module.exports = {
6181
6190
for ( _iterator . s ( ) ; ! ( _step = _iterator . n ( ) ) . done ; ) {
6182
6191
var headingText = _step . value ;
6183
6192
var fragment = convertHeadingToHTMLFragment ( headingText ) ;
6184
- var count = fragments . get ( fragment ) || 0 ;
6185
- if ( count ) {
6186
- fragments . set ( "" . concat ( fragment , "-" ) . concat ( count ) , 0 ) ;
6187
- }
6188
- fragments . set ( fragment , count + 1 ) ;
6189
- var match = null ;
6190
- while ( ( match = anchorRe . exec ( headingText . text ) ) !== null ) {
6191
- var _match = match ,
6192
- _match2 = _slicedToArray ( _match , 2 ) ,
6193
- anchor = _match2 [ 1 ] ;
6194
- if ( ! fragments . has ( anchor ) ) {
6195
- fragments . set ( anchor , 1 ) ;
6193
+ if ( fragment !== "#" ) {
6194
+ var count = fragments . get ( fragment ) || 0 ;
6195
+ if ( count ) {
6196
+ fragments . set ( "" . concat ( fragment , "-" ) . concat ( count ) , 0 ) ;
6197
+ }
6198
+ fragments . set ( fragment , count + 1 ) ;
6199
+ var match = null ;
6200
+ while ( ( match = anchorRe . exec ( headingText . text ) ) !== null ) {
6201
+ var _match = match ,
6202
+ _match2 = _slicedToArray ( _match , 2 ) ,
6203
+ anchor = _match2 [ 1 ] ;
6204
+ if ( ! fragments . has ( anchor ) ) {
6205
+ fragments . set ( anchor , 1 ) ;
6206
+ }
6196
6207
}
6197
6208
}
6198
6209
}
0 commit comments