From bc79a655e5d28e662cd43f81a40a816982307425 Mon Sep 17 00:00:00 2001 From: Robert Lord Date: Mon, 23 Sep 2013 10:38:13 -0700 Subject: [PATCH] More changes --- config.rb | 2 +- source/images/logo.png | Bin 0 -> 4991 bytes source/images/tripit_72dpi_250px.png | Bin 0 -> 4994 bytes source/javascripts/jquery.tocify.js | 62 +++++++++++---- source/javascripts/lang_selector.js | 16 +++- source/layouts/layout.erb | 13 ++-- source/stylesheets/all.css.scss | 112 ++++++++++++++++++++------- source/stylesheets/variables.scss | 10 +++ 8 files changed, 159 insertions(+), 56 deletions(-) create mode 100644 source/images/logo.png create mode 100644 source/images/tripit_72dpi_250px.png diff --git a/config.rb b/config.rb index a35eb15..d92c30e 100644 --- a/config.rb +++ b/config.rb @@ -50,7 +50,7 @@ set :images_dir, 'images' set :markdown_engine, :redcarpet -set :markdown, :fenced_code_blocks => true, :smartypants => true, :disable_indented_code_blocks => true, :prettify => true, :with_toc_data => true, :tables => true +set :markdown, :fenced_code_blocks => true, :smartypants => true, :disable_indented_code_blocks => true, :prettify => true, :tables => true # Activate the syntax highlighter activate :syntax diff --git a/source/images/logo.png b/source/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..abed9a77a9c9dfba06ce87a3ef74c2c821b67a64 GIT binary patch literal 4991 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", { @@ -414,10 +427,16 @@ hashGeneratorOption = this.options.hashGenerator; if (hashGeneratorOption === "pretty") { + // remove weird characters + // prettify the text hashValue = self.text().toLowerCase().replace(/\s/g, "-"); + // ADDED BY ROBERT + // remove weird characters + hashValue = hashValue.replace(/[^\x00-\x7F]/g, ""); + // fix double hyphens while (hashValue.indexOf("--") > -1) { hashValue = hashValue.replace(/--/g, "-"); @@ -645,28 +664,22 @@ // _Local variables_ // Stores the distance to the closest anchor - var closestAnchorDistance = null, - - // Stores the index of the closest anchor + var // Stores the index of the closest anchor closestAnchorIdx = null, - - // Keeps a reference to all anchors - anchors = $(self.options.context).find("div[data-unique]"), - anchorText; + self.calculateHeights(); + // Determines the index of the closest anchor - anchors.each(function(idx) { - var distance = /*Math.abs*/(($(this).next().length ? $(this).next() : $(this)).offset().top - winScrollTop - self.options.highlightOffset); - if (distance < 0) { - closestAnchorDistance = distance; + self.cachedAnchors.each(function(idx) { + if (self.cachedHeights[idx] - $(window).scrollTop() < 0) { closestAnchorIdx = idx; } else { return false; } }); - anchorText = $(anchors[closestAnchorIdx]).attr("data-unique"); + anchorText = $(self.cachedAnchors[closestAnchorIdx]).attr("data-unique"); // Stores the list item HTML element that corresponds to the currently traversed anchor tag elem = $('li[data-unique="' + anchorText + '"]'); @@ -684,9 +697,9 @@ if(self.options.scrollHistory) { - if(window.location.hash !== anchorText) { + if(window.location.hash !== "#" + anchorText) { - window.location.hash = anchorText; + window.location.replace("#" + anchorText); } @@ -707,6 +720,23 @@ }, + // calculateHeights + // ---- + // ADDED BY ROBERT + calculateHeights: function() { + var self = this; + if (self.cachedHeights.length == 0) { + self.cachedHeights = []; + self.cachedAnchors = []; + var anchors = $(self.options.context).find("div[data-unique]"); + anchors.each(function(idx) { + var distance = (($(this).next().length ? $(this).next() : $(this)).offset().top - self.options.highlightOffset); + self.cachedHeights[idx] = distance; + }); + self.cachedAnchors = anchors; + } + }, + // Show // ---- // Opens the current sub-header @@ -956,7 +986,7 @@ $("html, body").animate({ // Sets the jQuery `scrollTop` to the top offset of the HTML div tag that matches the current list item's `data-unique` tag - "scrollTop": $('div[data-unique="' + elem.attr("data-unique") + '"]').offset().top - ($.isFunction(scrollTo) ? scrollTo.call() : scrollTo) + "px" + "scrollTop": $('div[data-unique="' + elem.attr("data-unique") + '"]').next().offset().top - ($.isFunction(scrollTo) ? scrollTo.call() : scrollTo) + "px" }, { diff --git a/source/javascripts/lang_selector.js b/source/javascripts/lang_selector.js index e9d5487..327b67c 100644 --- a/source/javascripts/lang_selector.js +++ b/source/javascripts/lang_selector.js @@ -1,15 +1,22 @@ +languages = [] function activateLanguage(language) { $("#lang-selector a").removeClass('active'); $("#lang-selector a[data-language-name='" + language + "']").addClass('active'); - $(".highlight").hide(); + for (var i=0; i < languages.length; i++) { + $(".highlight." + languages[i]).hide(); + } $(".highlight." + language).show(); - $(".highlight.text").show(); // always show text } -function setupLanguages(languages) { +function setupLanguages(l) { + languages = l; currentLanguage = languages[0]; - activateLanguage(languages[0]); + if (location.search.substr(1) != "") { + activateLanguage(location.search.substr(1)); + } else { + activateLanguage(languages[0]); + } $("#lang-selector a").bind("click", function() { activateLanguage($(this).data("language-name")); @@ -17,3 +24,4 @@ function setupLanguages(languages) { }); } + diff --git a/source/layouts/layout.erb b/source/layouts/layout.erb index 826873c..93f49fe 100644 --- a/source/layouts/layout.erb +++ b/source/layouts/layout.erb @@ -15,7 +15,7 @@