diff options
Diffstat (limited to 'docs/dev/articles/FOCUS_D_files/anchor-sections-1.0')
-rw-r--r-- | docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.css | 4 | ||||
-rw-r--r-- | docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.js | 33 |
2 files changed, 37 insertions, 0 deletions
diff --git a/docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.css b/docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.css new file mode 100644 index 00000000..07aee5fc --- /dev/null +++ b/docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.css @@ -0,0 +1,4 @@ +/* Styles for section anchors */ +a.anchor-section {margin-left: 10px; visibility: hidden; color: inherit;} +a.anchor-section::before {content: '#';} +.hasAnchor:hover a.anchor-section {visibility: visible;} diff --git a/docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.js b/docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.js new file mode 100644 index 00000000..570f99a0 --- /dev/null +++ b/docs/dev/articles/FOCUS_D_files/anchor-sections-1.0/anchor-sections.js @@ -0,0 +1,33 @@ +// Anchor sections v1.0 written by Atsushi Yasumoto on Oct 3rd, 2020. +document.addEventListener('DOMContentLoaded', function() { + // Do nothing if AnchorJS is used + if (typeof window.anchors === 'object' && anchors.hasOwnProperty('hasAnchorJSLink')) { + return; + } + + const h = document.querySelectorAll('h1, h2, h3, h4, h5, h6'); + + // Do nothing if sections are already anchored + if (Array.from(h).some(x => x.classList.contains('hasAnchor'))) { + return null; + } + + // Use section id when pandoc runs with --section-divs + const section_id = function(x) { + return ((x.classList.contains('section') || (x.tagName === 'SECTION')) + ? x.id : ''); + }; + + // Add anchors + h.forEach(function(x) { + const id = x.id || section_id(x.parentElement); + if (id === '') { + return null; + } + let anchor = document.createElement('a'); + anchor.href = '#' + id; + anchor.classList = ['anchor-section']; + x.classList.add('hasAnchor'); + x.appendChild(anchor); + }); +}); |