aboutsummaryrefslogtreecommitdiff
path: root/docs/dev/articles/mkin_files/anchor-sections-1.0/anchor-sections.js
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dev/articles/mkin_files/anchor-sections-1.0/anchor-sections.js')
-rw-r--r--docs/dev/articles/mkin_files/anchor-sections-1.0/anchor-sections.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/dev/articles/mkin_files/anchor-sections-1.0/anchor-sections.js b/docs/dev/articles/mkin_files/anchor-sections-1.0/anchor-sections.js
new file mode 100644
index 00000000..570f99a0
--- /dev/null
+++ b/docs/dev/articles/mkin_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);
+ });
+});

Contact - Imprint