build TOC entries using text-only content
authorDan Allen <dan@opendevise.com>
Sun, 12 Apr 2020 10:14:30 +0000 (04:14 -0600)
committerDan Allen <dan@opendevise.com>
Sun, 12 Apr 2020 10:14:30 +0000 (04:14 -0600)
src/js/02-on-this-page.js

index 5ee7b80..6b78652 100644 (file)
   var lastActiveFragment
   var links = {}
   var list = headings.reduce(function (accum, heading) {
-    var link = toArray(heading.childNodes).reduce(function (target, child) {
-      if (child.nodeName !== 'A') target.appendChild(child.cloneNode(true))
-      return target
-    }, document.createElement('a'))
+    var link = document.createElement('a')
+    link.textContent = heading.textContent
     links[(link.href = '#' + heading.id)] = link
     var listItem = document.createElement('li')
     listItem.dataset.level = parseInt(heading.nodeName.slice(1)) - 1
   }
 
   function find (selector, from) {
-    return toArray((from || document).querySelectorAll(selector))
-  }
-
-  function toArray (collection) {
-    return [].slice.call(collection)
+    return [].slice.call((from || document).querySelectorAll(selector))
   }
 
   function getNumericStyleVal (el, prop) {