From bc31e9fe3b5a720c369826fe959f9830b98c2ccc Mon Sep 17 00:00:00 2001 From: Wu Cheng-Han Date: Fri, 25 Sep 2015 14:27:23 +0800 Subject: Added deduplicatedHeaderId to avoid multiple same header id --- public/js/extra.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'public/js/extra.js') 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; -- cgit v1.2.3