File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -322,7 +322,26 @@ function autoLinkify(view) {
322322 for ( var level = 1 ; level <= 6 ; level ++ ) {
323323 linkifyAnchors ( level , contentBlock ) ;
324324 }
325- } ;
325+ }
326+
327+ function deduplicatedHeaderId ( view ) {
328+ var headers = view . find ( ':header' ) . toArray ( ) ;
329+ for ( var i = 0 ; i < headers . length ; i ++ ) {
330+ var id = $ ( headers [ i ] ) . attr ( 'id' ) ;
331+ if ( ! id ) continue ;
332+ var duplicatedHeaders = view . find ( ':header[id=' + id + ']' ) . toArray ( ) ;
333+ for ( var j = 0 ; j < duplicatedHeaders . length ; j ++ ) {
334+ if ( duplicatedHeaders [ j ] != headers [ i ] ) {
335+ var newId = id + j ;
336+ var $duplicatedHeader = $ ( duplicatedHeaders [ j ] ) ;
337+ $duplicatedHeader . attr ( 'id' , newId ) ;
338+ var $headerLink = $duplicatedHeader . find ( '> .header-link' ) ;
339+ $headerLink . attr ( 'href' , '#' + newId ) ;
340+ $headerLink . attr ( 'title' , newId ) ;
341+ }
342+ }
343+ }
344+ }
326345
327346function scrollToHash ( ) {
328347 var hash = location . hash ;
Original file line number Diff line number Diff line change @@ -1725,6 +1725,7 @@ function updateView() {
17251725 lastResult = $ ( result ) . clone ( ) ;
17261726 finishView ( ui . area . view ) ;
17271727 autoLinkify ( ui . area . view ) ;
1728+ deduplicatedHeaderId ( ui . area . view ) ;
17281729 generateToc ( 'toc' ) ;
17291730 generateToc ( 'toc-affix' ) ;
17301731 generateScrollspy ( ) ;
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ markdown.html(result.html());
55$ ( document . body ) . show ( ) ;
66finishView ( markdown ) ;
77autoLinkify ( markdown ) ;
8+ deduplicatedHeaderId ( markdown ) ;
89generateToc ( 'toc' ) ;
910generateToc ( 'toc-affix' ) ;
1011smoothHashScroll ( ) ;
You can’t perform that action at this time.
0 commit comments