All checks were successful
Deploy Static Site / deploy (push) Successful in 6m5s
4 lines
6.9 KiB
JavaScript
4 lines
6.9 KiB
JavaScript
/*! jquery.tocify - v1.9.0 - 2013-10-01
|
|
* http://gregfranko.com/jquery.tocify.js/
|
|
* Copyright (c) 2013 Greg Franko; Licensed MIT*/
|
|
!function(){"use strict";var a,l,h,o,s,n,r,i,d,c;a=window.jQuery,l=window,h=document,s="."+(o="tocify-header"),r="."+(n="tocify-subheader"),d="."+(i="tocify-item"),c="tocify-extend-page",a.widget("toc.tocify",{version:"1.9.0",options:{context:"body",ignoreSelector:null,selectors:"h1, h2, h3",showAndHide:!0,showEffect:"slideDown",showEffectSpeed:"medium",hideEffect:"slideUp",hideEffectSpeed:"medium",smoothScroll:!0,smoothScrollSpeed:"medium",scrollTo:0,showAndHideOnScroll:!0,highlightOnScroll:!0,highlightOffset:40,theme:"bootstrap",extendPage:!0,extendPageOffset:100,history:!0,scrollHistory:!1,hashGenerator:"compact",highlightDefault:!0},_create:function(){var e=this;e.extendPageScroll=!0,e.items=[],e._generateToc(),e._addCSSClasses(),e.webkit=function(){for(var e in l)if(e&&-1!==e.toLowerCase().indexOf("webkit"))return!0;return!1}(),e._setEventHandlers(),a(l).load(function(){e._setActiveElement(!0),a("html, body").promise().done(function(){setTimeout(function(){e.extendPageScroll=!1},0)})})},_generateToc:function(){var t,s=this,i=s.options.ignoreSelector,e=-1!==this.options.selectors.indexOf(",")?a(this.options.context).find(this.options.selectors.replace(/ /g,"").substr(0,this.options.selectors.indexOf(","))):a(this.options.context).find(this.options.selectors.replace(/ /g,""));return e.length?(s.element.addClass("tocify"),void e.each(function(e){a(this).is(i)||(t=a("<ul/>",{id:o+e,class:o}).append(s._nestElements(a(this),e)),s.element.append(t),a(this).nextUntil(this.nodeName.toLowerCase()).each(function(){(0===a(this).find(s.options.selectors).length?a(this).filter(s.options.selectors):a(this).find(s.options.selectors)).each(function(){a(this).is(i)||s._appendSubheaders.call(this,s,t)})}))})):void s.element.addClass("tocify-hide")},_setActiveElement:function(e){var t=this,s=l.location.hash.substring(1),i=t.element.find('li[data-unique="'+s+'"]');return s.length?(t.element.find("."+t.focusClass).removeClass(t.focusClass),i.addClass(t.focusClass),t.options.showAndHide&&i.click()):(t.element.find("."+t.focusClass).removeClass(t.focusClass),!s.length&&e&&t.options.highlightDefault&&t.element.find(d).first().addClass(t.focusClass)),t},_nestElements:function(t,e){var s=a.grep(this.items,function(e){return e===t.text()});return s.length?this.items.push(t.text()+e):this.items.push(t.text()),s=this._generateHashValue(s,t,e),e=a("<li/>",{class:i,"data-unique":s}).append(a("<a/>",{text:t.text()})),t.before(a("<div/>",{name:s,"data-unique":s})),e},_generateHashValue:function(e,t,s){var i="",o=this.options.hashGenerator;if("pretty"===o){for(i=t.text().toLowerCase().replace(/\s/g,"-");-1<i.indexOf("--");)i=i.replace(/--/g,"-");for(;-1<i.indexOf(":-");)i=i.replace(/:-/g,"-")}else i="function"==typeof o?o(t.text(),t):t.text().replace(/\s/g,"");return e.length&&(i+=""+s),i},_appendSubheaders:function(e,t){var s=a(this).index(e.options.selectors),i=a(e.options.selectors).eq(s-1),o=+a(this).prop("tagName").charAt(1),i=+i.prop("tagName").charAt(1);o<i?e.element.find(r+"[data-tag="+o+"]").last().append(e._nestElements(a(this),s)):o==i?t.find(d).last().after(e._nestElements(a(this),s)):t.find(d).last().after(a("<ul/>",{class:n,"data-tag":o})).next(r).append(e._nestElements(a(this),s))},_setEventHandlers:function(){var n=this;this.element.on("click.tocify","li",function(){var e;n.options.history&&(l.location.hash=a(this).attr("data-unique")),n.element.find("."+n.focusClass).removeClass(n.focusClass),a(this).addClass(n.focusClass),n.options.showAndHide&&(e=a('li[data-unique="'+a(this).attr("data-unique")+'"]'),n._triggerShow(e)),n._scrollTo(a(this))}),this.element.find("li").on({"mouseenter.tocify":function(){a(this).addClass(n.hoverClass),a(this).css("cursor","pointer")},"mouseleave.tocify":function(){"bootstrap"!==n.options.theme&&a(this).removeClass(n.hoverClass)}}),(n.options.extendPage||n.options.highlightOnScroll||n.options.scrollHistory||n.options.showAndHideOnScroll)&&a(l).on("scroll.tocify",function(){a("html, body").promise().done(function(){var t,o=a(l).scrollTop(),e=a(l).height(),s=a(h).height(),i=a("body")[0].scrollHeight;if(n.options.extendPage&&(n.webkit&&o>=i-e-n.options.extendPageOffset||!n.webkit&&e+o>s-n.options.extendPageOffset)&&!a(".tocify-extend-page").length){if(!(i=a('div[data-unique="'+a(d).last().attr("data-unique")+'"]')).length)return;e=i.offset().top,a(n.options.context).append(a("<div />",{class:c,height:Math.abs(e-o)+"px","data-unique":c})),n.extendPageScroll&&(s=n.element.find("li.active"),n._scrollTo(a('div[data-unique="'+s.attr("data-unique")+'"]')))}setTimeout(function(){var s=null,i=null,e=a(n.options.context).find("div[data-unique]");e.each(function(e){var t=Math.abs((a(this).next().length?a(this).next():a(this)).offset().top-o-n.options.highlightOffset);return(null==s||t<s)&&(s=t,void(i=e))}),e=a(e[i]).attr("data-unique"),t=a('li[data-unique="'+e+'"]'),n.options.highlightOnScroll&&t.length&&(n.element.find("."+n.focusClass).removeClass(n.focusClass),t.addClass(n.focusClass)),n.options.scrollHistory&&l.location.hash!=="#"+e&&l.location.replace("#"+e),n.options.showAndHideOnScroll&&n.options.showAndHide&&n._triggerShow(t,!0)},0)})})},show:function(e){var t=this;if(!e.is(":visible"))switch(e.find(r).length||e.parent().is(s)||e.parent().is(":visible")?e.children(r).length||e.parent().is(s)||(e=e.closest(r)):e=e.parents(r).add(e),t.options.showEffect){case"none":e.show();break;case"show":e.show(t.options.showEffectSpeed);break;case"slideDown":e.slideDown(t.options.showEffectSpeed);break;case"fadeIn":e.fadeIn(t.options.showEffectSpeed);break;default:e.show()}return e.parent().is(s)?t.hide(a(r).not(e)):t.hide(a(r).not(e.closest(s).find(r).not(e.siblings()))),t},hide:function(e){var t=this;switch(t.options.hideEffect){case"none":e.hide();break;case"hide":e.hide(t.options.hideEffectSpeed);break;case"slideUp":e.slideUp(t.options.hideEffectSpeed);break;case"fadeOut":e.fadeOut(t.options.hideEffectSpeed);break;default:e.hide()}return t},_triggerShow:function(e,t){return e.parent().is(s)||e.next().is(r)?this.show(e.next(r),t):e.parent().is(r)&&this.show(e.parent(),t),this},_addCSSClasses:function(){return"jqueryui"===this.options.theme?(this.focusClass="ui-state-default",this.hoverClass="ui-state-hover",this.element.addClass("ui-widget").find(".toc-title").addClass("ui-widget-header").end().find("li").addClass("ui-widget-content")):"bootstrap"===this.options.theme?(this.element.find(s+","+r).addClass("nav nav-list"),this.focusClass="active"):(this.focusClass="tocify-focus",this.hoverClass="tocify-hover"),this},setOption:function(){a.Widget.prototype._setOption.apply(this,arguments)},setOptions:function(){a.Widget.prototype._setOptions.apply(this,arguments)},_scrollTo:function(e){e=document.querySelector('div[data-unique="'+e.attr("data-unique")+'"]');return e&&e.scrollIntoView({behavior:this.options.smoothScroll?"smooth":"auto",block:"start"}),this}})}(); |