Removed floating TOC (for now) as it was very inconsistent

This commit is contained in:
fogus 2012-02-08 14:27:20 -05:00
parent 8780370415
commit 94cc8e2ffe
2 changed files with 47 additions and 52 deletions

View file

@ -1,16 +1,15 @@
// hackity-hack // hackity-hack
$(document).ready(function() { $(document).ready(function() {
var ft = $("#floating-toc") var ft = $("#floating-toc");
var ul = ft.find('ul') var ul = ft.find('ul');
var lis = ft.find('li') var lis = ft.find('li');
ul.css('maring', '0px') ul.css('maring', '0px');
var liHeight = $(lis.get(0)).height() var liHeight = $(lis.get(0)).height();
ft.css('height', (liHeight) + 'px') ft.css('height', (liHeight) + 'px');
showNs = function(ns) { showNs = function(ns) {
@ -18,77 +17,77 @@ $(document).ready(function() {
//var el = $("[id='floating-toc_" + ns + "']") //var el = $("[id='floating-toc_" + ns + "']")
//var index = lis.index(el) //var index = lis.index(el)
var index = 0 var index = 0;
for(i in nsPositions.nss) { for(i in nsPositions.nss) {
if(ns == nsPositions.nss[i]) index = i if(ns == nsPositions.nss[i])
index = i;
} }
console.log(index) console.log(index);
if(index == lastNsIndex) return; if(index == lastNsIndex) return;
lastNsIndex = index lastNsIndex = index;
ul.animate({marginTop: (-1 * liHeight * index) + 'px'}, ul.animate({marginTop: (-1 * liHeight * index) + 'px'}, 300);
300) };
// ul.css('margin-top', (-1 * liHeight * index) + 'px')
}
var calcNsPositions = function() { var calcNsPositions = function() {
var nss = [] var nss = [];
var anchors = [] var anchors = [];
var positions = [] var positions = [];
$.each(lis, function(i, el) { $.each(lis, function(i, el) {
var ns = $(el).attr('id').split('_')[1] var ns = $(el).attr('id').split('_')[1];
nss.push(ns) nss.push(ns);
var a = $("a[name='"+ns+"']") var a = $("a[name='"+ns+"']");
anchors.push(a) anchors.push(a);
positions.push(a.offset().top) positions.push(a.offset().top);
console.log(a.offset().top) console.log(a.offset().top);
}); });
return {nss: nss, positions: positions} return {nss: nss, positions: positions};
} };
var nsPositions = calcNsPositions() var nsPositions = calcNsPositions();
console.log(nsPositions) console.log(nsPositions);
var lastNsIndex = -1 var lastNsIndex = -1;
var $window = $(window) var $window = $(window);
var currentSection = function(nsp) { var currentSection = function(nsp) {
console.log(nsp);
var ps = nsp.positions;
var nss = nsp.nss;
var scroll = $window.scrollTop() + 300;
var nsIndex = -1;
var ps = nsp.positions
var nss = nsp.nss
var scroll = $window.scrollTop() + 300
var nsIndex = -1
for(var i in ps) { for(var i in ps) {
var p = ps[i] var p = ps[i];
if(p >= scroll) { if(p >= scroll) {
nsIndex = i-1 nsIndex = i-1;
break; break;
} }
} }
if(nsIndex == -1 && scroll >= ps[0]) { if(nsIndex == -1 && scroll >= ps[0]) {
nsIndex = ps.length-1 nsIndex = ps.length-1;
} }
if(nsIndex == -1) nsIndex = 0 if(nsIndex == -1) nsIndex = 0;
return nss[nsIndex] return nss[nsIndex];
} };
$(window).scroll(function(e) { $(window).scroll(function(e) {
showNs(currentSection(nsPositions)) showNs(currentSection(nsPositions));
}) });
ul.css('margin-top', '0px') ul.css('margin-top', '0px');
});
})

View file

@ -345,14 +345,13 @@
"Notice that we're inlining the css & javascript for [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (`inline-js` "Notice that we're inlining the css & javascript for [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (`inline-js`
& `inline-css`) to be able to package the output as a single file (uberdoc if you will). It goes without & `inline-css`) to be able to package the output as a single file (uberdoc if you will). It goes without
saying that all this is WIP and will prabably change in the future." saying that all this is WIP and will prabably change in the future."
[project-metadata opt-resources header toc floating-toc content] [project-metadata opt-resources header toc content]
(html (html
(doctype :html5) (doctype :html5)
[:html [:html
[:head [:head
[:meta {:http-equiv "Content-Type" :content "text/html" :charset "utf-8"}] [:meta {:http-equiv "Content-Type" :content "text/html" :charset "utf-8"}]
[:meta {:name "description" :content (:description project-metadata)}] [:meta {:name "description" :content (:description project-metadata)}]
#_[:script {:type "text/javascript" :src "./../resources/app.js"}]
(inline-css (str *resources* "shCore.css")) (inline-css (str *resources* "shCore.css"))
(css (css
[:.syntaxhighlighter {:overflow "hidden !important"}]) [:.syntaxhighlighter {:overflow "hidden !important"}])
@ -365,7 +364,6 @@
(inline-js (str *resources* "xregexp-min.js")) (inline-js (str *resources* "xregexp-min.js"))
(inline-js (str *resources* "shCore.js")) (inline-js (str *resources* "shCore.js"))
(inline-js (str *resources* "shBrushClojure.js")) (inline-js (str *resources* "shBrushClojure.js"))
(inline-js (str *resources* "app.js"))
opt-resources opt-resources
[:title (:name project-metadata) " -- Marginalia"]] [:title (:name project-metadata) " -- Marginalia"]]
[:body [:body
@ -380,7 +378,7 @@
"Syntax highlighting provided by Alex Gorbatchev's " "Syntax highlighting provided by Alex Gorbatchev's "
[:a {:href "http://alexgorbatchev.com/SyntaxHighlighter/"} [:a {:href "http://alexgorbatchev.com/SyntaxHighlighter/"}
"SyntaxHighlighter"] "SyntaxHighlighter"]
floating-toc] #_floating-toc]
[:script {:type "text/javascript"} [:script {:type "text/javascript"}
"SyntaxHighlighter.defaults['gutter'] = false; "SyntaxHighlighter.defaults['gutter'] = false;
SyntaxHighlighter.all()"]]])) SyntaxHighlighter.all()"]]]))
@ -399,7 +397,6 @@
(opt-resources-html project-metadata) (opt-resources-html project-metadata)
(header-html project-metadata) (header-html project-metadata)
(toc-html {:uberdoc? true} docs) (toc-html {:uberdoc? true} docs)
(floating-toc-html docs)
(map #(groups-html {:uberdoc? true} %) docs))) (map #(groups-html {:uberdoc? true} %) docs)))
(defn index-html (defn index-html
@ -419,5 +416,4 @@
(opt-resources-html project-metadata) (opt-resources-html project-metadata)
"" ;; no header "" ;; no header
"" ;; no toc "" ;; no toc
(floating-toc-html all-docs)
(groups-html {:uberdoc? false} doc))) (groups-html {:uberdoc? false} doc)))