| /* |
| Internal link topbar offest adjust Javascript |
| Code provided by @makshh on GitHub |
| |
| Bug report on material-mkdocs |
| https://github.com/squidfunk/mkdocs-material/issues/791 |
| */ |
| |
| // Offset top helper |
| function offsetY(elem) { |
| if(!elem) elem = this; |
| var y = elem.offsetTop; |
| while (elem = elem.offsetParent) { |
| y += elem.offsetTop; |
| } |
| return y; |
| } |
| |
| // If a link on the same page is clicked, calculate the |
| // correct offset and scroll to that part of the page. |
| // |
| var links = document.getElementsByTagName('a'); |
| for(var i = 0; i < links.length; i++) { |
| links[i].onclick = function (event) { |
| if (this.pathname == window.location.pathname && |
| this.protocol == window.location.protocol && |
| this.host == window.location.host) { |
| event.preventDefault(); |
| if(this.hash.substr(1)){ |
| var o = document.getElementById(this.hash.substr(1)); |
| var sT = offsetY(o) - document.getElementsByClassName('md-header')[0].clientHeight; |
| window.location.hash = this.hash; |
| window.scrollTo(0, sT); |
| } |
| } |
| } |
| } |
| |
| // Slugify supplied text |
| function slugify(text){ |
| text = text.toLowerCase(); |
| text = text.replace(" ", "-"); |
| return text; |
| } |
| |
| // If there is a hash in the url, slugify it |
| // and replace |
| if(window.location.hash) { |
| // Fragment exists |
| slug = slugify(window.location.hash); |
| history.replaceState(undefined, undefined, slug) |
| //window.location.hash = slug; |
| document.location.replace(window.location.href); |
| } |