Skip to content

Commit

Permalink
Add anchor links to markdown headings. (kubeflow#1009)
Browse files Browse the repository at this point in the history
* Add anchor links automatically.

* Improve anchor link UX

* improve corner-case layout stability

* improve a11y

* Change link icon to material icon
  • Loading branch information
Bobgy authored and k8s-ci-robot committed Aug 4, 2019
1 parent 1634ea3 commit 89fd3f8
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions layouts/partials/scripts.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<script>
// avoid polluting global namespace
(function() {
// append anchor links to headings in markdown.
var article = document.getElementsByTagName('main')[0];
var headings = article.querySelectorAll('h1, h2, h3, h4, h5, h6');
headings.forEach(function(heading) {
if (heading.id) {
var a = document.createElement('a');
// set visibility: hidden, not display: none to avoid layout change
a.style.visibility = 'hidden';
// [a11y] hide this from screen readers, etc..
a.setAttribute('aria-hidden', 'true');
// material insert_link icon in svg format
a.innerHTML = ' <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg>';
a.href = '#'+heading.id;
heading.insertAdjacentElement('beforeend', a);
heading.addEventListener('mouseenter', function() {
a.style.visibility = 'initial';
});
heading.addEventListener('mouseleave', function() {
a.style.visibility = 'hidden';
});
}
});
})();
</script>

0 comments on commit 89fd3f8

Please sign in to comment.