diff --git a/about.html b/about.html index 7720a35..53f8ada 100644 --- a/about.html +++ b/about.html @@ -15,14 +15,6 @@ - - - - - - - - diff --git a/assets/css/style.css b/assets/css/style.css index f719ddf..cd54255 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -488,6 +488,11 @@ i.fab { background: light-dark(#dbdbcd, #25250a); } +#sidebar.sticky { + position: sticky; + top: 20px; +} + section ul li::before { content: 'ยป '; } diff --git a/assets/js/jquery.nav.js b/assets/js/jquery.nav.js deleted file mode 100644 index 0f840e4..0000000 --- a/assets/js/jquery.nav.js +++ /dev/null @@ -1,223 +0,0 @@ -/* - * jQuery One Page Nav Plugin - * http://github.com/davist11/jQuery-One-Page-Nav - * - * Copyright (c) 2010 Trevor Davis (http://trevordavis.net) - * Dual licensed under the MIT and GPL licenses. - * Uses the same license as jQuery, see: - * http://jquery.org/license - * - * @version 2.2 - * - * Example usage: - * $('#nav').onePageNav({ - * currentClass: 'current', - * changeHash: false, - * scrollSpeed: 750 - * }); - */ - -;(function($, window, document, undefined){ - - // our plugin constructor - var OnePageNav = function(elem, options){ - this.elem = elem; - this.$elem = $(elem); - this.options = options; - this.metadata = this.$elem.data('plugin-options'); - this.$nav = this.$elem.find('a'); - this.$win = $(window); - this.sections = {}; - this.didScroll = false; - this.$doc = $(document); - this.docHeight = this.$doc.height(); - }; - - // the plugin prototype - OnePageNav.prototype = { - defaults: { - currentClass: 'current', - changeHash: false, - easing: 'swing', - filter: '', - scrollSpeed: 750, - scrollOffset: 0, - scrollThreshold: 0.5, - begin: false, - end: false, - scrollChange: false - }, - - init: function() { - var self = this; - - // Introduce defaults that can be extended either - // globally or using an object literal. - self.config = $.extend({}, self.defaults, self.options, self.metadata); - - //Filter any links out of the nav - if(self.config.filter !== '') { - self.$nav = self.$nav.filter(self.config.filter); - } - - //Handle clicks on the nav - self.$nav.on('click.onePageNav', $.proxy(self.handleClick, self)); - - //Get the section positions - self.getPositions(); - - //Handle scroll changes - self.bindInterval(); - - //Update the positions on resize too - self.$win.on('resize.onePageNav', $.proxy(self.getPositions, self)); - - return this; - }, - - adjustNav: function(self, $parent) { - self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass); - $parent.addClass(self.config.currentClass); - }, - - bindInterval: function() { - var self = this; - var docHeight; - - self.$win.on('scroll.onePageNav', function() { - self.didScroll = true; - }); - - self.t = setInterval(function() { - docHeight = self.$doc.height(); - - //If it was scrolled - if(self.didScroll) { - self.didScroll = false; - self.scrollChange(); - } - - //If the document height changes - if(docHeight !== self.docHeight) { - self.docHeight = docHeight; - self.getPositions(); - } - }, 250); - }, - - getHash: function($link) { - return $link.attr('href').split('#')[1]; - }, - - getPositions: function() { - var self = this; - var linkHref; - var topPos; - var $target; - - self.$nav.each(function() { - linkHref = self.getHash($(this)); - $target = $('#' + linkHref); - - if($target.length) { - topPos = $target.offset().top; - self.sections[linkHref] = Math.round(topPos) - self.config.scrollOffset; - } - }); - }, - - getSection: function(windowPos) { - var returnValue = null; - var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold); - - for(var section in this.sections) { - if((this.sections[section] - windowHeight) < windowPos) { - returnValue = section; - } - } - - return returnValue; - }, - - handleClick: function(e) { - var self = this; - var $link = $(e.currentTarget); - var $parent = $link.parent(); - var newLoc = '#' + self.getHash($link); - - if(!$parent.hasClass(self.config.currentClass)) { - //Start callback - if(self.config.begin) { - self.config.begin(); - } - - //Change the highlighted nav item - self.adjustNav(self, $parent); - - //Removing the auto-adjust on scroll - self.unbindInterval(); - - //Scroll to the correct position - $.scrollTo(newLoc, self.config.scrollSpeed, { - axis: 'y', - easing: self.config.easing, - offset: { - top: -self.config.scrollOffset - }, - onAfter: function() { - //Do we need to change the hash? - if(self.config.changeHash) { - window.location.hash = newLoc; - } - - //Add the auto-adjust on scroll back in - self.bindInterval(); - - //End callback - if(self.config.end) { - self.config.end(); - } - } - }); - } - - e.preventDefault(); - }, - - scrollChange: function() { - var windowTop = this.$win.scrollTop(); - var position = this.getSection(windowTop); - var $parent; - - //If the position is set - if(position !== null) { - $parent = this.$elem.find('a[href$="#' + position + '"]').parent(); - - //If it's not already the current section - if(!$parent.hasClass(this.config.currentClass)) { - //Change the highlighted nav item - this.adjustNav(this, $parent); - - //If there is a scrollChange callback - if(this.config.scrollChange) { - this.config.scrollChange($parent); - } - } - } - }, - - unbindInterval: function() { - clearInterval(this.t); - this.$win.unbind('scroll.onePageNav'); - } - }; - - OnePageNav.defaults = OnePageNav.prototype.defaults; - - $.fn.onePageNav = function(options) { - return this.each(function() { - new OnePageNav(this, options).init(); - }); - }; - -})( jQuery, window , document ); \ No newline at end of file diff --git a/assets/js/jquery.scrollTo.js b/assets/js/jquery.scrollTo.js deleted file mode 100644 index 73844d4..0000000 --- a/assets/js/jquery.scrollTo.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Copyright (c) 2007-2012 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com - * Dual licensed under MIT and GPL. - * @author Ariel Flesler - * @version 1.4.3 - */ -;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(!e)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); \ No newline at end of file diff --git a/assets/js/waypoints-sticky.min.js b/assets/js/waypoints-sticky.min.js deleted file mode 100644 index b1ab848..0000000 --- a/assets/js/waypoints-sticky.min.js +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -/* -Sticky Elements Shortcut for jQuery Waypoints - v2.0.2 -Copyright (c) 2011-2013 Caleb Troughton -Dual licensed under the MIT license and GPL license. -https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt -*/ -(function(){(function(t,n){if(typeof define==="function"&&define.amd){return define(["jquery","waypoints"],n)}else{return n(t.jQuery)}})(this,function(t){var n,e;n={wrapper:'
',stuckClass:"stuck"};e=function(n,e){n.wrap(e.wrapper);n.each(function(){var n;n=t(this);n.parent().height(n.outerHeight());return true});return n.parent()};return t.waypoints("extendFn","sticky",function(r){var i,a;r=t.extend({},t.fn.waypoint.defaults,n,r);i=e(this,r);a=r.handler;r.handler=function(n){var e,i;e=t(this).children(":first");i=n==="down"||n==="right";e.toggleClass(r.stuckClass,i);if(a!=null){return a.call(this,n)}};i.waypoint(r);return this})})}).call(this); \ No newline at end of file diff --git a/assets/js/waypoints.min.js b/assets/js/waypoints.min.js deleted file mode 100644 index 1fd48ba..0000000 --- a/assets/js/waypoints.min.js +++ /dev/null @@ -1,8 +0,0 @@ -// Generated by CoffeeScript 1.4.0 -/* -jQuery Waypoints - v2.0.2 -Copyright (c) 2011-2013 Caleb Troughton -Dual licensed under the MIT license and GPL license. -https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt -*/ -(function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this); \ No newline at end of file diff --git a/community.html b/community.html index c93a8e9..aa88de9 100644 --- a/community.html +++ b/community.html @@ -15,13 +15,6 @@ - - - - - - - diff --git a/documentation-articles.html b/documentation-articles.html index 371b0d2..f7cfaf4 100644 --- a/documentation-articles.html +++ b/documentation-articles.html @@ -15,13 +15,6 @@ - - - - - - - diff --git a/documentation-books.html b/documentation-books.html index b5f2302..e81014b 100644 --- a/documentation-books.html +++ b/documentation-books.html @@ -17,13 +17,6 @@ - - - - - - - diff --git a/documentation-videos.html b/documentation-videos.html index deb25f7..1812e49 100644 --- a/documentation-videos.html +++ b/documentation-videos.html @@ -15,13 +15,6 @@ - - - - - - - diff --git a/documentation.html b/documentation.html index 64fdd3f..f5b2cb0 100644 --- a/documentation.html +++ b/documentation.html @@ -15,13 +15,6 @@ - - - - - - - diff --git a/downloads.html b/downloads.html index 8ff9f6f..9076fb7 100644 --- a/downloads.html +++ b/downloads.html @@ -15,13 +15,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/news.html b/news.html index eff582a..5b0b265 100644 --- a/news.html +++ b/news.html @@ -15,13 +15,6 @@ - - - - - - -