Skip to content

Commit 89fd3f8

Browse files
Bobgyk8s-ci-robot
authored andcommitted
Add anchor links to markdown headings. (kubeflow#1009)
* Add anchor links automatically. * Improve anchor link UX * improve corner-case layout stability * improve a11y * Change link icon to material icon
1 parent 1634ea3 commit 89fd3f8

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

layouts/partials/scripts.html

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<script>
2+
// avoid polluting global namespace
3+
(function() {
4+
// append anchor links to headings in markdown.
5+
var article = document.getElementsByTagName('main')[0];
6+
var headings = article.querySelectorAll('h1, h2, h3, h4, h5, h6');
7+
headings.forEach(function(heading) {
8+
if (heading.id) {
9+
var a = document.createElement('a');
10+
// set visibility: hidden, not display: none to avoid layout change
11+
a.style.visibility = 'hidden';
12+
// [a11y] hide this from screen readers, etc..
13+
a.setAttribute('aria-hidden', 'true');
14+
// material insert_link icon in svg format
15+
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>';
16+
a.href = '#'+heading.id;
17+
heading.insertAdjacentElement('beforeend', a);
18+
heading.addEventListener('mouseenter', function() {
19+
a.style.visibility = 'initial';
20+
});
21+
heading.addEventListener('mouseleave', function() {
22+
a.style.visibility = 'hidden';
23+
});
24+
}
25+
});
26+
})();
27+
</script>

0 commit comments

Comments
 (0)