Merge pull request #129 from neon-ninja/dt-ids
authorRaniere Silva <raniere@rgaiacs.com>
Sat, 18 Feb 2017 17:04:36 +0000 (17:04 +0000)
committerGitHub <noreply@github.com>
Sat, 18 Feb 2017 17:04:36 +0000 (17:04 +0000)
ensure dt elements have an id set

_includes/javascript.html

index a2066c202809b465acc364e63211461f435bbc8f..93b51527320bef9e2e1acf64913779f88cfb5110 100644 (file)
   ga('create', 'UA-37305346-2', 'auto');
   ga('send', 'pageview');
 </script>
+<script>
+  // This snippet fixes a bug caused by Github's pages-gem using kramdown v1.11.1.
+  // In order for anchor links to point to the correct place in the glossary, they must have an id
+  // This snippet ensures every definition term has an id
+  // See https://github.com/swcarpentry/styles/pull/129
+  $('dt').each(function () {
+    if (!this.id) {
+      var id = $(this).text();
+      // If there's a ( in the name (e.g., "comma-separated values (CSV)") - just take everything up to the first (
+      var index = id.indexOf('(');
+      if (index > 0) {
+        id = id.substring(0, index);
+      }
+      // Strip leading and trailing whitespace, convert spaces to dashes and convert everything to lowercase
+      id = id.trim().replace(/ /g, '-').toLowerCase();
+      this.id = id;
+    }
+  });
+</script>