diff options
Diffstat (limited to 'javascripts/script.js')
-rw-r--r-- | javascripts/script.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/javascripts/script.js b/javascripts/script.js new file mode 100644 index 0000000..2f08550 --- /dev/null +++ b/javascripts/script.js @@ -0,0 +1,52 @@ +(function($) { +$(document).ready(function(){ + + // putting lines by the pre blocks + $("pre").each(function(){ + var pre = $(this).text().split("\n"); + var lines = new Array(pre.length+1); + for(var i = 0; i < pre.length; i++) { + var wrap = Math.floor(pre[i].split("").length / 70) + if (pre[i]==""&&i==pre.length-1) { + lines.splice(i, 1); + } else { + lines[i] = i+1; + for(var j = 0; j < wrap; j++) { + lines[i] += "\n"; + } + } + } + $(this).before("<pre class='lines'>" + lines.join("\n") + "</pre>"); + }); + + var headings = []; + + var collectHeaders = function(){ + headings.push({"top":$(this).offset().top - 15,"text":$(this).text()}); + } + + if($(".markdown-body h1").length > 1) $(".markdown-body h1").each(collectHeaders) + else if($(".markdown-body h2").length > 1) $(".markdown-body h2").each(collectHeaders) + else if($(".markdown-body h3").length > 1) $(".markdown-body h3").each(collectHeaders) + + $(window).scroll(function(){ + if(headings.length==0) return true; + var scrolltop = $(window).scrollTop() || 0; + if(headings[0] && scrolltop < headings[0].top) { + $(".current-section").css({"opacity":0,"visibility":"hidden"}); + return false; + } + $(".current-section").css({"opacity":1,"visibility":"visible"}); + for(var i in headings) { + if(scrolltop >= headings[i].top) { + $(".current-section .name").text(headings[i].text); + } + } + }); + + $(".current-section a").click(function(){ + $(window).scrollTop(0); + return false; + }) +}); +})(jQuery)
\ No newline at end of file |