site.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* global anchors */
  2. // add anchor links to headers
  3. anchors.options.placement = 'left';
  4. anchors.add().remove('.no-anchor');
  5. // Filter UI
  6. var tocElements = document.getElementById('toc').getElementsByTagName('a');
  7. document.getElementById('filter-input').addEventListener('keyup', function(e) {
  8. var i, element;
  9. // enter key
  10. if (e.keyCode === 13) {
  11. // go to the first displayed item in the toc
  12. for (i = 0; i < tocElements.length; i++) {
  13. element = tocElements[i];
  14. if (!element.classList.contains('hide')) {
  15. location.replace(element.href);
  16. return e.preventDefault();
  17. }
  18. }
  19. }
  20. var match = function() { return true; },
  21. value = this.value.toLowerCase();
  22. if (!value.match(/^\s*$/)) {
  23. match = function(text) { return text.toLowerCase().indexOf(value) !== -1; };
  24. }
  25. for (i = 0; i < tocElements.length; i++) {
  26. element = tocElements[i];
  27. if (match(element.innerHTML)) {
  28. element.classList.remove('hide');
  29. } else {
  30. element.classList.add('hide');
  31. }
  32. }
  33. });