diff options
author | Wu Cheng-Han | 2015-09-25 14:27:23 +0800 |
---|---|---|
committer | Wu Cheng-Han | 2015-09-25 14:27:23 +0800 |
commit | bc31e9fe3b5a720c369826fe959f9830b98c2ccc (patch) | |
tree | ea1b853718e6f3a533b34f9a9225ffef8e18c082 /public/js/extra.js | |
parent | 44cd5d4b567b1cd69c2b56f6b6b5da3f5e2f7042 (diff) |
Added deduplicatedHeaderId to avoid multiple same header id
Diffstat (limited to 'public/js/extra.js')
-rw-r--r-- | public/js/extra.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/public/js/extra.js b/public/js/extra.js index aed97417..f2fd6a72 100644 --- a/public/js/extra.js +++ b/public/js/extra.js @@ -322,7 +322,26 @@ function autoLinkify(view) { for (var level = 1; level <= 6; level++) { linkifyAnchors(level, contentBlock); } -}; +} + +function deduplicatedHeaderId(view) { + var headers = view.find(':header').toArray(); + for (var i = 0; i < headers.length; i++) { + var id = $(headers[i]).attr('id'); + if (!id) continue; + var duplicatedHeaders = view.find(':header[id=' + id + ']').toArray(); + for (var j = 0; j < duplicatedHeaders.length; j++) { + if (duplicatedHeaders[j] != headers[i]) { + var newId = id + j; + var $duplicatedHeader = $(duplicatedHeaders[j]); + $duplicatedHeader.attr('id', newId); + var $headerLink = $duplicatedHeader.find('> .header-link'); + $headerLink.attr('href', '#' + newId); + $headerLink.attr('title', newId); + } + } + } +} function scrollToHash() { var hash = location.hash; |