aboutsummaryrefslogtreecommitdiff
path: root/themes/classic
diff options
context:
space:
mode:
authorBrandon Mathis <brandon@imathis.com>2011-06-29 14:01:06 -0400
committerBrandon Mathis <brandon@imathis.com>2011-06-29 14:01:06 -0400
commitea349cdfbfa4d42110099e49a8ff23f7213cd5b6 (patch)
treeaca4c6c7646207fe295197695b0cf87ee2a46913 /themes/classic
parentce6621724c8d13530681724528b22e1c381f0dc2 (diff)
downloadmy_new_personal_website-ea349cdfbfa4d42110099e49a8ff23f7213cd5b6.tar.xz
my_new_personal_website-ea349cdfbfa4d42110099e49a8ff23f7213cd5b6.zip
Moved themes to .themes to get it out of the way. Updated Rakefile to support .themes dir and remove duplication. Improved deploy task. Renamed init_deploy to cofig_deploy and rewrote it to update configurations in the Rakefile for easier deploy use
Diffstat (limited to 'themes/classic')
-rw-r--r--themes/classic/_plugins/blockquote.rb73
-rw-r--r--themes/classic/_plugins/category_generator.rb161
-rw-r--r--themes/classic/_plugins/compass_compiler.rb1
-rw-r--r--themes/classic/_plugins/custom_filters.rb75
-rw-r--r--themes/classic/_plugins/gist_tag.rb94
-rw-r--r--themes/classic/_plugins/haml.rb24
-rw-r--r--themes/classic/_plugins/include_code.rb40
-rw-r--r--themes/classic/_plugins/include_file.rb31
-rw-r--r--themes/classic/_plugins/pullquote.rb42
-rw-r--r--themes/classic/_plugins/pygments_cache_patch.rb30
-rw-r--r--themes/classic/_plugins/sitemap_generator.rb308
-rw-r--r--themes/classic/_plugins/titlecase.rb36
-rw-r--r--themes/classic/sass/_base.scss5
-rw-r--r--themes/classic/sass/_partials.scss7
-rw-r--r--themes/classic/sass/base/_layout.scss134
-rw-r--r--themes/classic/sass/base/_solarized.scss16
-rw-r--r--themes/classic/sass/base/_theme.scss76
-rw-r--r--themes/classic/sass/base/_typography.scss130
-rw-r--r--themes/classic/sass/base/_utilities.scss21
-rw-r--r--themes/classic/sass/custom/_colors.scss20
-rw-r--r--themes/classic/sass/custom/_layout.scss16
-rw-r--r--themes/classic/sass/custom/_styles.scss2
-rw-r--r--themes/classic/sass/partials/_archive.scss72
-rw-r--r--themes/classic/sass/partials/_blog.scss131
-rw-r--r--themes/classic/sass/partials/_footer.scss19
-rw-r--r--themes/classic/sass/partials/_header.scss18
-rw-r--r--themes/classic/sass/partials/_navigation.scss137
-rw-r--r--themes/classic/sass/partials/_sidebar.scss4
-rw-r--r--themes/classic/sass/partials/_syntax.scss208
-rw-r--r--themes/classic/sass/partials/sidebar/_base.scss56
-rw-r--r--themes/classic/sass/partials/sidebar/_delicious.scss4
-rw-r--r--themes/classic/sass/partials/sidebar/_pinboard.scss12
-rw-r--r--themes/classic/sass/partials/sidebar/_twitter.scss33
-rw-r--r--themes/classic/sass/screen.scss9
-rw-r--r--themes/classic/source/_includes/archive_post.html8
-rw-r--r--themes/classic/source/_includes/article.html25
-rw-r--r--themes/classic/source/_includes/asides/delicious.html7
-rw-r--r--themes/classic/source/_includes/asides/pinboard.html19
-rw-r--r--themes/classic/source/_includes/asides/recent_posts.html12
-rw-r--r--themes/classic/source/_includes/asides/twitter.html19
-rw-r--r--themes/classic/source/_includes/disqus_thread.html13
-rw-r--r--themes/classic/source/_includes/footer.html4
-rw-r--r--themes/classic/source/_includes/google_analytics.html13
-rw-r--r--themes/classic/source/_includes/head.html35
-rw-r--r--themes/classic/source/_includes/header.html6
-rw-r--r--themes/classic/source/_includes/navigation.html16
-rw-r--r--themes/classic/source/_includes/post_author.html6
-rw-r--r--themes/classic/source/_includes/post_categories.html10
-rw-r--r--themes/classic/source/_includes/post_date.html10
-rw-r--r--themes/classic/source/_includes/sharing.html1
-rw-r--r--themes/classic/source/_includes/sidebar.html8
-rw-r--r--themes/classic/source/_layouts/category_index.html12
-rw-r--r--themes/classic/source/_layouts/default.html26
-rw-r--r--themes/classic/source/_layouts/page.html5
-rw-r--r--themes/classic/source/_layouts/post.html24
-rw-r--r--themes/classic/source/archives.html17
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/background.pngbin141 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.pngbin82 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/divider.pngbin118 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.pngbin203 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.pngbin636 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.pngbin343 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.pngbin835 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.pngbin210 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.pngbin664 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.pngbin170 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.pngbin442 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/playButton.pngbin251 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.pngbin553 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.pngbin112 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.pngbin94 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.pngbin103 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.pngbin114 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.pngbin116 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.pngbin264 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.pngbin649 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/display/background.pngbin686 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/display/bufferIcon.pngbin816 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/display/muteIcon.pngbin334 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/display/playIcon.pngbin465 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/dock/button.pngbin686 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/glow.xml115
-rw-r--r--themes/classic/source/assets/jwplayer/glow/playlist/item.pngbin172 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/playlist/itemOver.pngbin171 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.pngbin108 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.pngbin105 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.pngbin100 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.pngbin97 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.pngbin749 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.pngbin2579 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.pngbin589 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.pngbin4576 -> 0 bytes
-rw-r--r--themes/classic/source/assets/jwplayer/player.swfbin91375 -> 0 bytes
-rw-r--r--themes/classic/source/atom.xml28
-rw-r--r--themes/classic/source/images/bird_32_gray.pngbin1376 -> 0 bytes
-rw-r--r--themes/classic/source/images/bird_32_gray_fail.pngbin615 -> 0 bytes
-rw-r--r--themes/classic/source/images/code_bg.pngbin239 -> 0 bytes
-rw-r--r--themes/classic/source/images/dotted-border.pngbin99 -> 0 bytes
-rw-r--r--themes/classic/source/images/email.pngbin301 -> 0 bytes
-rw-r--r--themes/classic/source/images/favicon.pngbin400 -> 0 bytes
-rw-r--r--themes/classic/source/images/line-tile.pngbin636 -> 0 bytes
-rw-r--r--themes/classic/source/images/noise.pngbin17742 -> 0 bytes
-rw-r--r--themes/classic/source/images/rss.pngbin490 -> 0 bytes
-rw-r--r--themes/classic/source/images/search.pngbin333 -> 0 bytes
-rw-r--r--themes/classic/source/index.html31
-rw-r--r--themes/classic/source/javascripts/ender.js2
-rw-r--r--themes/classic/source/javascripts/libs/ender.js1497
-rw-r--r--themes/classic/source/javascripts/libs/jXHR.js85
-rw-r--r--themes/classic/source/javascripts/libs/swfobject-dynamic.js298
-rw-r--r--themes/classic/source/javascripts/modernizr-2.0.js5
-rw-r--r--themes/classic/source/javascripts/octopress.js143
-rw-r--r--themes/classic/source/javascripts/pinboard.js56
-rw-r--r--themes/classic/source/javascripts/twitter.js80
113 files changed, 0 insertions, 4681 deletions
diff --git a/themes/classic/_plugins/blockquote.rb b/themes/classic/_plugins/blockquote.rb
deleted file mode 100644
index 2f0712bd..00000000
--- a/themes/classic/_plugins/blockquote.rb
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# Author: Brandon Mathis
-# Based on the work of: Josediaz Gonzalez - https://github.com/josegonzalez/josediazgonzalez.com/blob/master/_plugins/blockquote.rb
-#
-# Outputs a string with a given attribution as a quote
-#
-# {% blockquote Bobby Willis http://google.com/blah the search for bobby's mom %}
-# Wheeee!
-# {% endblockquote %}
-# ...
-# <blockquote>
-# <p>Wheeee!</p>
-# <footer>
-# <strong>Bobby Willis</strong><cite><a href="http://google.com/blah">The Search For Bobby's Mom</a>
-# </blockquote>
-#
-require './_plugins/titlecase.rb'
-module Jekyll
-
- class Blockquote < Liquid::Block
- FullCiteWithTitle = /([\w\s]+)(https?:\/\/)(\S+\s)([\w\s]+)/i
- FullCite = /([\w\s]+)(https?:\/\/)(\S+)/i
- Author = /([\w\s]+)/
-
- def initialize(tag_name, markup, tokens)
- @by = nil
- @source = nil
- @title = nil
- if markup =~ FullCiteWithTitle
- @by = $1
- @source = $2 + $3
- @title = $4.titlecase
- elsif markup =~ FullCite
- @by = $1
- @source = $2 + $3
- elsif markup =~ Author
- @by = $1
- end
- super
- end
-
- def render(context)
- output = paragraphize(super.map(&:strip).join)
- author = "<strong>#{@by.strip}</strong>"
- if @source
- url = @source.match(/https?:\/\/(.+)/)[1].split('/')
- parts = []
- url.each do |part|
- if (parts + [part]).join('/').length < 32
- parts << part
- end
- end
- source = parts.join('/')
- source << '/&hellip;' unless source == @source
- end
- cite = "<cite><a href='#{@source}'>#{(@title || source)}</a></cite>"
- reply = if @by.nil?
- output
- elsif !@source.nil?
- "#{output}<footer>#{author + cite}</footer>"
- else
- "#{output}<footer>#{author}</footer>"
- end
- "<blockquote>#{reply}</blockquote>"
- end
-
- def paragraphize(input)
- "<p>#{input.gsub(/\n\n/, '</p><p>').gsub(/\n/, '<br/>')}</p>"
- end
- end
-end
-
-Liquid::Template.register_tag('blockquote', Jekyll::Blockquote)
diff --git a/themes/classic/_plugins/category_generator.rb b/themes/classic/_plugins/category_generator.rb
deleted file mode 100644
index c5dbbcd4..00000000
--- a/themes/classic/_plugins/category_generator.rb
+++ /dev/null
@@ -1,161 +0,0 @@
-# Jekyll category page generator.
-# http://recursive-design.com/projects/jekyll-plugins/
-#
-# Version: 0.1.4 (201101061053)
-#
-# Copyright (c) 2010 Dave Perrett, http://recursive-design.com/
-# Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
-#
-# A generator that creates category pages for jekyll sites.
-#
-# To use it, simply drop this script into the _plugins directory of your Jekyll site. You should
-# also create a file called 'category_index.html' in the _layouts directory of your jekyll site
-# with the following contents (note: you should remove the leading '# ' characters):
-#
-# ================================== COPY BELOW THIS LINE ==================================
-# ---
-# layout: default
-# ---
-#
-# <h1 class="category">{{ page.title }}</h1>
-# <ul class="posts">
-# {% for post in site.categories[page.category] %}
-# <div>{{ post.date | date_to_html_string }}</div>
-# <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
-# <div class="categories">Filed under {{ post.categories | category_links }}</div>
-# {% endfor %}
-# </ul>
-# ================================== COPY ABOVE THIS LINE ==================================
-#
-# You can alter the _layout_ setting if you wish to use an alternate layout, and obviously you
-# can change the HTML above as you see fit.
-#
-# When you compile your jekyll site, this plugin will loop through the list of categories in your
-# site, and use the layout above to generate a page for each one with a list of links to the
-# individual posts.
-#
-# Included filters :
-# - category_links: Outputs the list of categories as comma-separated <a> links.
-# - date_to_html_string: Outputs the post.date as formatted html, with hooks for CSS styling.
-#
-# Available _config.yml settings :
-# - category_dir: The subfolder to build category pages in (default is 'categories').
-# - category_title_prefix: The string used before the category name in the page title (default is
-# 'Category: ').
-module Jekyll
-
-
- # The CategoryIndex class creates a single category page for the specified category.
- class CategoryIndex < Page
-
- # Initializes a new CategoryIndex.
- #
- # +base+ is the String path to the <source>.
- # +category_dir+ is the String path between <source> and the category folder.
- # +category+ is the category currently being processed.
- def initialize(site, base, category_dir, category)
- @site = site
- @base = base
- @dir = category_dir
- @name = 'index.html'
- self.process(@name)
- # Read the YAML data from the layout page.
- self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
- self.data['category'] = category
- # Set the title for this page.
- title_prefix = site.config['category_title_prefix'] || 'Category: '
- self.data['title'] = "#{title_prefix}#{category}"
- # Set the meta-description for this page.
- meta_description_prefix = site.config['category_meta_description_prefix'] || 'Category: '
- self.data['description'] = "#{meta_description_prefix}#{category}"
- end
-
- end
-
-
- # The Site class is a built-in Jekyll class with access to global site config information.
- class Site
-
- # Creates an instance of CategoryIndex for each category page, renders it, and
- # writes the output to a file.
- #
- # +category_dir+ is the String path to the category folder.
- # +category+ is the category currently being processed.
- def write_category_index(category_dir, category)
- index = CategoryIndex.new(self, self.source, category_dir, category)
- index.render(self.layouts, site_payload)
- index.write(self.dest)
- # Record the fact that this page has been added, otherwise Site::cleanup will remove it.
- self.pages << index
- end
-
- # Loops through the list of category pages and processes each one.
- def write_category_indexes
- if self.layouts.key? 'category_index'
- dir = self.config['category_dir'] || 'categories'
- self.categories.keys.each do |category|
- self.write_category_index(File.join(dir, category.gsub(/_|\W/, '-')), category)
- end
-
- # Throw an exception if the layout couldn't be found.
- else
- throw "No 'category_index' layout found."
- end
- end
-
- end
-
-
- # Jekyll hook - the generate method is called by jekyll, and generates all of the category pages.
- class GenerateCategories < Generator
- safe true
- priority :low
-
- def generate(site)
- site.write_category_indexes
- end
-
- end
-
-
- # Adds some extra filters used during the category creation process.
- module Filters
-
- # Outputs a list of categories as comma-separated <a> links. This is used
- # to output the category list for each post on a category page.
- #
- # +categories+ is the list of categories to format.
- #
- # Returns string
- #
- def category_links(categories)
- categories = categories.sort!.map do |item|
- "<a class='category' href='/#{@context.registers[:site].config['category_dir']}/#{item.gsub(/_|\W/, '-')}'/>#{item}</a>"
- end
-
- case categories.length
- when 0
- ""
- when 1
- categories[0].to_s
- else
- "#{categories[0...-1].join(', ')}, #{categories[-1]}"
- end
- end
-
- # Outputs the post.date as formatted html, with hooks for CSS styling.
- #
- # +date+ is the date object to format as HTML.
- #
- # Returns string
- def date_to_html_string(date)
- result = '<span class="month">' + date.strftime('%b').upcase + '</span> '
- result += date.strftime('<span class="day">%d</span> ')
- result += date.strftime('<span class="year">%Y</span> ')
- result
- end
-
- end
-
-end
-
diff --git a/themes/classic/_plugins/compass_compiler.rb b/themes/classic/_plugins/compass_compiler.rb
deleted file mode 100644
index dcec746a..00000000
--- a/themes/classic/_plugins/compass_compiler.rb
+++ /dev/null
@@ -1 +0,0 @@
-system "compass compile --css-dir source/stylesheets"
diff --git a/themes/classic/_plugins/custom_filters.rb b/themes/classic/_plugins/custom_filters.rb
deleted file mode 100644
index f0db30ee..00000000
--- a/themes/classic/_plugins/custom_filters.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-#custom filters for Octopress
-
-module OctopressFilters
- # Used on the blog index to split posts on the <!--more--> marker
- def exerpt(input)
- if input.index(/<!--\s*more\s*-->/i)
- input.split(/<!--\s*more\s*-->/i)[0]
- else
- input
- end
- end
-
- # Summary is used on the Archive pages to return the first block of content from a post.
- def summary(input)
- if input.index(/\n\n/)
- input.split(/\n\n/)[0]
- else
- input
- end
- end
-
- # Replaces relative urls with full urls
- def full_urls(input, url='')
- input.gsub /(\s+(href|src)\s*=\s*["|']{1})(\/[^\"'>]+)/ do
- $1+url+$3
- end
- end
-
- # Returns a url without the http:// for use in as a search modifier eg. 'search terms site:website.com'
- def search_url(input)
- input.gsub /(https?:\/\/)(\S+)/ do
- $2
- end
- end
-
- # replaces primes with smartquotes using RubyPants
- def smart_quotes(input)
- require 'rubypants'
- RubyPants.new(input).to_html
- end
-
- # Returns a title cased string based on John Gruber's title case http://daringfireball.net/2008/08/title_case_update
- def titlecase(input)
- input.titlecase
- end
-
- # Returns a datetime if the input is a string
- def datetime(date)
- if date.class == String
- date = Time.parse(date)
- end
- date
- end
-
- # Returns an ordidinal date eg July 22 2007 -> July 22nd 2007
- def ordinalize(date)
- date = datetime(date)
- "#{date.strftime('%b')} #{ordinal(date.strftime('%e').to_i)}, #{date.strftime('%Y')}"
- end
-
- # Returns an ordinal number. 13 -> 13th, 21 -> 21st etc.
- def ordinal(number)
- if (11..13).include?(number.to_i % 100)
- "#{number}<span>th</span>"
- else
- case number.to_i % 10
- when 1; "#{number}<span>st</span>"
- when 2; "#{number}<span>nd</span>"
- when 3; "#{number}<span>rd</span>"
- else "#{number}<span>th</span>"
- end
- end
- end
-end
-Liquid::Template.register_filter OctopressFilters
diff --git a/themes/classic/_plugins/gist_tag.rb b/themes/classic/_plugins/gist_tag.rb
deleted file mode 100644
index 0a8797f8..00000000
--- a/themes/classic/_plugins/gist_tag.rb
+++ /dev/null
@@ -1,94 +0,0 @@
-# A Liquid tag for Jekyll sites that allows embedding Gists and showing code for non-JavaScript enabled browsers and readers.
-# by: Brandon Tilly
-# Source URL: https://gist.github.com/1027674
-# Post http://brandontilley.com/2011/01/31/gist-tag-for-jekyll.html
-#
-# Example usage: {% gist 1027674 gist_tag.rb %} //embeds a gist for this plugin
-
-require 'cgi'
-require 'digest/md5'
-require 'net/https'
-require 'uri'
-
-module Jekyll
- class GistTag < Liquid::Tag
- def initialize(tag_name, text, token)
- super
- @text = text
- @cache_disabled = false
- @cache_folder = File.expand_path "../_gist_cache", File.dirname(__FILE__)
- FileUtils.mkdir_p @cache_folder
- end
-
- def render(context)
- if parts = @text.match(/([\d]*) (.*)/)
- gist, file = parts[1].strip, parts[2].strip
- script_url = script_url_for gist, file
- code = get_cached_gist(gist, file) || get_gist_from_web(gist, file)
- html_output_for script_url, code
- else
- ""
- end
- end
-
- def html_output_for(script_url, code)
- code = CGI.escapeHTML code
- <<-HTML
-<script src='#{script_url}'></script>
-<noscript><pre><code>#{code}</code></pre></noscript>
- HTML
- end
-
- def script_url_for(gist_id, filename)
- "https://gist.github.com/#{gist_id}.js?file=#{filename}"
- end
-
- def get_gist_url_for(gist, file)
- "https://raw.github.com/gist/#{gist}/#{file}"
- end
-
- def cache(gist, file, data)
- cache_file = get_cache_file_for gist, file
- File.open(cache_file, "w") do |io|
- io.write data
- end
- end
-
- def get_cached_gist(gist, file)
- return nil if @cache_disabled
- cache_file = get_cache_file_for gist, file
- File.read cache_file if File.exist? cache_file
- end
-
- def get_cache_file_for(gist, file)
- bad_chars = /[^a-zA-Z0-9\-_.]/
- gist = gist.gsub bad_chars, ''
- file = file.gsub bad_chars, ''
- md5 = Digest::MD5.hexdigest "#{gist}-#{file}"
- File.join @cache_folder, "#{gist}-#{file}-#{md5}.cache"
- end
-
- def get_gist_from_web(gist, file)
- gist_url = get_gist_url_for gist, file
- raw_uri = URI.parse gist_url
- https = Net::HTTP.new raw_uri.host, raw_uri.port
- https.use_ssl = true
- https.verify_mode = OpenSSL::SSL::VERIFY_NONE
- request = Net::HTTP::Get.new raw_uri.request_uri
- data = https.request request
- data = data.body
- cache gist, file, data unless @cache_disabled
- data
- end
- end
-
- class GistTagNoCache < GistTag
- def initialize(tag_name, text, token)
- super
- @cache_disabled = true
- end
- end
-end
-
-Liquid::Template.register_tag('gist', Jekyll::GistTag)
-Liquid::Template.register_tag('gistnocache', Jekyll::GistTagNoCache)
diff --git a/themes/classic/_plugins/haml.rb b/themes/classic/_plugins/haml.rb
deleted file mode 100644
index 7e548dec..00000000
--- a/themes/classic/_plugins/haml.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-module Jekyll
- require 'haml'
- class HamlConverter < Converter
- safe true
- priority :low
-
- def matches(ext)
- ext =~ /haml/i
- end
-
- def output_ext(ext)
- ".html"
- end
-
- def convert(content)
- begin
- engine = Haml::Engine.new(content)
- engine.render
- rescue StandardError => e
- puts "!!! HAML Error: " + e.message
- end
- end
- end
-end
diff --git a/themes/classic/_plugins/include_code.rb b/themes/classic/_plugins/include_code.rb
deleted file mode 100644
index fa5c76ff..00000000
--- a/themes/classic/_plugins/include_code.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-require 'pathname'
-
-module Jekyll
-
- class IncludeCodeTag < Liquid::Tag
- def initialize(tag_name, file, tokens)
- super
- @file = file.strip
- end
-
- def render(context)
- code_dir = (context.registers[:site].config['code_dir'] || 'downloads/code')
- code_path = (Pathname.new(context.registers[:site].source) + code_dir).expand_path
- file = code_path + @file
-
- if File.symlink?(code_path)
- return "Code directory '#{code_path}' cannot be a symlink"
- end
-
- unless file.file?
- return "File #{file} could not be found"
- end
-
- Dir.chdir(code_path) do
- code = file.read
- file_type = file.extname
- url = "#{context.registers[:site].config['url']}/#{code_dir}/#{@file}"
- source = "<figure><figcaption><span>#{file.basename}</span><a href='#{url}'>download</a></figcaption>\n"
- source += "{% highlight #{file_type} %}\n" + code + "\n{% endhighlight %}</figure>"
- partial = Liquid::Template.parse(source)
- context.stack do
- partial.render(context)
- end
- end
- end
- end
-
-end
-
-Liquid::Template.register_tag('include_code', Jekyll::IncludeCodeTag)
diff --git a/themes/classic/_plugins/include_file.rb b/themes/classic/_plugins/include_file.rb
deleted file mode 100644
index 3862228b..00000000
--- a/themes/classic/_plugins/include_file.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-require 'pathname'
-
-module Jekyll
-
- class IncludePartialTag < Liquid::Tag
- def initialize(tag_name, file, tokens)
- super
- @file = file.strip
- end
-
- def render(context)
- file_dir = (context.registers[:site].source || 'source')
- file_path = Pathname.new(file_dir).expand_path
- file = file_path + @file
-
- unless file.file?
- return "File #{file} could not be found"
- end
-
- Dir.chdir(file_path) do
- partial = Liquid::Template.parse(file.read)
- context.stack do
- partial.render(context)
- end
- end
- end
- end
-end
-
-Liquid::Template.register_tag('include_partial', Jekyll::IncludePartialTag)
-
diff --git a/themes/classic/_plugins/pullquote.rb b/themes/classic/_plugins/pullquote.rb
deleted file mode 100644
index 2b8544ab..00000000
--- a/themes/classic/_plugins/pullquote.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# Author: Brandon Mathis
-# Based on the sematic pullquote technique by Maykel Loomans at http://miekd.com/articles/pull-quotes-with-html5-and-css/
-#
-# Outputs a span with a data-pullquote attribute set from the marked pullquote. Example:
-#
-# {% pullquote %}
-# When writing longform posts, I find it helpful to include pullquotes, which help those scanning a post discern whether or not a post is helpful.
-# It is important to note, {" pullquotes are merely visual in presentation and should not appear twice in the text. "} That is why it is prefered
-# to use a CSS only technique for styling pullquotes.
-# {% endpullquote %}
-# ...will output...
-# <p>
-# <span data-pullquote="pullquotes are merely visual in presentation and should not appear twice in the text.">
-# When writing longform posts, I find it helpful to include pullquotes, which help those scanning a post discern whether or not a post is helpful.
-# It is important to note, pullquotes are merely visual in presentation and should not appear twice in the text. This is why a CSS only approach # for styling pullquotes is prefered.
-# </span>
-# </p>
-#
-
-module Jekyll
-
- class PullquoteTag < Liquid::Block
- PullQuoteMarkup = /\{(.+)\}/i
-
- def initialize(tag_name, markup, tokens)
- super
- end
-
- def render(context)
- output = super
- if output.join =~ /\{"\s*(.+)\s*"\}/
- @quote = $1
- "<span class='has-pullquote' data-pullquote='#{@quote}'>#{output.join.gsub(/\{"\s*|\s*"\}/, '')}</span>"
- else
- return "Surround your pullquote like this {! text to be quoted !}"
- end
- end
- end
-end
-
-Liquid::Template.register_tag('pullquote', Jekyll::PullquoteTag)
diff --git a/themes/classic/_plugins/pygments_cache_patch.rb b/themes/classic/_plugins/pygments_cache_patch.rb
deleted file mode 100644
index 09c09840..00000000
--- a/themes/classic/_plugins/pygments_cache_patch.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Author: Raimonds Simanovskis, http://blog.rayapps.com/
-# Source URL: https://github.com/rsim/blog.rayapps.com/blob/master/_plugins/pygments_cache_patch.rb
-#
-
-require 'fileutils'
-require 'digest/md5'
-
-PYGMENTS_CACHE_DIR = File.expand_path('../../_code_cache', __FILE__)
-FileUtils.mkdir_p(PYGMENTS_CACHE_DIR)
-
-Jekyll::HighlightBlock.class_eval do
- def render_pygments(context, code)
- if defined?(PYGMENTS_CACHE_DIR)
- path = File.join(PYGMENTS_CACHE_DIR, "#{@lang}-#{Digest::MD5.hexdigest(code)}.html")
- if File.exist?(path)
- highlighted_code = File.read(path)
- else
- highlighted_code = Albino.new(code, @lang).to_s(@options)
- File.open(path, 'w') {|f| f.print(highlighted_code) }
- end
- else
- highlighted_code = Albino.new(code, @lang).to_s(@options)
- end
- output = add_code_tags(highlighted_code, @lang)
- output = context["pygments_prefix"] + output if context["pygments_prefix"]
- output = output + context["pygments_suffix"] if context["pygments_suffix"]
- output
- end
-end
diff --git a/themes/classic/_plugins/sitemap_generator.rb b/themes/classic/_plugins/sitemap_generator.rb
deleted file mode 100644
index 8b6cf78c..00000000
--- a/themes/classic/_plugins/sitemap_generator.rb
+++ /dev/null
@@ -1,308 +0,0 @@
-# Sitemap.xml Generator is a Jekyll plugin that generates a sitemap.xml file by
-# traversing all of the available posts and pages.
-#
-# How To Use:
-# 1) Copy source file into your _plugins folder within your Jekyll project.
-# 2) Change modify the url variable in _config.yml to reflect your domain name.
-# 3) Run Jekyll: jekyll --server to re-generate your site.
-#
-# Variables:
-# * Change SITEMAP_FILE_NAME if you want your sitemap to be called something
-# other than sitemap.xml.
-# * Change the PAGES_INCLUDE_POSTS list to include any pages that are looping
-# through your posts (e.g. "index.html", "archive.html", etc.). This will
-# ensure that right after you make a new post, the last modified date will
-# be updated to reflect the new post.
-# * A sitemap.xml should be included in your _site folder.
-# * If there are any files you don't want included in the sitemap, add them
-# to the EXCLUDED_FILES list. The name should match the name of the source
-# file.
-# * If you want to include the optional changefreq and priority attributes,
-# simply include custom variables in the YAML Front Matter of that file.
-# The names of these custom variables are defined below in the
-# CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME and PRIORITY_CUSTOM_VARIABLE_NAME
-# constants.
-#
-# Notes:
-# * The last modified date is determined by the latest from the following:
-# system modified date of the page or post, system modified date of
-# included layout, system modified date of included layout within that
-# layout, ...
-#
-# Author: Michael Levin
-# Site: http://www.kinnetica.com
-# Distributed Under A Creative Commons License
-# - http://creativecommons.org/licenses/by/3.0/
-#
-# Modified for Octopress by John W. Long
-#
-require 'rexml/document'
-
-module Jekyll
-
- # Change SITEMAP_FILE_NAME if you would like your sitemap file
- # to be called something else
- SITEMAP_FILE_NAME = "sitemap.xml"
-
- # Any files to exclude from being included in the sitemap.xml
- EXCLUDED_FILES = ["atom.xml"]
-
- # Any files that include posts, so that when a new post is added, the last
- # modified date of these pages should take that into account
- PAGES_INCLUDE_POSTS = ["index.html"]
-
- # Custom variable names for changefreq and priority elements
- # These names are used within the YAML Front Matter of pages or posts
- # for which you want to include these properties
- CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME = "change_frequency"
- PRIORITY_CUSTOM_VARIABLE_NAME = "priority"
-
- class Post
- attr_accessor :name
-
- def full_path_to_source
- File.join(@base, @name)
- end
-
- def location_on_server
- "#{site.config['url']}#{url}"
- end
- end
-
- class Page
- attr_accessor :name
-
- def full_path_to_source
- File.join(@base, @dir, @name)
- end
-
- def location_on_server
- location = "#{site.config['url']}#{@dir}#{url}"
- location.gsub(/index.html$/, "")
- end
- end
-
- class Layout
- def full_path_to_source
- File.join(@base, @name)
- end
- end
-
- # Recover from strange exception when starting server without --auto
- class SitemapFile < StaticFile
- def write(dest)
- begin
- super(dest)
- rescue
- end
-
- true
- end
- end
-
- class SitemapGenerator < Generator
-
- # Valid values allowed by sitemap.xml spec for change frequencies
- VALID_CHANGE_FREQUENCY_VALUES = ["always", "hourly", "daily", "weekly",
- "monthly", "yearly", "never"]
-
- # Goes through pages and posts and generates sitemap.xml file
- #
- # Returns nothing
- def generate(site)
- sitemap = REXML::Document.new << REXML::XMLDecl.new("1.0", "UTF-8")
-
- urlset = REXML::Element.new "urlset"
- urlset.add_attribute("xmlns",
- "http://www.sitemaps.org/schemas/sitemap/0.9")
-
- @last_modified_post_date = fill_posts(site, urlset)
- fill_pages(site, urlset)
-
- sitemap.add_element(urlset)
-
- # File I/O: create sitemap.xml file and write out pretty-printed XML
- file = File.new(File.join(site.dest, SITEMAP_FILE_NAME), "w")
- formatter = REXML::Formatters::Pretty.new(4)
- formatter.compact = true
- formatter.write(sitemap, file)
- file.close
-
- # Keep the sitemap.xml file from being cleaned by Jekyll
- site.static_files << Jekyll::SitemapFile.new(site, site.dest, "/", SITEMAP_FILE_NAME)
- end
-
- # Create url elements for all the posts and find the date of the latest one
- #
- # Returns last_modified_date of latest post
- def fill_posts(site, urlset)
- last_modified_date = nil
- site.posts.each do |post|
- if !excluded?(post.name)
- url = fill_url(site, post)
- urlset.add_element(url)
- end
-
- path = post.full_path_to_source
- date = File.mtime(path)
- last_modified_date = date if last_modified_date == nil or date > last_modified_date
- end
-
- last_modified_date
- end
-
- # Create url elements for all the normal pages and find the date of the
- # index to use with the pagination pages
- #
- # Returns last_modified_date of index page
- def fill_pages(site, urlset)
- site.pages.each do |page|
- if !excluded?(page.name)
- path = page.full_path_to_source
- if File.exists?(path)
- url = fill_url(site, page)
- urlset.add_element(url)
- end
- end
- end
- end
-
- # Fill data of each URL element: location, last modified,
- # change frequency (optional), and priority.
- #
- # Returns url REXML::Element
- def fill_url(site, page_or_post)
- url = REXML::Element.new "url"
-
- loc = fill_location(page_or_post)
- url.add_element(loc)
-
- lastmod = fill_last_modified(site, page_or_post)
- url.add_element(lastmod) if lastmod
-
- if (page_or_post.data[CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME])
- change_frequency =
- page_or_post.data[CHANGE_FREQUENCY_CUSTOM_VARIABLE_NAME].downcase
-
- if (valid_change_frequency?(change_frequency))
- changefreq = REXML::Element.new "changefreq"
- changefreq.text = change_frequency
- url.add_element(changefreq)
- else
- puts "ERROR: Invalid Change Frequency In #{page_or_post.name}"
- end
- end
-
- if (page_or_post.data[PRIORITY_CUSTOM_VARIABLE_NAME])
- priority_value = page_or_post.data[PRIORITY_CUSTOM_VARIABLE_NAME]
- if valid_priority?(priority_value)
- priority = REXML::Element.new "priority"
- priority.text = page_or_post.data[PRIORITY_CUSTOM_VARIABLE_NAME]
- url.add_element(priority)
- else
- puts "ERROR: Invalid Priority In #{page_or_post.name}"
- end
- end
-
- url
- end
-
- # Get URL location of page or post
- #
- # Returns the location of the page or post
- def fill_location(page_or_post)
- loc = REXML::Element.new "loc"
- loc.text = page_or_post.location_on_server
-
- loc
- end
-
- # Fill lastmod XML element with the last modified date for the page or post.
- #
- # Returns lastmod REXML::Element or nil
- def fill_last_modified(site, page_or_post)
- path = page_or_post.full_path_to_source
-
- lastmod = REXML::Element.new "lastmod"
- date = File.mtime(path)
- latest_date = find_latest_date(date, site, page_or_post)
-
- if @last_modified_post_date == nil
- # This is a post
- lastmod.text = latest_date.iso8601
- else
- # This is a page
- if posts_included?(page_or_post.name)
- # We want to take into account the last post date
- final_date = greater_date(latest_date, @last_modified_post_date)
- lastmod.text = final_date.iso8601
- else
- lastmod.text = latest_date.iso8601
- end
- end
- lastmod
- end
-
- # Go through the page/post and any implemented layouts and get the latest
- # modified date
- #
- # Returns formatted output of latest date of page/post and any used layouts
- def find_latest_date(latest_date, site, page_or_post)
- layouts = site.layouts
- layout = layouts[page_or_post.data["layout"]]
- while layout
- path = layout.full_path_to_source
- date = File.mtime(path)
-
- latest_date = date if (date > latest_date)
-
- layout = layouts[layout.data["layout"]]
- end
-
- latest_date
- end
-
- # Which of the two dates is later
- #
- # Returns latest of two dates
- def greater_date(date1, date2)
- if (date1 >= date2)
- date1
- else
- date2
- end
- end
-
- # Is the page or post listed as something we want to exclude?
- #
- # Returns boolean
- def excluded?(name)
- EXCLUDED_FILES.include? name
- end
-
- def posts_included?(name)
- PAGES_INCLUDE_POSTS.include? name
- end
-
- # Is the change frequency value provided valid according to the spec
- #
- # Returns boolean
- def valid_change_frequency?(change_frequency)
- VALID_CHANGE_FREQUENCY_VALUES.include? change_frequency
- end
-
- # Is the priority value provided valid according to the spec
- #
- # Returns boolean
- def valid_priority?(priority)
- begin
- priority_val = Float(priority)
- return true if priority_val >= 0.0 and priority_val <= 1.0
- rescue ArgumentError
- end
-
- false
- end
- end
-end
-
diff --git a/themes/classic/_plugins/titlecase.rb b/themes/classic/_plugins/titlecase.rb
deleted file mode 100644
index 103bf702..00000000
--- a/themes/classic/_plugins/titlecase.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-class String
- def titlecase
- small_words = %w(a an and as at but by en for if in of on or the to v v. via vs vs.)
-
- x = split(" ").map do |word|
- # note: word could contain non-word characters!
- # downcase all small_words, capitalize the rest
- small_words.include?(word.gsub(/\W/, "").downcase) ? word.downcase! : word.smart_capitalize!
- word
- end
- # capitalize first and last words
- x.first.to_s.smart_capitalize!
- x.last.to_s.smart_capitalize!
- # small words after colons are capitalized
- x.join(" ").gsub(/:\s?(\W*#{small_words.join("|")}\W*)\s/) { ": #{$1.smart_capitalize} " }
- end
-
- def titlecase!
- replace(titlecase)
- end
-
- def smart_capitalize
- # ignore any leading crazy characters and capitalize the first real character
- if self =~ /^['"\(\[']*([a-z])/
- i = index($1)
- x = self[i,self.length]
- # word with capitals and periods mid-word are left alone
- self[i,1] = self[i,1].upcase unless x =~ /[A-Z]/ or x =~ /\.\w+/
- end
- self
- end
-
- def smart_capitalize!
- replace(smart_capitalize)
- end
-end
diff --git a/themes/classic/sass/_base.scss b/themes/classic/sass/_base.scss
deleted file mode 100644
index f6583f17..00000000
--- a/themes/classic/sass/_base.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-@import "base/utilities";
-@import "base/solarized";
-@import "base/theme";
-@import "base/layout";
-@import "base/typography";
diff --git a/themes/classic/sass/_partials.scss b/themes/classic/sass/_partials.scss
deleted file mode 100644
index 2ffed5ba..00000000
--- a/themes/classic/sass/_partials.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-@import "partials/header";
-@import "partials/navigation";
-@import "partials/blog";
-@import "partials/syntax";
-@import "partials/archive";
-@import "partials/sidebar";
-@import "partials/footer";
diff --git a/themes/classic/sass/base/_layout.scss b/themes/classic/sass/base/_layout.scss
deleted file mode 100644
index b24e1b29..00000000
--- a/themes/classic/sass/base/_layout.scss
+++ /dev/null
@@ -1,134 +0,0 @@
-$max-width: 1200px !default;
-
-// Padding used for layout margins
-$pad-min: 18px !default;
-$pad-narrow: 25px !default;
-$pad-medium: 35px !default;
-$pad-wide: 55px !default;
-
-// Sidebar widths used in media queries
-$sidebar-width-medium: 240px !default;
-$sidebar-pad-medium: 15px !default;
-$sidebar-pad-wide: 20px !default;
-$sidebar-width-wide: 300px !default;
-
-.group { @include pie-clearfix; }
-
-body {
- -webkit-text-size-adjust: none;
- max-width: $max-width;
- position: relative;
- margin: 0 auto;
- > header, > nav, > footer, #articles > article, #articles > nav {
- @extend .group;
- padding-left: $pad-min;
- padding-right: $pad-min;
- @media only screen and (min-width: 480px) {
- padding-left: $pad-narrow;
- padding-right: $pad-narrow;
- }
- @media only screen and (min-width: 768px) {
- padding-left: $pad-medium;
- padding-right: $pad-medium;
- }
- @media only screen and (min-width: 992px) {
- padding-left: $pad-wide;
- padding-right: $pad-wide;
- }
- }
- > header {
- font-size: 1em;
- padding-top: 1.5em;
- padding-bottom: 1.5em;
- }
-}
-
-.toggle-sidebar { display: none; }
-#articles { width: 100%;
- + aside {
- float: none;
- padding: 0 $pad-min 1px;
- background-color: $sidebar-bg;
- border-top: 1px solid $sidebar-border;
- }
-}
-
-@media only screen and (min-width: 550px) {
- body > header { font-size: 1em; }
-}
-@media only screen and (min-width: 768px) {
- body { -webkit-text-size-adjust: auto; }
- body > header { font-size: 1.2em; }
- body > nav {
- + div {
- @extend .group;
- padding: 0;
- margin: 0 auto;
- > div {
- @extend .group;
- margin-right: $sidebar-width-medium;
- }
- }
- }
- #articles {
- padding-top: $pad-medium/2;
- padding-bottom: $pad-medium/2;
- float: left;
- + aside {
- width: $sidebar-width-medium - $sidebar-pad-medium*2;
- padding: 0 $sidebar-pad-medium $sidebar-pad-medium;
- background: none;
- float: left;
- margin: 0 -100% 0 0;
- }
- }
- body > div > div { position: relative; }
-
- .collapse-sidebar {
- > div > div { margin-right: 10px; }
- #articles + aside {
- display: none;
- }
- .toggle-sidebar {
- right: -1px;
- background-color: $sidebar-bg;
- border-right-width: 0;
- text-indent: 2px;
- border-left: 1px solid $sidebar-border;
- @include border-bottom-right-radius(0);
- @include border-bottom-left-radius(.3em);
- @include link-colors(#aaa, #888);
- }
- }
-
- .toggle-sidebar {
- outline: none;
- position: absolute; right: -21px; top: 0;
- width: 20px;
- font-size: 1.2em;
- line-height: 1.1em;
- padding-bottom: .1em;
- text-indent: -1px;
- text-decoration: none;
- @include link-colors(#ccc, #999);
- @include border-bottom-right-radius(.3em);
- text-align: center;
- background: $main-bg;
- border-bottom: 1px solid $sidebar-border;
- border-right: 1px solid $sidebar-border;
- display: inline-block;
- }
-}
-
-@media only screen and (min-width: 992px) {
- body > header { font-size: 1.3em; }
- body > nav + div > div { margin-right: $sidebar-width-wide; }
- #articles {
- padding-top: $pad-wide/2;
- padding-bottom: $pad-wide/2;
- + aside {
- width: $sidebar-width-wide - $sidebar-pad-wide*2;
- padding: 1.2em $sidebar-pad-wide $sidebar-pad-wide;
- }
- }
-}
diff --git a/themes/classic/sass/base/_solarized.scss b/themes/classic/sass/base/_solarized.scss
deleted file mode 100644
index 4952120d..00000000
--- a/themes/classic/sass/base/_solarized.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-$base03: #002b36; //darkest blue
-$base02: #073642; //dark blue
-$base01: #586e75; //darkest gray
-$base00: #657b83; //dark gray
-$base0: #839496; //medium gray
-$base1: #93a1a1; //medium light gray
-$base2: #eee8d5; //cream
-$base3: #fdf6e3; //white
-$yellow: #b58900;
-$orange: #cb4b16;
-$red: #dc322f;
-$magenta: #d33682;
-$violet: #6c71c4;
-$blue: #268bd2;
-$cyan: #2aa198;
-$green: #859900;
diff --git a/themes/classic/sass/base/_theme.scss b/themes/classic/sass/base/_theme.scss
deleted file mode 100644
index adf3364d..00000000
--- a/themes/classic/sass/base/_theme.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-$img-border: inline-image('dotted-border.png');
-
-// Main Link Colors
-$link-color: lighten(#165b94, 3) !default;
-$link-color-hover: adjust-hue($link-color, -200) !default;
-$link-color-visited: darken(adjust_hue($link_color, 70), 10) !default;
-$link-color-active: darken($link-color-hover, 15) !default;
-
-// Main Section Colors
-$page-bg: #252525 !default;
-$article-border: #eeeeee !default;
-$main-bg: #f5f5f5 !default;
-
-$header-bg: #333 !default;
-$header-border: lighten($header-bg, 15) !default;
-$title-color: #f2f2f2 !default;
-$subtitle-color: #aaa !default;
-
-$text-color: #222 !default;
-$text-color-light: #aaa !default;
-$type-border: #ddd !default;
-
-
-/* Navigation */
-$nav-bg: #ccc !default;
-$nav-color: darken($nav-bg, 38) !default;
-$nav-color-hover: darken($nav-color, 25) !default;
-$nav-placeholder: desaturate(darken($nav-bg, 10), 15) !default;
-$nav-border: darken($nav-bg, 10) !default;
-$nav-border-top: lighten($nav-bg, 15) !default;
-$nav-border-bottom: darken($nav-bg, 25) !default;
-$nav-border-left: darken($nav-bg, 11) !default;
-$nav-border-right: lighten($nav-bg, 7) !default;
-
-/* Sidebar colors */
-$sidebar-bg: #eee !default;
-$sidebar-link-color: $link-color !default;
-$sidebar-link-color-hover: $link-color-hover !default;
-$sidebar-color: change-color(mix($text-color, $sidebar-bg, 80), $hue: hue($sidebar-bg), $saturation: saturation($sidebar-bg)/2) !default;
-$sidebar-border: desaturate(darken($sidebar-bg, 7), 10) !default;
-$sidebar-border: darken($sidebar-bg, 7) !default;
-$sidebar-link-color-subdued: lighten($sidebar-color, 20) !default;
-$sidebar-link-color-subdued-hover: $sidebar-link-color-hover !default;
-$twitter-status-link: lighten($sidebar-link-color-subdued, 15) !default;
-
-$footer-color: #888 !default;
-$footer-bg: #ccc !default;
-$footer-color: darken($footer-bg, 38) !default;
-$footer-color-hover: darken($footer-color, 10) !default;
-$footer-border-top: lighten($footer-bg, 15) !default;
-$footer-border-bottom: darken($footer-bg, 15) !default;
-$footer-link-color: darken($footer-bg, 38) !default;
-$footer-link-color-hover: darken($footer-color, 25) !default;
-$page-border-bottom: darken($footer-bg, 5) !default;
-
-
-/* Core theme application */
-
-article a, #articles + aside a {
- @include link-colors($link-color, $hover: $link-color-hover, $focus: $link-color-hover, $visited: $link-color-visited, $active: $link-color-active);
-}
-a { @include transition(color, .5s); }
-
-html {
- background: $page-bg image-url('line-tile.png') top left;
-}
-body {
- > div {
- background: $sidebar-bg image-url('noise.png') top left;
- border-bottom: 1px solid $page-border-bottom;
- > div {
- background: $main-bg image-url('noise.png') top left;
- border-right: 1px solid $sidebar-border;
- }
- }
-}
diff --git a/themes/classic/sass/base/_typography.scss b/themes/classic/sass/base/_typography.scss
deleted file mode 100644
index 8ab0e657..00000000
--- a/themes/classic/sass/base/_typography.scss
+++ /dev/null
@@ -1,130 +0,0 @@
-$blockquote: $type-border !default;
-$mono: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace;
-
-// Fonts
-.heading {
- font-family: "PT Serif", "Georgia", "Helvetica Neue", Arial, sans-serif;
-}
-.sans { font-family: "PT Sans", "Helvetica Neue", Arial, sans-serif; }
-.serif { font-family: "PT Serif", Georgia, Times, "Times New Roman", serif; }
-.mono { font-family: $mono; }
-
-body > header h1 {
- font-size: 2.6em;
- @extend .heading;
- font-weight: normal;
- line-height: 1.2em;
- margin-bottom: 0.6667em;
-}
-
-body {
- line-height: 1.5em;
- color: $text-color;
- @extend .serif;
-}
-
-#{headings()}{
- @extend .heading;
- text-rendering: optimizelegibility;
- margin-bottom: 1em;
- font-weight: bold;
-}
-h1 {
- font-size: 3.2em;
- line-height: 1.2em;
- @media only screen and (max-width: 768px) { font-size: 2.2em; }
-}
-
-
-h2, section h1 {
- font-size: 1.5em;
-}
-h3, section h2, section section h1 {
- font-size: 1.3em;
-}
-h4, section h3, section section h2, section section section h1 {
- font-size: 1em;
-}
-h5, section h4, section section h3 {
- font-size: .9em;
-}
-h6, section h5, section section h4, section section section h3 {
- font-size: .8em;
-}
-p, blockquote, ul, ol { margin-bottom: 1.5em; }
-
-ul{ list-style-type: circle; }
-
-ol{ list-style-type: decimal; ol { list-style-type: lower-alpha; } }
-ul ul, ol ol { margin-left: 1.75em; }
-
-strong { font-weight: bold; }
-
-em { font-style: italic; }
-
-sup, sub { font-size: 0.8em; position: relative; display: inline-block; }
-sup { top: -.5em; }
-sub { bottom: -.5em; }
-
-q { font-style: italic;
- &:before { content: "\201C"; }
- &:after { content: "\201D"; }
-}
-
-em, dfn { font-style: italic; }
-
-strong, dfn { font-weight: bold; }
-
-del, s { text-decoration: line-through; }
-
-abbr, acronym { border-bottom: 1px dotted; cursor: help; }
-
-pre, code, tt { @extend .mono-font; }
-
-sub, sup { line-height: 0; }
-
-hr { margin-bottom: 0.2em; }
-
-small { font-size: .8em; }
-
-big { font-size: 1.2em; }
-
-blockquote {
- $bq-margin: 1.2em;
- font-style: italic;
- position: relative;
- font-size: 1.2em;
- line-height: 1.5em;
- padding-left: 1em;
- border-left: 4px solid rgba($text-color-light, .5);
- cite {
- font-style: italic;
- a { color: $text-color-light !important; word-wrap: break-word; }
- &:before { content: '–'; padding:{right: .3em; left: .3em;} color: $text-color-light; }
- }
- @media only screen and (min-width: 992px) {
- padding-left: 1.5em;
- border-left-width: 4px;
- }
-}
-
-.has-pullquote:before {
- /* Reset metrics. */
- padding: 0;
- border: none;
-
- /* Content */
- content: attr(data-pullquote);
-
- /* Pull out to the right, modular scale based margins. */
- float: right;
- width: 45%;
- margin: .5em 0 1em 1.5em;
-
- /* Baseline correction */
- position: relative;
- top: 7px;
- font-size: 1.4em;
- line-height: 1.45em;
-}
-
diff --git a/themes/classic/sass/base/_utilities.scss b/themes/classic/sass/base/_utilities.scss
deleted file mode 100644
index 8b718cdc..00000000
--- a/themes/classic/sass/base/_utilities.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-@mixin mask-image($img, $repeat: no-repeat){
- @include experimental(mask-image, image-url($img), -webkit, -moz, -o, -ms);
- @include experimental(mask-repeat, $repeat, -webkit, -moz, -o, -ms);
- width: image-width($img);
- height: image-height($img);
-}
-
-@mixin selection($bg, $color: inherit, $text-shadow: none){
- * {
- &::-moz-selection { background: $bg; color: $color; text-shadow: $text-shadow; }
- &::-webkit-selection { background: $bg; color: $color; text-shadow: $text-shadow; }
- &::selection { background: $bg; color: $color; text-shadow: $text-shadow; }
- }
-}
-
-@function text-color($color, $dark: dark, $light: light){
- $text-color: ( (red($color)*299) + (green($color)*587) + (blue($color)*114) ) / 1000;
- $text-color: if($text-color >= 150, $dark, $light);
- @return $text-color;
-}
-
diff --git a/themes/classic/sass/custom/_colors.scss b/themes/classic/sass/custom/_colors.scss
deleted file mode 100644
index 0771a86c..00000000
--- a/themes/classic/sass/custom/_colors.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// Here you can easily change your sites's color scheme.
-// To give it a try, uncomment some of the lines below rebuild your blog, and see how it works.
-
-//$header-bg: #263347;
-//$subtitle-color: lighten($header-bg, 58);
-//$nav-bg: desaturate(lighten(#8fc17a, 18), 5);
-//$sidebar-bg: desaturate(#eceff5, 8);
-//$sidebar-link-color: saturate(#526f9a, 10);
-//$sidebar-link-color-hover: darken(#7ab662, 9);
-
-
-//To use the light Solarized highlighting theme uncomment this block
-//$base03: $base3;
-//$base02: $base2;
-//$base01: $base1;
-//$base00: $base0;
-//$base0: $base00;
-//$base1: $base01;
-//$base2: $base02;
-//$base3: $base03;
diff --git a/themes/classic/sass/custom/_layout.scss b/themes/classic/sass/custom/_layout.scss
deleted file mode 100644
index 162f5ad6..00000000
--- a/themes/classic/sass/custom/_layout.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-// Here you can easily change your sites's layout.
-// To give it a try, uncomment some of the lines below, make changes, rebuild your blog, and see how it works.
-
-//$max-width: 1350px;
-
-// Padding used for layout margins
-//$pad-min: 18px;
-//$pad-narrow: 25px;
-//$pad-medium: 35px;
-//$pad-wide: 55px;
-
-// Sidebar widths used in media queries
-//$sidebar-width-medium: 240px;
-//$sidebar-pad-medium: 15px;
-//$sidebar-pad-wide: 20px;
-//$sidebar-width-wide: 300px;
diff --git a/themes/classic/sass/custom/_styles.scss b/themes/classic/sass/custom/_styles.scss
deleted file mode 100644
index 91ffcccf..00000000
--- a/themes/classic/sass/custom/_styles.scss
+++ /dev/null
@@ -1,2 +0,0 @@
-// This File is imported last, and will override other styles in the cascade
-// Add styles here to make changes without digging in too much
diff --git a/themes/classic/sass/partials/_archive.scss b/themes/classic/sass/partials/_archive.scss
deleted file mode 100644
index fbf0dac6..00000000
--- a/themes/classic/sass/partials/_archive.scss
+++ /dev/null
@@ -1,72 +0,0 @@
-#articles .blog-archives {
- article {
- padding: 1em 0 1em;
- position: relative;
- background: $img-border bottom left repeat-x;
- &:last-child {
- background: none;
- }
- }
- h2 {
- background: none;
- display: none;
- }
- h1, h2 { color: $text-color; margin-bottom: .3em; }
- h1 {
- font-size: 1.5em;
- a {
- @include hover-link;
- color: inherit;
- &:hover { color: $link-color-hover; }
- font-weight: normal;
- display: inline-block;
- }
- }
- a.category, time {
- @extend .sans;
- color: $text-color-light;
- }
- color: $text-color-light;
- .entry-content { display: none; }
- time {
- font-size: .9em;
- line-height: 1em;
- .month, .day { display: inline-block; }
- .month { text-transform: uppercase; }
- }
- p { margin-bottom: 1em; }
- &, .entry-content { a { @include link-colors(inherit, $link-color-hover); }}
- a:hover { color: $link-color-hover; }
- @media only screen and (min-width: 550px) {
- article { margin-left: 5em; }
- h2 {
- background: none;
- display: inline-block;
- float: left;
- padding-top: .75em;
- &:first-child { padding-top: .75em; }
- }
- time {
- position: absolute;
- text-align: right;
- left: 0em;
- top: 1.8em;
- }
- .year { display: none; }
- article {
- padding:{left: 4.5em; bottom: .7em;}
- }
- a.category {
- //text-align: right;
- line-height: 1.1em;
- //float: right;
- }
- }
-}
-#articles .blog-archives.category {
- article {
- margin-left: 0;
- padding-left: 6.8em;
- }
- .year { display: inline; }
-}
diff --git a/themes/classic/sass/partials/_blog.scss b/themes/classic/sass/partials/_blog.scss
deleted file mode 100644
index 0cf11ae8..00000000
--- a/themes/classic/sass/partials/_blog.scss
+++ /dev/null
@@ -1,131 +0,0 @@
-#articles {
- overflow: hidden;
- ul, ol { margin-left: 1.4em; }
- @media only screen and (min-width: 768px) {
- ul, ol { margin-left: 0; }
- }
- > article {
- padding-bottom: 1em;
- &:last-child { margin-bottom: 0; }
- h2 {
- padding-top: 0.8em;
- background: $img-border top left repeat-x;
- &:first-child { background: none; padding-top: 0; }
- }
- .byline + time:before, time +time:before, .comments:before, .byline ~ .categories:before {
- @extend .separator;
- }
- }
- header {
- position: relative;
- padding-top: 2em;
- padding-bottom: 1em;
- margin-bottom: 1em;
- background: $img-border bottom left repeat-x;
- h1 {
- margin: 0;
- a { text-decoration: none;
- &:hover { text-decoration: underline; } }
- }
- p {
- font-size: .9em;
- color: $text-color-light;
- margin: 0;
- @extend .sans;
- &.meta {
- text-transform: uppercase;
- }
- }
- @media only screen and (min-width: 768px) {
- margin-bottom: 1.5em;
- padding-bottom: 1em;
- background: $img-border bottom left repeat-x;
- p.meta { position: absolute; top: 0; }
- }
- }
- h1.feature {
- padding-top: .5em;
- margin-bottom: 1em;
- padding-bottom: 1em;
- background: $img-border bottom left repeat-x;
- font-size: 2.0em; font-style: italic;
- line-height: 1.3em;
- }
- .entry-content {
- img, video { max-width: 100%; height: auto; }
- video {
- width: 100%; display: block; margin-bottom: 1.5em;
- padding: .8em; background: #fff; border: 1px solid #eee;
- @include box-sizing(border-box);
- }
- }
- .flash-video {
- max-width: 100%;
- margin-bottom: 1.5em;
- @include box-sizing(border-box);
- padding: .8em; background: #fff; border: 1px solid #eee;
- > div {
- position: relative;
- display: block;
- padding-bottom: 56.25%;
- padding-top: 1px;
- height: 0;
- overflow: hidden;
- iframe, object, embed {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- }
- }
- }
- iframe.twitter-share-button {
- position: relative;
- top: .3em;
- padding-left: .5em;
- }
- > article > footer {
- margin-top: 2em;
- padding-top: 1em;
- margin-bottom: 1.5em;
- background: $img-border top left repeat-x;
- @extend .sans;
- }
-
-}
-article + article {
- background: $img-border top left repeat-x;
-}
-#articles.blog-index {
- article header { background: none; padding-bottom: 0; }
- article h1 {
- font-size: 2.2em;
- a { color: inherit; &:hover { color: $link-color-hover; } }
- }
- a[rel=full-article] {
- background: darken($main-bg, 5);
- display: inline-block;
- padding: .4em .8em;
- margin-right: .5em;
- text-decoration: none;
- color: mix($text-color, $text-color-light);
- @extend .serif;
- @include transition(background-color, .5s);
- &:hover {
- background: $link-color-hover;
- text-shadow: none;
- color: $main-bg;
- }
- }
- footer {
- @extend .sans;
- margin-top: 1em;
- }
-}
-
-.separator {
- content: "\2022 ";
- padding: 0 .4em 0 .2em;
- display: inline-block;
-}
diff --git a/themes/classic/sass/partials/_footer.scss b/themes/classic/sass/partials/_footer.scss
deleted file mode 100644
index 350c562d..00000000
--- a/themes/classic/sass/partials/_footer.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-body > footer {
- @extend .sans;
- font-size: .8em;
- color: $footer-color;
- text-shadow: lighten($footer-bg, 5) 0 1px;
- background-color: $footer-bg;
- @include background(image-url('noise.png'), linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11)));
- border-top: 1px solid $footer-border-top;
- position: relative;
- padding-top: 1em;
- padding-bottom: 1em;
- margin-bottom: 3em;
- @include border-bottom-radius(.4em);
- z-index: 1;
- a {
- @include link-colors($footer-link-color, $footer-link-color-hover);
- }
- p:last-child { margin-bottom: 0; }
-}
diff --git a/themes/classic/sass/partials/_header.scss b/themes/classic/sass/partials/_header.scss
deleted file mode 100644
index 8ae128b1..00000000
--- a/themes/classic/sass/partials/_header.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-body > header {
- background: $header-bg;
- h1 {
- display: inline-block;
- margin: 0;
- a, a:visited {
- color: $title_color;
- text-decoration: none;
- }
- }
- h2 {
- margin: .2em 0 0;
- @extend .sans;
- font-size: 1em;
- color: $subtitle-color;
- font-weight: normal;
- }
-}
diff --git a/themes/classic/sass/partials/_navigation.scss b/themes/classic/sass/partials/_navigation.scss
deleted file mode 100644
index be132561..00000000
--- a/themes/classic/sass/partials/_navigation.scss
+++ /dev/null
@@ -1,137 +0,0 @@
-body > nav {
- position: relative;
- background-color: $nav-bg;
- @include background(image-url('noise.png'), linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11)));
- border: {
- top: 1px solid $nav-border-top;
- bottom: 1px solid $nav-border-bottom; }
- padding-top: .35em;
- padding-bottom: .35em;
- form {
- @include background-clip(padding-box);
- margin: 0; padding: 0;
- .search {
- padding: .3em .5em 0;
- font-size: .85em;
- @extend .sans;
- line-height: 1.1em;
- width: 95%;
- @include border-radius(.5em);
- @include background-clip(padding-box);
- @include box-shadow(lighten($nav-bg, 2) 0 1px);
- background-color: lighten($nav-bg, 15);
- border: 1px solid $nav-border;
- color: #888;
- &:focus {
- color: #444;
- border-color: #80b1df;
- @include box-shadow(#80b1df 0 0 4px, #80b1df 0 0 3px inset);
- background-color: #fff;
- outline: none;
- }
- }
- }
- fieldset[role=site-search]{ float: right; width: 48%; }
- fieldset[role=mobile-nav]{ float: left; width: 48%;
- select{ width: 100%; font-size: .8em; border: 1px solid #888;}
- }
- ul { display: none; }
- @media only screen and (min-width: 550px) {
- font-size: .9em;
- ul {
- @include horizontal-list(0);
- float: left;
- display: block;
- padding-top: .15em;
- }
- ul[role=subscription] {
- margin-left: .8em;
- float: right;
- li:last-child a { padding-right: 0; }
- }
- ul li {
- margin: 0;
- }
- a {
- @include link-colors($nav-color, $nav-color-hover, $visited: $nav-color);
- @extend .sans;
- text-shadow: lighten($nav-bg, 12) 0 1px;
- float: left;
- text-decoration: none;
- font-size: 1.1em;
- padding: .1em 0;
- line-height: 1.5em;
- }
- li + li {
- border-left: 1px solid $nav-border-left;
- margin-left: .8em;
- a {
- padding-left: .8em;
- border-left: 1px solid $nav-border-right;
- }
- }
- form {
- float: right;
- text-align: left;
- padding-left: .8em;
- width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium + 20px;
- .search {
- width: 93%;
- font-size: .95em;
- line-height: 1.2em;
- }
- }
- ul[data-subscription$=email] + form {
- width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium - 58px;
- .search { width: 91%; }
- }
- fieldset[role=mobile-nav] { display: none; }
- fieldset[role=site-search]{ width: 100%; }
- }
-
- @media only screen and (min-width: 992px) {
- form {
- width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 + 10px;
- }
- ul[data-subscription$=email] + form {
- width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 - 58px;
- }
- }
-}
-.no-placeholder {
- body > nav .search {
- background: lighten($nav-bg, 15) image-url('search.png') .3em .25em no-repeat;
- text-indent: 1.3em;
- }
-}
-@mixin mask-subscription-nav($feed: 'rss.png'){
- position: relative; top: 0px;
- text-indent: -999999em;
- background-color: $nav-border-right;
- border: 0;
- padding: 0;
- &,&:after { @include mask-image($feed); }
- &:after {
- content: "";
- position: absolute; top: -1px; left: 0;
- background-color: lighten($nav-color, 25);
- }
- &:hover:after { background-color: lighten($nav-color, 20); }
-}
-.maskImage {
- body > nav {
- @media only screen and (min-width: 550px) {
- ul[data-subscription$=email] + form {
- width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium - 32px;
- }
- }
- @media only screen and (min-width: 992px) {
- ul[data-subscription$=email] + form {
- width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 - 32px;
- }
- }
- }
- ul[role=subscription] { position: relative; top: .2em; li, a { border: 0; padding: 0; }}
- a[rel=subscribe-rss]{ @include mask-subscription-nav('rss.png'); }
- a[rel=subscribe-email]{ @include mask-subscription-nav('email.png'); }
-}
diff --git a/themes/classic/sass/partials/_sidebar.scss b/themes/classic/sass/partials/_sidebar.scss
deleted file mode 100644
index ac790e04..00000000
--- a/themes/classic/sass/partials/_sidebar.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-@import "sidebar/base";
-@import "sidebar/twitter";
-@import "sidebar/pinboard";
-@import "sidebar/delicious";
diff --git a/themes/classic/sass/partials/_syntax.scss b/themes/classic/sass/partials/_syntax.scss
deleted file mode 100644
index b14b23bd..00000000
--- a/themes/classic/sass/partials/_syntax.scss
+++ /dev/null
@@ -1,208 +0,0 @@
-$pre-bg: image-url('noise.png') top left;
-.highlight, html .gist .gist-file .gist-syntax .gist-highlight {
- .line-numbers {
- text-align: right;
- font-size: .8em;
- line-height: 1.45em;
- background: $base02 $pre-bg !important;
- border-right: 1px solid darken($base03, 2) !important;
- @include box-shadow(lighten($base02, 2) -1px 0 inset);
- text-shadow: darken($base02, 10) 0 -1px;
- span { color: $base01 !important; }
- padding: .8em !important;
- @include border-radius(0);
- }
-}
-html .gist .gist-file {
- margin-bottom: 1.5em;
- position: relative;
- border: none;
- padding-top: image-height("code_bg.png") !important;
- .gist-syntax {
- border-bottom: 1px solid darken($base03, 2) !important;
- .gist-highlight{
- background: $base03 !important;
- pre {
- @extend .pre-code;
- }
- }
- }
- .gist-meta {
- padding: .6em 0.8em;
- border: 1px solid lighten($base02, 2) !important;
- color: $base01;
- font-size: .7em !important;
- background: $base02 $pre-bg;
- @extend .sans;
- line-height: 1.5em;
- a {
- color: mix($base1, $base01) !important;
- @include hover-link;
- &:hover { color: $base1 !important; }
- }
- a[href*='#file'] {
- position: absolute; top: 0; left:0; right:-10px;
- color: #474747 !important;
- @extend .code-title;
- &:hover { color: $link-color !important; }
- }
- a[href*=raw]{
- @extend .download-source;
- top: .4em;
- }
- }
-}
-pre {
- background: $base03 $pre-bg;
- @include border-radius(.4em);
- @extend .mono;
- border: 1px solid $base02;
- line-height: 1.45em;
- font-size: .8em;
- margin-bottom: 1.5em;
- padding: .8em 1em;
- color: $base1;
- overflow: auto;
-}
-h3.filename {
- @extend .code-title;
- + pre { @include border-top-radius(0px); }
-}
-
-p code {
- @extend .mono;
- display: inline-block;
- white-space: no-wrap;
- background: #fff;
- font-size: .9em;
- line-height: 1.5em;
- color: #555;
- border: 1px solid #ddd;
- @include border-radius(.4em);
- padding: 0 .3em;
- margin: -1px 0;
-}
-
-.pre-code {
- @include selection(adjust-color($base03, $lightness: 23%, $saturation: -65%), $text-shadow: $base03 0 1px);
- overflow: scroll;
- overflow-y: hidden;
- display: block;
- padding: .8em !important;
- overflow-x: auto;
- line-height: 1.45em;
- background: $base03 $pre-bg !important;
- color: $base1 !important;
- span { color: $base1 !important; }
- span { font-style: normal !important; font-weight: normal !important; }
-
- .c { color: $base01 !important; font-style: italic !important; } /* Comment */
- .cm { color: $base01 !important; font-style: italic !important; } /* Comment.Multiline */
- .cp { color: $base01 !important; font-style: italic !important; } /* Comment.Preproc */
- .c1 { color: $base01 !important; font-style: italic !important; } /* Comment.Single */
- .cs { color: $base01 !important; font-weight: bold !important; font-style: italic !important; } /* Comment.Special */
- .err { color: $red !important; background: none !important; } /* Error */
- .k { color: $orange !important; } /* Keyword */
- .o { color: $base1 !important; font-weight: bold !important; } /* Operator */
- .p { color: $base1 !important; } /* Operator */
- .ow { color: $cyan !important; font-weight: bold !important; } /* Operator.Word */
- .gd { color: $base1 !important; background-color: mix($red, $base03, 25%) !important; display: inline-block; } /* Generic.Deleted */
- .gd .x { color: $base1 !important; background-color: mix($red, $base03, 35%) !important; display: inline-block; } /* Generic.Deleted.Specific */
- .ge { color: $base1 !important; font-style: italic !important; } /* Generic.Emph */
- //.gr { color: #aa0000 } /* Generic.Error */
- .gh { color: $base01 !important; } /* Generic.Heading */
- .gi { color: $base1 !important; background-color: mix($green, $base03, 20%) !important; display: inline-block; } /* Generic.Inserted */
- .gi .x { color: $base1 !important; background-color: mix($green, $base03, 40%) !important; display: inline-block; } /* Generic.Inserted.Specific */
- //.go { color: #888888 } /* Generic.Output */
- //.gp { color: #555555 } /* Generic.Prompt */
- .gs { color: $base1 !important; font-weight: bold !important; } /* Generic.Strong */
- .gu { color: $violet !important; } /* Generic.Subheading */
- //.gt { color: #aa0000 } /* Generic.Traceback */
- .kc { color: $green !important; font-weight: bold !important; } /* Keyword.Constant */
- .kd { color: $blue !important; } /* Keyword.Declaration */
- .kp { color: $orange !important; font-weight: bold !important; } /* Keyword.Pseudo */
- .kr { color: $magenta !important; font-weight: bold !important; } /* Keyword.Reserved */
- .kt { color: $cyan !important; } /* Keyword.Type */
- .n { color: $blue !important; }
- .na { color: $blue !important; } /* Name.Attribute */
- .nb { color: $green !important; } /* Name.Builtin */
- //.nc { color: #445588; font-weight: bold } /* Name.Class */
- .no { color: $yellow !important; } /* Name.Constant */
- //.ni { color: #800080 } /* Name.Entity */
- .ne { color: $blue !important; font-weight: bold !important; } /* Name.Exception */
- .nf { color: $blue !important; font-weight: bold !important; } /* Name.Function */
- .nn { color: $yellow !important; } /* Name.Namespace */
- .nt { color: $blue !important; font-weight: bold !important; } /* Name.Tag */
- .nx { color: $yellow !Important; }
- //.bp { color: #999999 } /* Name.Builtin.Pseudo */
- //.vc { color: #008080 } /* Name.Variable.Class */
- .vg { color: $blue !important; } /* Name.Variable.Global */
- .vi { color: $blue !important; } /* Name.Variable.Instance */
- .nv { color: $blue !important; } /* Name.Variable */
- //.w { color: #bbbbbb } /* Text.Whitespace */
- .mf { color: $cyan !important; } /* Literal.Number.Float */
- .m { color: $cyan !important; } /* Literal.Number */
- .mh { color: $cyan !important; } /* Literal.Number.Hex */
- .mi { color: $cyan !important; } /* Literal.Number.Integer */
- //.mo { color: #009999 } /* Literal.Number.Oct */
- .s { color: $cyan !important; } /* Literal.String */
- //.sb { color: #d14 } /* Literal.String.Backtick */
- //.sc { color: #d14 } /* Literal.String.Char */
- .sd { color: $cyan !important; } /* Literal.String.Doc */
- .s2 { color: $cyan !important; } /* Literal.String.Double */
- .se { color: $red !important; } /* Literal.String.Escape */
- //.sh { color: #d14 } /* Literal.String.Heredoc */
- .si { color: $blue !important; } /* Literal.String.Interpol */
- //.sx { color: #d14 } /* Literal.String.Other */
- .sr { color: $cyan !important; } /* Literal.String.Regex */
- .s1 { color: $cyan !important; } /* Literal.String.Single */
- //.ss { color: #990073 } /* Literal.String.Symbol */
- //.il { color: #009999 } /* Literal.Number.Integer.Long */
- div { .gd, .gd .x, .gi, .gi .x { display: block; }}
-}
-
-.highlight, .gist-highlight {
- pre { background: none; @include border-radius(none); border: none; padding: 0; margin-bottom: 0; }
- margin-bottom: 1.5em;
- background: $base03;
- overflow-y: hidden;
- overflow-x: auto;
-}
-.highlight code { @extend .pre-code; background: #000;}
-figure {
- margin-bottom: 1.5em;
- figcaption {
- position: relative;
- @extend .code-title;
- a { @extend .download-source; }
- }
- .highlight { margin-bottom: 0; border-bottom: 1px solid darken($base03, 2) !important; }
-}
-.code-title {
- text-align: center;
- font-size: 13px;
- line-height: 2em;
- text-shadow: #cbcccc 0 1px 0;
- color: #474747;
- font-weight: normal;
- margin-bottom: 0;
- @include border-top-radius(5px);
- font-family: "Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif;
- background: #aaaaaa image-url("code_bg.png") top repeat-x;
- border: 1px solid #565656;
- border-top-color: #cbcbcb;
- border-left-color: #a5a5a5;
- border-right-color: #a5a5a5;
- border-bottom: 0;
-}
-
-.download-source {
- position: absolute; right: .8em;
- @include hover-link;
- color: #666 !important;
- z-index: 1;
- font-size: 13px;
- text-shadow: #cbcccc 0 1px 0;
- padding-left: 3em;
-}
-
diff --git a/themes/classic/sass/partials/sidebar/_base.scss b/themes/classic/sass/partials/sidebar/_base.scss
deleted file mode 100644
index 861efc91..00000000
--- a/themes/classic/sass/partials/sidebar/_base.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-.side-shadow-border {
- @include box-shadow(lighten($sidebar-bg, 5) 0 1px);
-}
-#articles + aside {
- color: $sidebar-color;
- padding-top: 1.2em;
- text-shadow: lighten($sidebar-bg, 8) 0 1px;
- section {
- @extend .sans;
- font-size: .8em;
- line-height: 1.4em;
- margin-bottom: 1.5em;
- h1 {
- margin: 1.5em 0 0;
- padding-bottom: .2em;
- border-bottom: 1px solid $sidebar-border;
- @extend .side-shadow-border;
- + p {
- padding-top: .4em;
- }
- }
- }
- ul {
- margin-bottom: 0.5em;
- }
- li {
- list-style: none;
- padding: .5em 0;
- margin: 0;
- border-bottom: 1px solid $sidebar-border;
- @extend .side-shadow-border;
- p:last-child {
- margin-bottom: 0;
- }
- }
- a {
- color: inherit;
- @include transition(color, .5s);
- }
- &:hover a, &:hover #tweets a { color: $sidebar-link-color;
- &:hover { color: $sidebar-link-color-hover; }
- }
- #recent_posts {
- time {
- text-transform: uppercase;
- font-size: .9em;
- color: #666;
- }
- }
-}
-.aside-alt-link {
- color: $sidebar-link-color-subdued;
- &:hover {
- color: $sidebar-link-color-subdued-hover;
- }
-}
diff --git a/themes/classic/sass/partials/sidebar/_delicious.scss b/themes/classic/sass/partials/sidebar/_delicious.scss
deleted file mode 100644
index e962702e..00000000
--- a/themes/classic/sass/partials/sidebar/_delicious.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.delicious-posts {
- a.delicious-link { margin-bottom: .5em; display: block; }
- p { font-size: 1em; }
-}
diff --git a/themes/classic/sass/partials/sidebar/_pinboard.scss b/themes/classic/sass/partials/sidebar/_pinboard.scss
deleted file mode 100644
index 9f9ab461..00000000
--- a/themes/classic/sass/partials/sidebar/_pinboard.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-#pinboard_linkroll {
- .pin-title, .pin-description {
- display: block;
- margin-bottom: .5em;
- }
- .pin-tag {
- @include hover-link;
- @extend .aside-alt-link;
- &:after { content: ','; }
- &:last-child:after { content: ''; }
- }
-}
diff --git a/themes/classic/sass/partials/sidebar/_twitter.scss b/themes/classic/sass/partials/sidebar/_twitter.scss
deleted file mode 100644
index 36c6f62b..00000000
--- a/themes/classic/sass/partials/sidebar/_twitter.scss
+++ /dev/null
@@ -1,33 +0,0 @@
-#tweets {
- .loading {
- background: inline-image('bird_32_gray.png') no-repeat center .5em;
- color: darken($sidebar-bg, 18);
- text-shadow: $main-bg 0 1px;
- text-align: center;
- padding: 2.5em 0 .5em;
- &.error {
- background: inline-image('bird_32_gray_fail.png') no-repeat center .5em;
- }
- }
- a { color: $sidebar-link-color-subdued; @include hover-link; }
- p {
- position: relative;
- padding-right: 1em;
- }
- a[href*=status]{
- color: $twitter-status-link;
- float: right;
- padding: 0 0 .1em 1em;
- position: relative; right: -1.3em;
- text-shadow: #fff 0 1px;
- font-size: .7em;
- span { font-size: 1.5em; }
- &:hover {
- color: $sidebar-link-color-subdued-hover;
- text-decoration: none;
- }
- }
- a[href*='twitter.com/search']{
- @extend .aside-alt-link;
- }
-}
diff --git a/themes/classic/sass/screen.scss b/themes/classic/sass/screen.scss
deleted file mode 100644
index f08da4c2..00000000
--- a/themes/classic/sass/screen.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-@import "compass";
-@include global-reset;
-@include reset-html5;
-
-@import "custom/colors";
-@import "custom/layout";
-@import "base";
-@import "partials";
-@import "custom/styles";
diff --git a/themes/classic/source/_includes/archive_post.html b/themes/classic/source/_includes/archive_post.html
deleted file mode 100644
index cd55c212..00000000
--- a/themes/classic/source/_includes/archive_post.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% capture category %}{{ post.categories | size }}{% endcapture %}
-<h1><a href="{{ post.url }}">{{post.title}}</a></h1>
-<time datetime="{{ post.date | datetime }}" pubdate>{{ post.date | date: "<span class='month'>%b</span> <span class='day'>%d</span> <span class='year'>%Y</span>"}}</time>
-{% if category != '0' %}
-<footer>
- <span class="categories">posted in {{ post.categories | category_links }}</span>
-</footer>
-{% endif %}
diff --git a/themes/classic/source/_includes/article.html b/themes/classic/source/_includes/article.html
deleted file mode 100644
index b458d732..00000000
--- a/themes/classic/source/_includes/article.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{% unless page.no_header %}
- <header>
- {% if index %}
- <h1 class="entry-title"><a href="{{ post.url }}">{{ post.title | titlecase }}</a></h1>
- {% else %}
- <h1 class="entry-title">{{ page.title | titlecase }}</h1>
- {% endif %}
- {% unless page.no_meta or !index %}<p class="meta">{% include post_date.html %}</p>{% endunless %}
- </header>
-{% endunless %}
-{% if index %}
- <div class="entry-content">{{ content | exerpt | smart_quotes }}</div>
- <p><a rel="full-article" href="{{ post.url }}">Read on &rarr;</a></p>
- <footer>
- <p class="meta">
- {% include post_author.html %}
- {% include post_date.html %}
- {% include post_categories.html %}
- <span class="comments"><a rel="comments" href="{{ post.url }}#disqus_thread">Comments</a></span>
- {% include sharing.html %}
- </p>
- </footer>
-{% else %}
-<div class="entry-content">{{ content | smart_quotes }}</div>
-{% endif %}
diff --git a/themes/classic/source/_includes/asides/delicious.html b/themes/classic/source/_includes/asides/delicious.html
deleted file mode 100644
index 307a2e94..00000000
--- a/themes/classic/source/_includes/asides/delicious.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{% if site.delicious_user %}
-<section>
- <h1>On Delicious</h1>
- <script type="text/javascript" src="http://feeds.delicious.com/v2/js/{{ site.delicious_user }}?title=&count={{ site.delicious_count }}&sort=date&extended"></script>
- <p><a href="http://delicious.com/{{ site.delicious_user }}">My Delicious Bookmarks &raquo;</a></p>
-</section>
-{% endif %}
diff --git a/themes/classic/source/_includes/asides/pinboard.html b/themes/classic/source/_includes/asides/pinboard.html
deleted file mode 100644
index 1cbb1379..00000000
--- a/themes/classic/source/_includes/asides/pinboard.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{% if site.pinboard_user %}
-<section>
- <h1>My Pinboard</h1>
- <ul id="pinboard_linkroll">Fetching linkroll...</ul>
- <p><a href="http://pinboard.in/u:{{ site.pinboard_user }}">My Pinboard Bookmarks &raquo;</a></p>
-</section>
-<script type="text/javascript">
- var linkroll = 'pinboard_linkroll'; //id target for pinboard list
- var pinboard_user = "{{ site.pinboard_user }}"; //id target for pinboard list
- var pinboard_count = {{ site.pinboard_count }}; //id target for pinboard list
- (function(){
- var pinboardInit = document.createElement('script');
- pinboardInit.type = 'text/javascript';
- pinboardInit.async = true;
- pinboardInit.src = '/javascripts/pinboard.js';
- document.getElementsByTagName('head')[0].appendChild(pinboardInit);
- })();
-</script>
-{% endif %}
diff --git a/themes/classic/source/_includes/asides/recent_posts.html b/themes/classic/source/_includes/asides/recent_posts.html
deleted file mode 100644
index ad3c7cc0..00000000
--- a/themes/classic/source/_includes/asides/recent_posts.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% if page.single and site.recent_posts %}
-<section>
- <h1>Recent Posts</h1>
- <ul id="recent_posts">
- {% for post in site.posts limit: site.recent_posts %}
- <li class="post">
- <a href="{{ post.url }}">{{ post.title }}</a>
- </li>
- {% endfor %}
- </ul>
-</section>
-{% endif %}
diff --git a/themes/classic/source/_includes/asides/twitter.html b/themes/classic/source/_includes/asides/twitter.html
deleted file mode 100644
index 15cab8bc..00000000
--- a/themes/classic/source/_includes/asides/twitter.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{% if site.twitter_user %}
-<section>
- <h1>Latest Tweets</h1>
- <ul id="tweets">
- <li class="loading">Status updating...</li>
- </ul>
- <script type="text/javascript">
- $.domReady(function(){
- getTwitterFeed("{{site.twitter_user}}", {{site.twitter_tweet_count}}, {{site.twitter_show_replies}});
- });
- </script>
- <script src="/javascripts/twitter.js" type="text/javascript"> </script>
- {% if site.twitter_follow_button %}
- <a href="http://twitter.com/{{ site.twitter_user }}" class="twitter-follow-button" data-width="208px" data-show-count="{{ site.twitter_show_follower_count }}">Follow @{{ site.twitter_user }}</a>
- {% else %}
- <p>Follow <a href="http://twitter.com/{{site.twitter_user}}">@{{ site.twitter_user }}</a></p>
- {% endif %}
-</section>
-{% endif %}
diff --git a/themes/classic/source/_includes/disqus_thread.html b/themes/classic/source/_includes/disqus_thread.html
deleted file mode 100644
index f966f03a..00000000
--- a/themes/classic/source/_includes/disqus_thread.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<div id="disqus_thread"></div>
-<script type="text/javascript">
- var disqus_shortname = '{{ site.disqus_short_name }}';
- var disqus_identifier = '{{ site.url }}{{ page.url }}';
- var disqus_url = '{{ site.url }}{{ page.url }}';
- //var disqus_developer = 1;
- (function() {
- var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
- dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
- })();
-</script>
-<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
diff --git a/themes/classic/source/_includes/footer.html b/themes/classic/source/_includes/footer.html
deleted file mode 100644
index e12f0678..00000000
--- a/themes/classic/source/_includes/footer.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<p>
- Copyright &copy; {{ site.time | date: "%Y" }} - {{ site.author }} -
- <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
-</p>
diff --git a/themes/classic/source/_includes/google_analytics.html b/themes/classic/source/_includes/google_analytics.html
deleted file mode 100644
index 4d4d5969..00000000
--- a/themes/classic/source/_includes/google_analytics.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{% if site.google_analytics_tracking_id %}
- <script type="text/javascript">
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', '{{ site.google_analytics_tracking_id }}']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
- </script>
-{% endif %}
diff --git a/themes/classic/source/_includes/head.html b/themes/classic/source/_includes/head.html
deleted file mode 100644
index a4eec3d3..00000000
--- a/themes/classic/source/_includes/head.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<!--[if IEMobile 7 ]><html class="no-js iem7" manifest="default.appcache?v=1"><![endif]-->
-<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
-<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" manifest="default.appcache?v=1" lang="en"><!--<![endif]-->
-<head>
- <meta charset="utf-8">
- {% if page.title %}
- <title>{{site.title}}: {{page.title}}{% if site.author %} - {{ site.author }}{% endif %}</title>
- {% else %}
- <title>{{site.title}}{% if site.author %} - {{ site.author }}{% endif %}</title>
- {% endif %}
- <meta name="author" content="{{site.author}}">
- {% if page.description %}
- <meta name="description" content="{{page.description}}"/>
- {% endif %}
-
- <!-- http://t.co/dKP3o1e -->
- <meta name="HandheldFriendly" content="True">
- <meta name="MobileOptimized" content="320">
- <meta name="viewport" content="width=device-width, initial-scale=1">
-
- {% if page.keywords %}
- <meta name="keywords" content="{{page.keywords}}"/>
- {% endif %}
-
- <link href="/images/favicon.png" rel="shortcut icon" />
- <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
- <script src="/javascripts/modernizr-2.0.js"></script>
- <script src="http://s3.amazonaws.com/ender-js/jeesh.min.js"></script>
- <script src="/javascripts/octopress.js" type="text/javascript"></script>
- <link href='http://fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic' rel='stylesheet' type='text/css'>
- <link href='http://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic' rel='stylesheet' type='text/css'>
- {% include google_analytics.html %}
- <link href="/atom.xml" rel="alternate" title="{{site.title}}" type="application/atom+xml"/>
-</head>
diff --git a/themes/classic/source/_includes/header.html b/themes/classic/source/_includes/header.html
deleted file mode 100644
index de153086..00000000
--- a/themes/classic/source/_includes/header.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<hgroup>
- <h1><a href="/">{{ site.title }}</a></h1>
- {% if site.subtitle %}
- <h2>{{ site.subtitle }}</h2>
- {% endif %}
-</hgroup>
diff --git a/themes/classic/source/_includes/navigation.html b/themes/classic/source/_includes/navigation.html
deleted file mode 100644
index e2827983..00000000
--- a/themes/classic/source/_includes/navigation.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<ul role="subscription" data-subscription="rss{% if site.subscribe_email %} email{% endif %}">
- <li><a href="{{ site.subscribe_rss }}" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
- {% if site.subscribe_email %}
- <li><a href="{{ site.subscribe_email }}" rel="subscribe-email" title="subscribe via email">Email</a></li>
- {% endif %}
-</ul>
-<form action="{{ site.simple_search }}" method="get">
- <fieldset role="site-search">
- <input type="hidden" name="q" value="site:{{ site.url | search_url }}" />
- <input class="search" type="text" name="q" results="0" placeholder="Search"/>
- </fieldset>
-</form>
-<ul role="main-nav">
- <li><a href="/">Blog</a></li>
- <li><a href="/archives.html">Archives</a></li>
-</ul>
diff --git a/themes/classic/source/_includes/post_author.html b/themes/classic/source/_includes/post_author.html
deleted file mode 100644
index b2db9043..00000000
--- a/themes/classic/source/_includes/post_author.html
+++ /dev/null
@@ -1,6 +0,0 @@
-{% if post.author %}
- {% assign author = post.author %}
-{% else %}
- {% assign author = site.author %}
-{% endif %}
-{% if author %}<span class="byline author vcard">Posted by <span class="fn">{{ author }}</span></span>{% endif %}
diff --git a/themes/classic/source/_includes/post_categories.html b/themes/classic/source/_includes/post_categories.html
deleted file mode 100644
index 7bf7528f..00000000
--- a/themes/classic/source/_includes/post_categories.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{% capture category %}{% if post %}{{ post.categories | category_links | size }}{% else %}{{ page.categories | category_links | size }}{% endif %}{% endcapture %}
-{% unless category == '0' %}
-<span class="categories"> in
- {% if post %}
- {{ post.categories | category_links }}
- {% else %}
- {{ page.categories | category_links }}
- {% endif %}
-</span>
-{% endunless %}
diff --git a/themes/classic/source/_includes/post_date.html b/themes/classic/source/_includes/post_date.html
deleted file mode 100644
index f1ed4815..00000000
--- a/themes/classic/source/_includes/post_date.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{% capture date %}{{ page.date }}{{ post.date }}{% endcapture %}
-{% capture has_date %}{{ date | size }}{% endcapture %}
-{% capture updated %}{{ page.updated }}{{ post.updated }}{% endcapture %}
-{% capture was_updated %}{{ updated | size }}{% endcapture %}
-{% if has_date != '0' %}
-<time datetime="{{ date | datetime }}" pubdate {% if updated %} updated {% endif %}>{{ date | ordinalize }}</time>
-{% endif %}
-{% if was_updated != '0' %}
-<time class="updated" datetime="{{ updated | datetime }}"></time>
-{% endif %}
diff --git a/themes/classic/source/_includes/sharing.html b/themes/classic/source/_includes/sharing.html
deleted file mode 100644
index ad3112ee..00000000
--- a/themes/classic/source/_includes/sharing.html
+++ /dev/null
@@ -1 +0,0 @@
-<a href="http://twitter.com/share" class="twitter-share-button" data-url="{{ site.url }}{{ page.url }}" data-via="{{ site.twitter_user }}" data-counturl="{{ site.url }}{{ page.url }}" >Tweet</a>
diff --git a/themes/classic/source/_includes/sidebar.html b/themes/classic/source/_includes/sidebar.html
deleted file mode 100644
index 0bce3c77..00000000
--- a/themes/classic/source/_includes/sidebar.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<section>
- <h1>About Me</h1>
- <p>Hi, I'm Octopress!</p>
-</section>
-{% include asides/recent_posts.html %}
-{% include asides/twitter.html %}
-{% include asides/delicious.html %}
-{% include asides/pinboard.html %}
diff --git a/themes/classic/source/_layouts/category_index.html b/themes/classic/source/_layouts/category_index.html
deleted file mode 100644
index 699f3dec..00000000
--- a/themes/classic/source/_layouts/category_index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: post
-no_meta: true
----
-
-<div class="blog-archives category">
-{% for post in site.categories[page.category] %}
-<article>
- {% include archive_post.html %}
-</article>
-{% endfor %}
-</div>
diff --git a/themes/classic/source/_layouts/default.html b/themes/classic/source/_layouts/default.html
deleted file mode 100644
index 4e4f81a3..00000000
--- a/themes/classic/source/_layouts/default.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% include head.html %}
-<body {% if page.body_id %} id="{{ page.body_id }}" {% endif %} {% if page.sidebar == 'none' %} class="no-sidebar" {% endif %}>
- <header>{% include header.html %}</header>
- <nav>{% include navigation.html %}</nav>
- <div>
- <div>
- <div id="articles" {% if page.blog_index %} class="blog-index" {% endif %}>{{ content }}</div>
- {% unless page.sidebar == 'none' %}
- <aside>{% include sidebar.html %}</aside>
- {% endunless %}
- </div>
- </div>
- <footer>{% include footer.html %}</footer>
- {% if site.twitter_follow_button or site.twitter_tweet_button %}
- <script type="text/javascript">
- (function(){
- var twitterWidgets = document.createElement('script');
- twitterWidgets.type = 'text/javascript';
- twitterWidgets.async = true;
- twitterWidgets.src = 'http://platform.twitter.com/widgets.js';
- document.getElementsByTagName('head')[0].appendChild(twitterWidgets);
- })();
- </script>
- {% endif %}
-</body>
-</html>
diff --git a/themes/classic/source/_layouts/page.html b/themes/classic/source/_layouts/page.html
deleted file mode 100644
index 0c59c990..00000000
--- a/themes/classic/source/_layouts/page.html
+++ /dev/null
@@ -1,5 +0,0 @@
----
-layout: post
----
-
-<!-- if you want a page layout -->
diff --git a/themes/classic/source/_layouts/post.html b/themes/classic/source/_layouts/post.html
deleted file mode 100644
index 5f55e89f..00000000
--- a/themes/classic/source/_layouts/post.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: default
-single: true
----
-
-<article class="hentry">
- {% include article.html %}
- {% unless page.no_meta %}
- <footer>
- <p class="meta">
- {% include post_author.html %}
- {% include post_date.html %}
- {% include post_categories.html %}
- {% include sharing.html %}
- </p>
- </footer>
- {% endunless %}
- {% if site.disqus_short_name %}
- <section>
- <h1>Comments</h1>
- <div id="disqus_thread">{% include disqus_thread.html %}</div>
- </section>
- {% endif %}
-</article>
diff --git a/themes/classic/source/archives.html b/themes/classic/source/archives.html
deleted file mode 100644
index ebf447c9..00000000
--- a/themes/classic/source/archives.html
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: post
-title: Blog Archive
-no_meta: true
----
-<div class="blog-archives">
-{% for post in site.posts reverse %}
-{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
-{% unless year == this_year %}
- {% assign year = this_year %}
- <h2>{{ year }}</h2>
-{% endunless %}
-<article>
- {% include archive_post.html %}
-</article>
-{% endfor %}
-</div>
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/background.png b/themes/classic/source/assets/jwplayer/glow/controlbar/background.png
deleted file mode 100644
index c2824cc4..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/background.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png
deleted file mode 100644
index 010159f3..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/divider.png b/themes/classic/source/assets/jwplayer/glow/controlbar/divider.png
deleted file mode 100644
index 77cd829a..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/divider.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png
deleted file mode 100644
index e06aa50c..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png b/themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
deleted file mode 100644
index d2bc4fc7..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png
deleted file mode 100644
index 40c40ab2..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png b/themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png
deleted file mode 100644
index 96fe7bb0..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png
deleted file mode 100644
index 22295074..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png b/themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
deleted file mode 100644
index 15db44d4..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png
deleted file mode 100644
index e399bf34..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png
deleted file mode 100644
index 409d89d2..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png
deleted file mode 100644
index f8d9a007..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png b/themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png
deleted file mode 100644
index 3fe28484..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png
deleted file mode 100644
index 73b371ab..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png b/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
deleted file mode 100644
index 72322171..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png b/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png
deleted file mode 100644
index 626444a6..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png b/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png
deleted file mode 100644
index 132a8e7d..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png b/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png
deleted file mode 100644
index 27851dfd..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png b/themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png
deleted file mode 100644
index 3658453c..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png b/themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png
deleted file mode 100644
index 138ebb35..00000000
--- a/themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/display/background.png b/themes/classic/source/assets/jwplayer/glow/display/background.png
deleted file mode 100644
index 391152f5..00000000
--- a/themes/classic/source/assets/jwplayer/glow/display/background.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png b/themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png
deleted file mode 100644
index a3819c1e..00000000
--- a/themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/display/muteIcon.png b/themes/classic/source/assets/jwplayer/glow/display/muteIcon.png
deleted file mode 100644
index e0408bbd..00000000
--- a/themes/classic/source/assets/jwplayer/glow/display/muteIcon.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/display/playIcon.png b/themes/classic/source/assets/jwplayer/glow/display/playIcon.png
deleted file mode 100644
index cb384278..00000000
--- a/themes/classic/source/assets/jwplayer/glow/display/playIcon.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/dock/button.png b/themes/classic/source/assets/jwplayer/glow/dock/button.png
deleted file mode 100644
index 391152f5..00000000
--- a/themes/classic/source/assets/jwplayer/glow/dock/button.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/glow.xml b/themes/classic/source/assets/jwplayer/glow/glow.xml
deleted file mode 100644
index 7d5ba038..00000000
--- a/themes/classic/source/assets/jwplayer/glow/glow.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0"?>
-<skin version="1.1" name="Glow" author="LongTail Video">
-
- <settings>
- <setting name="backcolor" value="0x000000" />
- <setting name="frontcolor" value="0xeeeeee" />
- <setting name="lightcolor" value="0xeeeeee" />
- <setting name="screencolor" value="0x000000" />
- </settings>
-
- <components>
- <component name="controlbar">
- <settings>
- <setting name="margin" value="0" />
- <setting name="fontsize" value="11" />
- <setting name="fontcolor" value="0xEEEEEE" />
- <setting name="buttoncolor" value="0xEEEEEE" />
- </settings>
-
- <layout>
- <group position="left">
- <button name="play" />
- <text name="elapsed" />
- </group>
- <group position="center">
- <slider name="time" />
- </group>
- <group position="right">
- <text name="duration" />
- <button name="blank" />
- <button name="mute" />
- <button name="fullscreen" />
- </group>
- </layout>
-
- <elements>
- <element name="background" src="background.png" />
- <element name="capLeft" src="divider.png" />
- <element name="capRight" src="divider.png" />
- <element name="divider" src="divider.png" />
- <element name="blankButton" src="blankButton.png" />
- <element name="fullscreenButton" src="fullscreenButton.png" />
- <element name="fullscreenButtonOver" src="fullscreenButtonOver.png" />
- <element name="muteButton" src="muteButton.png" />
- <element name="muteButtonOver" src="muteButtonOver.png" />
- <element name="pauseButton" src="pauseButton.png" />
- <element name="pauseButtonOver" src="pauseButtonOver.png" />
- <element name="playButton" src="playButton.png" />
- <element name="playButtonOver" src="playButtonOver.png" />
- <element name="timeSliderBuffer" src="timeSliderBuffer.png" />
- <element name="timeSliderCapLeft" src="timeSliderCapLeft.png" />
- <element name="timeSliderCapRight" src="timeSliderCapRight.png" />
- <element name="timeSliderProgress" src="timeSliderProgress.png" />
- <element name="timeSliderRail" src="timeSliderRail.png" />
- <element name="normalscreenButton" src="normalscreenButton.png" />
- <element name="normalscreenButtonOver" src="normalscreenButtonOver.png" />
- <element name="unmuteButton" src="unmuteButton.png" />
- <element name="unmuteButtonOver" src="unmuteButtonOver.png" />
- <element name="volumeSliderRail" src="divider.png" />
- <element name="volumeSliderProgress" src="divider.png" />
- </elements>
- </component>
-
- <component name="display">
- <settings>
- <setting name="bufferinterval" value="250" />
- <setting name="bufferrotation" value="90" />
- </settings>
- <elements>
- <element name="background" src="background.png" />
- <element name="playIcon" src="playIcon.png" />
- <element name="muteIcon" src="muteIcon.png" />
- <element name="errorIcon" src="bufferIcon.png" />
- <element name="bufferIcon" src="bufferIcon.png" />
- </elements>
- </component>
-
- <component name="dock">
- <settings>
- <setting name="fontcolor" value="0xFFFFFF" />
- </settings>
- <elements>
- <element name="button" src="button.png" />
- </elements>
- </component>
-
- <component name="playlist">
- <settings>
- <setting name="fontcolor" value="0xEEEEEE" />
- <setting name="overcolor" value="0xFFFFFF" />
- <setting name="activecolor" value="0xFFFFFF" />
- <setting name="backgroundcolor" value="0x333333" />
- </settings>
- <elements>
- <element name="item" src="item.png" />
- <element name="itemOver" src="itemOver.png" />
- <element name="sliderCapBottom" src="sliderCapBottom.png" />
- <element name="sliderCapTop" src="sliderCapTop.png" />
- <element name="sliderRail" src="sliderRail.png" />
- <element name="sliderThumb" src="sliderThumb.png" />
- </elements>
- </component>
-
- <component name="sharing">
- <elements>
- <element name="embedIcon" src="embedIcon.png" />
- <element name="embedScreen" src="embedScreen.png" />
- <element name="shareIcon" src="shareIcon.png" />
- <element name="shareScreen" src="shareScreen.png" />
- </elements>
- </component>
-
- </components>
-
-</skin> \ No newline at end of file
diff --git a/themes/classic/source/assets/jwplayer/glow/playlist/item.png b/themes/classic/source/assets/jwplayer/glow/playlist/item.png
deleted file mode 100644
index 812592c3..00000000
--- a/themes/classic/source/assets/jwplayer/glow/playlist/item.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png b/themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png
deleted file mode 100644
index 549f3721..00000000
--- a/themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png b/themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png
deleted file mode 100644
index 048cc623..00000000
--- a/themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png b/themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png
deleted file mode 100644
index 65c463a0..00000000
--- a/themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png b/themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png
deleted file mode 100644
index 121778af..00000000
--- a/themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.png b/themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.png
deleted file mode 100644
index 118c3e03..00000000
--- a/themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.png b/themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.png
deleted file mode 100644
index 3394ac9c..00000000
--- a/themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png b/themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png
deleted file mode 100644
index b4059754..00000000
--- a/themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png b/themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png
deleted file mode 100644
index eae1d4e7..00000000
--- a/themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png b/themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png
deleted file mode 100644
index 695ec949..00000000
--- a/themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/assets/jwplayer/player.swf b/themes/classic/source/assets/jwplayer/player.swf
deleted file mode 100644
index 0eee3797..00000000
--- a/themes/classic/source/assets/jwplayer/player.swf
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/atom.xml b/themes/classic/source/atom.xml
deleted file mode 100644
index 3b4e6613..00000000
--- a/themes/classic/source/atom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-layout: nil
----
-<?xml version="1.0" encoding="utf-8"?>
-<feed xmlns="http://www.w3.org/2005/Atom">
-
- <title>{{ site.blog_title }}</title>
- <link href="{{ site.url }}/atom.xml" rel="self"/>
- <link href="{{ site.url }}/"/>
- <updated>{{ site.time | date_to_xmlschema }}</updated>
- <id>{{ site.url }}/</id>
- <author>
- <name>{{ site.author }}</name>
- {% if site.email %}
- <email>{{ site.email }}</email>
- {% endif %}
- </author>
-
- {% for post in site.posts %}
- <entry>
- <title>{{ post.title }}</title>
- <link href="{{ site.url }}{{ post.url }}"/>
- <updated>{{ post.date | date_to_xmlschema }}</updated>
- <id>{{ site.url }}{{ post.id }}</id>
- <content type="html">{{ post.content | full_urls: site.url | xml_escape }}</content>
- </entry>
- {% endfor %}
-</feed>
diff --git a/themes/classic/source/images/bird_32_gray.png b/themes/classic/source/images/bird_32_gray.png
deleted file mode 100644
index 574f210a..00000000
--- a/themes/classic/source/images/bird_32_gray.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/bird_32_gray_fail.png b/themes/classic/source/images/bird_32_gray_fail.png
deleted file mode 100644
index 8337d103..00000000
--- a/themes/classic/source/images/bird_32_gray_fail.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/code_bg.png b/themes/classic/source/images/code_bg.png
deleted file mode 100644
index a57bab56..00000000
--- a/themes/classic/source/images/code_bg.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/dotted-border.png b/themes/classic/source/images/dotted-border.png
deleted file mode 100644
index 57f99071..00000000
--- a/themes/classic/source/images/dotted-border.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/email.png b/themes/classic/source/images/email.png
deleted file mode 100644
index e55473fe..00000000
--- a/themes/classic/source/images/email.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/favicon.png b/themes/classic/source/images/favicon.png
deleted file mode 100644
index 0f250673..00000000
--- a/themes/classic/source/images/favicon.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/line-tile.png b/themes/classic/source/images/line-tile.png
deleted file mode 100644
index f67ee19f..00000000
--- a/themes/classic/source/images/line-tile.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/noise.png b/themes/classic/source/images/noise.png
deleted file mode 100644
index 432e05bf..00000000
--- a/themes/classic/source/images/noise.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/rss.png b/themes/classic/source/images/rss.png
deleted file mode 100644
index 151ae718..00000000
--- a/themes/classic/source/images/rss.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/images/search.png b/themes/classic/source/images/search.png
deleted file mode 100644
index 1220ff4e..00000000
--- a/themes/classic/source/images/search.png
+++ /dev/null
Binary files differ
diff --git a/themes/classic/source/index.html b/themes/classic/source/index.html
deleted file mode 100644
index 47d848e3..00000000
--- a/themes/classic/source/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: default
-blog_index: true
----
-{% assign index = true %}
-{% for post in paginator.posts %}
-{% assign content = post.content %}
- <article>
- {% include article.html %}
- </article>
-{% endfor %}
-<nav role="pagination">
- {% if paginator.next_page %}
- <a href="/page{{paginator.next_page}}/">&larr; Older</a>
- {% endif %}
- <a href="/archive.html">Blog Archive</a>
- {% if paginator.previous_page %}
- <a href="/page{{paginator.previous_page}}/">Newer &rarr;</a>
- {% endif %}
-</nav>
-{% if site.disqus_short_name %}
-<script type="text/javascript">
- var disqus_shortname = '{{ site.disqus_short_name }}';
- (function () {
- var s = document.createElement('script'); s.async = true;
- s.type = 'text/javascript';
- s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
- (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
- }());
-</script>
-{% endif %}
diff --git a/themes/classic/source/javascripts/ender.js b/themes/classic/source/javascripts/ender.js
deleted file mode 100644
index 9958885a..00000000
--- a/themes/classic/source/javascripts/ender.js
+++ /dev/null
@@ -1,2 +0,0 @@
-eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('!5(O){5 2j(o,42){F(u k Y 42){k!=\'28\'&&k!=\'4T\'&&(o[k]=42[k])}7 o}5 2P(s,r){u R;B(X.4E&&N s==\'1p\'||s.4R||s.E&&\'3g\'Y s||s==1O){R=X.4E(s,r);R.H=s}1h{R=5F(s.E)?s:[s]}7 2j(R,2P)}5 X(s,r){7 2P(s,r)}2j(X,{4T:\'0.2.0\',X:5(o,4Z){2j(4Z?2P:X,o)}});2j(2P,{6E:5(D,1Z){F(u i=0,l=8.E;i<l;++i){i Y 8&&D.11(1Z||8[i],8[i],i,8)}7 8}});u 3d=O.$;X.28=5(){O.$=3d;7 8};(N 1v!==\'1w\')&&1v.1y&&(1v.1y=X);O[\'X\']=O[\'$\']=X}(8);!5(O){u 2a=1,3q={},2t={},5y=/6x|6r/,2O=/[^\\.]*(?=\\..*)\\.|.*/,2C=/\\..*/,3z=\'2X\',2h=\'2h\',59=\'6a\',3A=\'3A\',I=O.1f||{},V=I.2H||{},2f=V[3z],39=2f?3z:2h,5g=5(57,5t){u G=5t.18;1d(G!=1e){B(G==57){7 19}G=G.18}},3F=5(22,L){7(22.2a=L||22.2a||2a++)},2l=5(A){u L=3F(A);7(3q[L]=3q[L]||{})},4F=2f?5(A,C,D,S){A[S?3z:59](C,D,1i)}:5(A,C,D,S,1J){1J&&S&&(A[\'3b\'+1J]=A[\'3b\'+1J]||0);A[S?2h:3A](\'3L\'+C,D)},5f=5(A,D,17){7 5(1m){1m=2w(1m||((8.6F||8.1f||8).7h||O).1m);7 D.1V(A,[1m].31(17))}},4z=5(A,D,C,1z,17){7 5(1m){B(1z?1z.11(8,1m):2f?19:1m&&1m.78==\'3b\'+C||!1m){D.1V(A,[1m].31(17))}}},4h=5(A,2x,D,17){u C=2x.1g(2C,\'\'),J=2l(A),1L=J[C]||(J[C]={}),L=3F(D,2x.1g(2O,\'\'));B(1L[L]){7 A}u 1J=36[C];B(1J){D=1J.1z?4z(A,D,C,1J.1z):D;C=1J.2S||C}u 15=34[C];D=15?5f(A,D,17):4z(A,D,C,1i,17);15=2f||15;B(C==\'2J\'){u 5b=D;D=5(){3t(A,C,D)&&5b()}}A[39]&&4F(A,15?C:\'54\',D,19,!15&&C);1L[L]=D;D.2a=L;7 C==\'2J\'?A:(2t[3F(A)]=A)},3t=5(A,2x,3C){u L,2q,3G,i,J=2l(A),C=2x.1g(2C,\'\');B(!J||!J[C]){7 A}2q=2x.1g(2O,\'\');3G=2q?2q.2b(\'.\'):[3C.2a];F(i=3G.E;i--;){L=3G[i];3C=J[C][L];2k J[C][L];B(A[39]){C=36[C]?36[C].2S:C;u 15=2f||34[C];4F(A,15?C:\'54\',3C,1i,!15&&C)}}7 A},4V=5(H,D,$){7 5(e){u 1R=N H==\'1p\'?$(H,8):H;F(u M=e.M;M&&M!=8;M=M.18){F(u i=1R.E;i--;){B(1R[i]==M){7 D.1V(M,3p)}}}}},S=5(A,J,D,5a,$){B(N J==\'68\'&&!D){F(u C Y J){J.1T(C)&&S(A,C,J[C])}}1h{u 3v=N D==\'1p\',2d=(3v?D:J).2b(\' \');D=3v?4V(J,5a,$):D;F(u i=2d.E;i--;){4h(A,2d[i],D,5l.2g.3u.11(3p,3v?4:3))}}7 A},1o=5(A,1u,D){u k,C,J,2s=N(1u)==\'1p\',2q=2s&&1u.1g(2O,\'\'),2u=3t,2G=2l(A);B(2s&&/\\s/.12(1u)){1u=1u.2b(\' \');u i=1u.E-1;1d(1o(A,1u[i])&&i--){}7 A}J=2s?1u.1g(2C,\'\'):1u;B(!2G||(2s&&!2G[J])){7 A}B(N D==\'5\'){2u(A,J,D)}1h B(2q){2u(A,1u)}1h{2u=J?2u:1o;C=2s&&J;J=J?(D||2G[J]||J):2G;F(k Y J){J.1T(k)&&2u(A,C||k,J[k])}}7 A},1P=5(A,C,17){u 38,k,i,2d=C.2b(\' \');F(i=2d.E;i--;){C=2d[i].1g(2C,\'\');u 15=34[C],24=2d[i].1g(2O,\'\'),1L=2l(A)[C];B(24){24=24.2b(\'.\');F(k=24.E;k--;){1L[24[k]]&&1L[24[k]].1V(A,17)}}1h B(!17&&A[39]){4S(15,C,A)}1h{F(k Y 1L){1L.1T(k)&&1L[k].1V(A,17)}}}7 A},4S=2f?5(15,C,A){38=1f.76(15?"6X":"6W");38[15?\'6Y\':\'6Z\'](C,19,19,O,1);A.70(38)}:5(15,C,A){15?A.6U(\'3L\'+C,1f.6P()):A[\'3b\'+C]++},2F=5(A,32,C){u J=2l(32),22,k;22=C?J[C]:J;F(k Y 22){22.1T(k)&&(C?S:2F)(A,C||32,C?22[k]:k)}7 A},2w=5(e){u T={};B(!e){7 T}u C=e.C,M=e.M||e.7d;T.2U=2w.2U(e);T.2R=2w.2R(e);T.M=M&&M.1j==3?M.18:M;B(~C.4A(\'7c\')){T.5u=e.5s||e.5u}1h B((/3R|7e|7f/i).12(C)){T.7g=e.5s==3||e.7a==2;T.75={x:0,y:0};B(e.5r||e.5x){T.37=e.5r;T.35=e.5x}1h B(e.37||e.35){T.37=e.37+1f.3M.2y+1f.2H.2y;T.35=e.35+1f.3M.2z+1f.2H.2z}5y.12(C)&&(T.4v=e.4v||e[(C==\'3i\'?\'32\':\'6u\')+\'6t\'])}F(u k Y e){B(!(k Y T)){T[k]=e[k]}}7 T};2w.2U=5(e){7 5(){B(e.2U){e.2U()}1h{e.6w=1i}}};2w.2R=5(e){7 5(){B(e.2R){e.2R()}1h{e.6n=19}}};u 34={3R:1,5z:1,5D:1,5p:1,6M:1,3O:1,5i:1,3i:1,4f:1,6z:1,6K:1,6L:1,5B:1,5w:1,5v:1,6G:1,6A:1,6C:1,6D:1,6I:1,6B:1,6H:1,6p:1,5C:1,5n:1,5o:1,6o:1,2r:1,4N:1,5q:1,2J:1,6m:1,4I:1,6q:1,6b:1,72:1,5A:1,7o:1,2N:1};5 4x(1m){u 1F=1m.4v;B(!1F){7 1F==1e}7(1F!=8&&1F.7X!=\'7i\'&&!/1f/.12(8.80())&&!5g(8,1F))}u 36={3V:{2S:\'3i\',1z:4x},48:{2S:\'4f\',1z:4x},3O:{2S:/7W/.12(4O.55)?\'5i\':\'3O\'}};u 1Y={S:S,1o:1o,2F:2F,1P:1P};u 1X=5(6){u L=1o(6).2a;B(L){2k 2t[L];2k 3q[L]}};B(O[2h]){S(O,\'2J\',5(){F(u k Y 2t){2t.1T(k)&&1X(2t[k])}O.5j&&5j()})}u 5k=O.1Y;1Y.28=5(){O.1Y=5k;7 8};(N 1v!==\'1w\'&&1v.1y)?(1v.1y=1Y):(O[\'1Y\']=1Y)}(8);!5($){u b=1Y.28(),2v=5(1B,C,83){u 5m=C?[C]:[];7 5(){F(u 17,i=0,l=8.E;i<l;i++){17=[8[i]].31(5m,5l.2g.3u.11(3p,0));17.E==4&&17.13($);!3p.E&&1B==\'S\'&&C&&(1B=\'1P\');b[1B].1V(8,17)}7 8}};u S=2v(\'S\'),1o=2v(\'1o\'),1P=2v(\'1P\');u 3X={3L:S,4h:S,8e:S,8f:S,8g:S,8b:1o,8c:1o,3t:1o,85:1o,84:1P,87:1P,8a:2v(\'2F\'),89:5(5e,5d){F(u i=0,l=8.E;i<l;i++){b.S.11(8,8[i],\'3V\',5e);b.S.11(8,8[i],\'48\',5d)}7 8}};u 46=[\'5n\',\'5o\',\'3R\',\'5z\',\'5A\',\'5C\',\'7v\',\'7q\',\'5B\',\'5w\',\'5v\',\'5q\',\'5p\',\'3V\',\'48\',\'4f\',\'3i\',\'5D\',\'4I\',\'2N\',\'2r\',\'4N\',\'2J\'];F(u i=46.E;i--;){u 3Z=46[i];3X[3Z]=2v(\'S\',3Z)}$.X(3X,19)}(X);!5(O){u I=O.1f,W=I.2H,2n=1e,7I=\'3o\',5J=/^52|1l|53$/,6e=/2r|3s|7H|56|51|4Y|7J/i,5Z={2r:\'7K\',56:\'51\',4Y:\'7G\'},5S=/^52|53$/,2M=/7B/i.12(4O.55),2Q=[],3K=0,5H=/^-?[\\d\\.]+$/,2V=\'2V\',2Y=\'2Y\',1S=\'1S\',4X=/(^\\s*|\\s*$)/g,5I={7D:1,4b:1,7C:1,1Q:1};5 2B(c){7 1a 1E("(^|\\\\s+)"+c+"(\\\\s+|$)")}5 K(Q,D,1Z){F(u i=0,l=Q.E;i<l;i++){D.11(1Z||Q[i],Q[i],i,Q)}7 Q}u 2c=7z.2g.2c?5(s){7 s.2c()}:5(s){7 s.1g(4X,\'\')};5 2K(s){7 s.1g(/-(.)/g,5(m,5E){7 5E.7A()})}5 4k(G){7 G&&G.4R&&G.1j==1}5 6c(Q,D,1Z){F(u i=0,j=Q.E;i<j;++i){B(D.11(1Z,Q[i],i,Q)){7 19}}7 1i}u 5Q=I.40&&I.40.4P?5(6,14){u 1l=1e;B(14==\'3n\'){14=\'5G\'}u 44=I.40.4P(6,\'\');44&&(1l=44[2K(14)]);7 6.1t[14]||1l}:(2M&&W.49)?5(6,14){14=2K(14);14=14==\'3n\'?\'5L\':14;B(14==\'1Q\'){u P=4c;4H{P=6.4U[\'7p.7w.88\'].1Q}3S(82){4H{P=6.4U(\'5M\').1Q}3S(7T){}}7 P/4c}u 1l=6.49?6.49[14]:1e;7 6.1t[14]||1l}:5(6,14){7 6.1t[2K(14)]};5 2T(M,1r,D){u i=0,21=1r||8,r=[];K(2L(2n?2n(M):M),5(t){K(21,5(6){u n=6.66(19);D(t,n);r[i]=n;i++})},8);K(r,5(e,i){21[i]=e});21.E=i;7 21}5 5K(6,x,y){u $6=U(6),1t=$6.1M(\'6k\'),2W=$6.2W(),3l=\'7Q\',43=1t==3l,2e=[3a($6.1M(\'1H\'),10),3a($6.1M(\'1G\'),10)];B(1t==\'7Z\'){$6.1M(\'6k\',3l);1t=3l}69(2e[0])&&(2e[0]=43?0:6.3I);69(2e[1])&&(2e[1]=43?0:6.3J);x!==1e&&(6.1t.1H=x-2W.1H+2e[0]+\'2V\');y!==1e&&(6.1t.1G=y-2W.1G+2e[1]+\'2V\')}5 3f(1k){8.E=0;8.7m=1k;B(1k){1k=N 1k!==\'1p\'&&!1k.1j&&N 1k.E!==\'1w\'?1k:[1k];8.E=1k.E;F(u i=0;i<1k.E;i++){8[i]=1k[i]}}}3f.2g={K:5(D,1Z){7 K(8,D,1Z)},3s:5(D,41){u m=[],n,i;F(i=0;i<8.E;i++){n=D.11(8,8[i]);41?(41(n)&&m.13(n)):m.13(n)}7 m},3c:5(){7 U(8[0])},5N:5(){7 U(8[8.E-1])},W:5(h,2I){u 1B=2I?W.6h==1e?\'7L\':\'6h\':\'4j\',m;5 45(6,1n){1d(6.1C){6.3r(6.1C)}K(2L(h,1n),5(G){6.2m(G)})}7 N h!==\'1w\'?8.K(5(6){(m=6.3T.1c(6e))?45(6,m[0]):(6[1B]=h)}):8[0]?8[0][1B]:\'\'},2I:5(2I){7 8.W(2I,1)},7r:5(c){7 8.K(5(6){8.3j(6,c)||(6.1q=2c(6.1q+\' \'+c))},8)},7E:5(c){7 8.K(5(6){8.3j(6,c)&&(6.1q=2c(6.1q.1g(2B(c),\' \')))},8)},3j:5(6,c){7 N c==\'1w\'?6c(8,5(i){7 2B(6).12(i.1q)}):2B(c).12(6.1q)},7F:5(c,1z){B(N 1z!==\'1w\'&&!1z){7 8}7 8.K(5(6){8.3j(6,c)?(6.1q=2c(6.1q.1g(2B(c),\' \'))):(6.1q=2c(6.1q+\' \'+c))},8)},7M:5(C){7 8.K(5(6){6.1t.5O=C||\'\'})},7y:5(1k){7 8.K(5(6){6.1t.5O=\'7x\'})},45:5(G){7 8.K(5(6){K(2L(G),5(i){6.2m(i)})})},7n:5(G){7 8.K(5(6){u 3c=6.1C;K(2L(G),5(i){6.1K(i,3c)})})},4q:5(M,1r){7 2T.11(8,M,1r,5(t,6){t.2m(6)})},4m:5(M,1r){7 2T.11(8,M,1r,5(t,6){t.1K(6,t.1C)})},4p:5(){7 8.1F(\'25\')},4u:5(){7 8.1F(\'67\')},1F:5(1B){7 8.3s(5(6){6=6[1B];1d(6&&6.1j!==1){6=6[1B]}7 6||0},5(6){7 6})},7l:5(G){7 8.K(5(6){K(U.20(G),5(i){6.18.1K(i,6)})})},7j:5(G){7 8.K(5(6){K(U.20(G),5(i){6.18.1K(i,6.25)})})},1K:5(M,1r){7 2T.11(8,M,1r,5(t,6){t.18.1K(6,t)})},4r:5(M,1r){7 2T.11(8,M,1r,5(t,6){u 4e=t.25;B(4e){t.18.1K(6,4e)}1h{t.18.2m(6)}})},1M:5(o,v){B(v===1w&&N o==\'1p\'){7 5Q(8[0],o)}u 1b=o;B(N o==\'1p\'){1b={};1b[o]=v}B(2M&&1b.1Q){1b.7k=\'5M(1Q=\'+(1b.1Q*4c)+\')\';1b.4b=o.4b||1;2k 1b.1Q}B(v=1b[\'3n\']){2M?(1b.5L=v):(1b.5G=v);2k 1b[\'3n\']}u D=5(6,p,v){F(u k Y 1b){B(1b.1T(k)){v=1b[k];(p=2K(k))&&5H.12(v)&&!(p Y 5I)&&(v+=2V);6.1t[p]=v}}};7 8.K(D)},2W:5(x,y){B(x||y){7 8.K(5(6){5K(6,x,y)})}u 6=8[0];u 1N=6.7u;u 1I=6.7t;u 1G=6.3J;u 1H=6.3I;1d(6=6.7O){1G=1G+6.3J;1H=1H+6.3I}7{1G:1G,1H:1H,1I:1I,1N:1N}},3y:5(k,v){u 6=8[0];7 N v==\'1w\'?5J.12(k)?5S.12(k)&&N 6[k]==\'1p\'?19:6[k]:6[1S](k):8.K(5(6){k==\'1l\'?(6.1l=v):6[2Y](k,v)})},P:5(s){7(N s==\'1p\')?8.3y(\'1l\',s):8[0].1l},7s:5(k){7 8.K(5(6){6.7N(k)})},26:5(k,v){u 6=8[0];B(N v===\'1w\'){6[1S](\'26-G-L\')||6[2Y](\'26-G-L\',++3K);u L=6[1S](\'26-G-L\');2Q[L]||(2Q[L]={});7 2Q[L][k]}1h{7 8.K(5(6){6[1S](\'26-G-L\')||6[2Y](\'26-G-L\',++3K);u L=6[1S](\'26-G-L\');u o={};o[k]=v;2Q[L]=o})}},1o:5(){7 8.K(5(6){6.18&&6.18.3r(6)})},8d:5(){7 8.K(5(6){1d(6.1C){6.3r(6.1C)}})},86:5(){7 8.3s(5(6){7 6.18.3r(6)})},2z:5(y){7 2N.11(8,1e,y,\'y\')},2y:5(x){7 2N.11(8,x,1e,\'x\')}};5 2L(G,1n){7 N G==\'1p\'?U.20(G,1n):4k(G)?[G]:G}5 2N(x,y,C){u 6=8[0];B(x==1e&&y==1e){7(3P(6)?5U():{x:6.2y,y:6.2z})[C]}B(3P(6)){1O.7U(x,y)}1h{x!=1e&&(6.2y=x);y!=1e&&(6.2z=y)}7 8}5 3P(A){7 A===1O||(/^(?:3M|W)$/i).12(A.3T)}5 5U(){7{x:1O.7S||W.2y,y:1O.7V||W.2z}}5 U(R,1r){7 1a 3f(R,1r)}U.4C=5(q){2n=q;2k U.4C};U.2j=5(o,M){F(u k Y o){o.1T(k)&&((M||3f.2g)[k]=o[k])}};U.20=5(G,1n){7 N G==\'1p\'?5(){u t=1n?5Z[1n.6f()]:1e;u 6=I.3e(t||\'4L\'),R=[];B(1n){u 5Y=G.1c(1a 1E("<"+t+">.+?<\\\\/"+t+">","g"));K(5Y,5(m){m=m.1g(/<(.+)>(.+?)<\\/\\1>/,\'$2\');u 4l=I.3e(t);4l.2m(I.7Y(m));6.2m(4l)})}1h{6.4j=G}u 4Q=6.4y;6=6.1C;R.13(6);1d(6=6.25){(6.1j==1)&&R.13(6)}7 R}():4k(G)?[G.66(19)]:[]};U.I=5(){u w=W.6s,h=W.6v,4s=8.63();7{1N:65.62(w,4s.1N),1I:65.62(h,4s.1I)}};U.1C=5(6){F(u c=6.4y,i=0,j=(c&&c.E)||0,e;i<j;i++){B(c[i].1j===1){e=c[j=i]}}7 e};U.63=5(){u h=21.77,w=21.6N;2M&&(h=W.74)&&(w=W.7b);7{1N:w,1I:h}};U.33=\'3k\'Y W?5(Z,A){7(Z.3k(A)&16)==16}:\'3m\'Y W?5(Z,A){7 Z!==A&&Z.3m(A)}:5(Z,A){1d(A=A.18){B(A===Z){7 19}}7 1i};u 3d=O.U;U.28=5(){O.U=3d;7 8};O[\'U\']=U}(8);!5($){u b=U;b.4C($);$.X(b);$.X(b(),19);$.X({20:5(G){7 $(b.20(G))}});$.2i=5(2i){7 $([1f.47(2i)])};5 4A(Q,P){F(u i=0;i<Q.E;i++){B(Q[i]===P){7 i}}7-1}5 1U(Q){u a=[],i,j;3h:F(i=0;i<Q.E;i++){F(j=0;j<a.E;j++){B(a[j]==Q[i]){3Y 3h}}a[a.E]=Q[i]}7 a}$.X({5R:5(H,4o){u 29=$(H),j,k,p,r=[];F(j=0,k=8.E;j<k;j++){p=8[j];1d(p=p.18){B(4A(29,p)!==-1){r.13(p);B(4o)5T}}}7 $(1U(r))},4o:5(H){7 8.5R(H,19)},3c:5(){7 $(8[0])},5N:5(){7 $(8[8.E-1])},4p:5(){7 $(b(8).4p())},4u:5(){7 $(b(8).4u())},4q:5(t){7 b(8.H).4q(t,8)},4m:5(t){7 b(8.H).4m(t,8)},4r:5(t){7 b(8.H).4r(t,8)},1K:5(t){7 b(8.H).1K(t,8)},6V:5(){u i,l,p,r=[];F(i=0,l=8.E;i<l;i++){p=8[i];1d(p=p.67){p.1j==1&&r.13(p)}p=8[i];1d(p=p.25){p.1j==1&&r.13(p)}}7 $(r)},71:5(){u 6,r=[];F(i=0,l=8.E;i<l;i++){B(!(6=b.1C(8[i]))){3Y}r.13(6);1d(6=6.25){6.1j==1&&r.13(6)}}7 $(1U(r))},1I:5(v){7 v?8.1M(\'1I\',v):3a(8.1M(\'1I\'),10)},1N:5(v){7 v?8.1M(\'1N\',v):3a(8.1M(\'1N\'),10)}},19)}(X||$);!5(){u 1y={},1v={1y:1y};!5(I){u 2D=0,2E=[],3E,f=1i,3D=I.3e(\'a\'),4w=\'6b\',2X=\'2X\',3B=\'3B\';/^6S|c/.12(I.6d)&&(2D=1);5 4D(){2D=1;F(u i=0,l=2E.E;i<l;i++){2E[i]()}}I[2X]&&I[2X](4w,5 D(){I.6a(4w,D,f);4D()},f);3D.3N&&I.2h(3B,(3E=5 3E(){B(/^c/.12(I.6d)){I.3A(3B,3E);4D()}}));u 2p=3D.3N?5(D){21!=1G?!2D?2E.13(D):D():!5(){4H{3D.3N(\'1H\')}3S(e){7 79(5(){2p(D)},50)}D()}()}:5(D){2D?D():2E.13(D)};(N 1v!==\'1w\')&&1v.1y?(1v.1y={2p:2p}):(1O.2p=2p)}(1f);$.X(1v.1y)}.11($);!5(O,I){u c,i,j,k,l,m,o,p,r,v,6,G,3W,4g,3x,3g,1W,4B,2i=/#([\\w\\-]+)/,6j=/\\.[\\w\\-]+/g,4a=/^#([\\w\\-]+$)/,4M=/^\\.([\\w\\-]+)$/,5P=/^([\\w\\-]+)$/,5c=/^([\\w]+)?\\.([\\w\\-]+)$/,W=I.2H,61=/\\s(?![\\s\\w\\-\\/\\?\\&\\=\\:\\.\\(\\)\\!,@#%<>\\{\\}\\$\\*\\^\'"]*\\])/,5X=/([.*+?\\^=!:${}()|\\[\\]\\/\\\\])/g,4W=/^([a-6J-9]+)?(?:([\\.\\#]+[\\w\\-\\.#]+)?)/,3y=/\\[([\\w\\-]+)(?:([\\|\\^\\$\\*\\~]?\\=)[\'"]?([ \\w\\-\\/\\?\\&\\=\\:\\.\\(\\)\\!,@#%<>\\{\\}\\$\\*\\^]+)["\']?)?\\]/,6g=1a 1E(4W.6l+\'(\'+3y.6l+\')?\');5 1R(Q){r=[];F(i=0,3W=Q.E;i<3W;i++){r[i]=Q[i]}7 r}u 2o=5(){8.c={}};2o.2g={g:5(k){7 8.c[k]||1w},s:5(k,v){8.c[k]=v;7 v}};u 30=1a 2o(),4i=1a 2o(),1x=1a 2o(),3Q=1a 2o();5 q(2n){7 2n.1c(6g)}5 3H(6y,1n,2Z,4t,4n,60,1l){u m,c,k;B(1n&&8.3T.6f()!==1n){7 1i}B(2Z&&(m=2Z.1c(2i))&&m[1]!==8.2i){7 1i}B(2Z&&(3x=2Z.1c(6j))){F(i=3x.E;i--;){c=3x[i].3u(1);B(!(30.g(c)||30.s(c,1a 1E(\'(^|\\\\s+)\'+c+\'(\\\\s+|$)\'))).12(8.1q)){7 1i}}}B(4t&&!1l){o=8.6T;F(k Y o){B(6O.2g.1T.11(o,k)&&(o[k].73||k)==4n){7 8}}}B(4t&&!5W(60,8.1S(4n)||\'\',1l)){7 1i}7 8}5 64(1s){u r=[],4B=1s.81(),4G=q(4B),1n=4G[1]||\'*\',i,l,R,V=1s.E&&(m=1s[0].1c(4a))?I.47(m[1]):I;B(!V){7 r}R=V.3o(1n);F(i=0,l=R.E;i<l;i++){6=R[i];B(3g=3H.1V(6,4G)){r.13(3g)}}7 r}5 1X(s){7 4i.g(s)||4i.s(s,s.1g(5X,\'\\\\$1\'))}5 5W(5V,23,P){7P(5V){2A\'=\':7 23==P;2A\'^=\':7 23.1c(1x.g(\'^=\'+P)||1x.s(\'^=\'+P,1a 1E(\'^\'+1X(P))));2A\'$=\':7 23.1c(1x.g(\'$=\'+P)||1x.s(\'$=\'+P,1a 1E(1X(P)+\'$\')));2A\'*=\':7 23.1c(1x.g(P)||1x.s(P,1a 1E(1X(P))));2A\'~=\':7 23.1c(1x.g(\'~=\'+P)||1x.s(\'~=\'+P,1a 1E(\'(?:^|\\\\s+)\'+1X(P)+\'(?:\\\\s+|$)\')));2A\'|=\':7 23.1c(1x.g(\'|=\'+P)||1x.s(\'|=\'+P,1a 1E(\'^\'+1X(P)+\'(-|$)\')))}7 1i}5 5h(H){u r=[],27=[],i,l,1s=3Q.g(H)||3Q.s(H,H.2b(61));1s=1s.3u(0);B(!1s.E){7 r}r=64(1s);B(!1s.E){7 r}F(j=0,l=r.E,k=0;j<l;j++){G=r[j];p=G;F(i=1s.E;i--;){z:1d(p!==W&&(p=p.18)){B(4g=3H.1V(p,q(1s[i]))){5T z}}}4g&&(27[k++]=G)}7 27}5 6i(H,1A,D){u V=(N 1A==\'1p\')?D(1A)[0]:(1A||I);B(H===1O||4d(H)){7!1A||(H!==1O&&4d(V)&&33(H,V))?[H]:[]}B(H&&N H===\'68\'&&5F(H.E)){7 1R(H)}B(m=H.1c(4a)){7(6=I.47(m[1]))?[6]:[]}B(m=H.1c(5P)){7 1R(V.3o(m[1]))}7 1i}5 4d(6){7(6&&6.1j&&(6.1j==1||6.1j==9))}5 1U(Q){u a=[],i,j;3h:F(i=0;i<Q.E;i++){F(j=0;j<a.E;j++){B(a[j]==Q[i]){3Y 3h}}a[a.E]=Q[i]}7 a}5 1D(H,1A){u V=(N 1A==\'1p\')?1D(1A)[0]:(1A||I);B(!V||!H){7[]}B(m=6i(H,1A,1D)){7 m}7 2r(H,V)}u 33=\'3k\'Y W?5(A,Z){7(Z.3k(A)&16)==16}:\'3m\'Y W?5(A,Z){Z=Z==I||Z==1O?W:Z;7 Z!==A&&Z.3m(A)}:5(A,Z){1d(A=A.18){B(A===Z){7 1}}7 0},2r=(I.7R&&I.4K)?5(H,V){B(I.4J&&(m=H.1c(4M))){7 1R((V).4J(m[1]))}7 1R((V).4K(H))}:5(H,V){u T=[],29,3w=[],i;B(m=H.1c(5c)){1W=V.3o(m[1]||\'*\');r=30.g(m[2])||30.s(m[2],1a 1E(\'(^|\\\\s+)\'+m[2]+\'(\\\\s+|$)\'));F(i=0,l=1W.E,j=0;i<l;i++){r.12(1W[i].1q)&&(T[j++]=1W[i])}7 T}F(i=0,1W=H.2b(\',\'),l=1W.E;i<l;i++){3w[i]=5h(1W[i])}F(i=0,l=3w.E;i<l&&(29=3w[i]);i++){u 27=29;B(V!==I){27=[];F(j=0,m=29.E;j<m&&(A=29[j]);j++){33(A,V)&&27.13(A)}}T=T.31(27)}7 1U(T)};1D.1U=1U;u 58=O.1D;1D.28=5(){O.1D=58;7 8};O[\'1D\']=1D}(8,1f);!5(I){u q=1D.28();5 20(G,V){u 6=(V||I).3e(\'4L\'),R=[];6.4j=G;u 4Q=6.4y;6=6.1C;R.13(6);1d(6=6.25){(6.1j==1)&&R.13(6)}7 R};$.4E=5(s,r){7/^\\s*</.12(s)?20(s,r):q(s,r)};$.X({6Q:5(s){u r=[],i,l,j,k,R;F(i=0,l=8.E;i<l;i++){R=q(s,8[i]);F(j=0,k=R.E;j<k;j++){r.13(R[j])}}7 $(q.1U(r))},6R:5(s){u 3U=$(s);F(u i=8.E,j=0,l=8.E+3U.E;i<l;i++,j++){8[i]=3U[j]}7 8}},19)}(1f);',62,513,'|||||function|el|return|this||||||||||||||||||||||var||||||element|if|type|fn|length|for|node|selector|doc|events|each|uid|target|typeof|context|val|ar|els|add|result|bonzo|root|html|ender|in|container||call|test|push|property|isNative||args|parentNode|true|new|iter|match|while|null|document|replace|else|false|nodeType|elements|value|event|tag|remove|string|className|host|tokens|style|orgEvents|module|undefined|attrCache|exports|condition|_root|method|firstChild|qwery|RegExp|related|top|left|height|custom|insertBefore|handlers|css|width|window|fire|opacity|array|getAttribute|hasOwnProperty|uniq|apply|items|clean|bean|scope|create|self|obj|actual|isNamespace|nextSibling|data|ret|noConflict|collection|__uid|split|trim|types|delta|W3C_MODEL|prototype|attachEvent|id|aug|delete|retrieveEvents|appendChild|query|cache|domReady|names|select|isString|collected|rm|integrate|fixEvent|orgType|scrollLeft|scrollTop|case|classReg|stripName|loaded|fns|clone|attached|documentElement|text|unload|camelize|normalize|ie|scroll|namespace|boosh|uidList|stopPropagation|base|insert|preventDefault|px|offset|addEventListener|setAttribute|idsAndClasses|classCache|concat|from|isAncestor|nativeEvents|clientY|customEvents|clientX|evt|eventSupport|parseInt|_on|first|old|createElement|Bonzo|item|label|mouseover|hasClass|compareDocumentPosition|rel|contains|float|getElementsByTagName|arguments|registry|removeChild|map|removeListener|slice|isDel|collections|classes|attr|addEvent|detachEvent|onreadystatechange|handler|testEl|ol|retrieveUid|uids|interpret|offsetLeft|offsetTop|uuids|on|body|doScroll|mousewheel|isBody|tokenCache|click|catch|tagName|plus|mouseenter|len|methods|continue|shortcut|defaultView|reject|o2|isRel|computed|append|shortcuts|getElementById|mouseleave|currentStyle|idOnly|zoom|100|isNode|sibling|mouseout|found|addListener|cleanCache|innerHTML|is|bah|prependTo|attribute|closest|next|appendTo|insertAfter|vp|wholeAttribute|previous|relatedTarget|domContentLoaded|check|childNodes|customHandler|indexOf|token|setQueryEngine|flush|_select|listener|intr|try|resize|getElementsByClassName|querySelectorAll|div|classOnly|submit|navigator|getComputedStyle|nodes|nodeName|fireListener|_VERSION|filters|del|simple|trimReplace|tr|chain||tbody|checked|selected|propertychange|userAgent|table|parent|oldQwery|removeEvent|delfn|org|tagAndOrClass|leave|enter|nativeHandler|isDescendant|_qwery|DOMMouseScroll|CollectGarbage|oldBean|Array|_args|blur|change|mousedown|load|pageX|which|child|keyCode|keyup|keypress|pageY|overOut|dblclick|error|keydown|focus|mouseup|m1|isFinite|cssFloat|digit|unitless|specialAttributes|xy|styleFloat|alpha|last|display|tagOnly|getStyle|parents|stateAttributes|break|getWindowScroll|qualify|checkAttr|specialChars|bitches|tagMap|qualifier|tokenizr|max|viewport|loopAll|Math|cloneNode|previousSibling|object|isNaN|removeEventListener|DOMContentLoaded|some|readyState|specialTags|toLowerCase|chunker|textContent|boilerPlate|clas|position|source|beforeunload|cancelBubble|reset|gestureend|move|out|scrollWidth|Element|to|scrollHeight|returnValue|over|whole|mousemove|touchstart|gesturestart|touchmove|touchend|forEach|ownerDocument|orientationchange|gesturechange|touchcancel|z0|selectstart|selectend|contextmenu|innerWidth|Object|createEventObject|find|and|loade|attributes|fireEvent|siblings|UIEvents|HTMLEvents|initEvent|initUIEvent|dispatchEvent|children|readystatechange|name|clientHeight|pos|createEvent|innerHeight|propertyName|setTimeout|button|clientWidth|key|srcElement|mouse|menu|rightClick|parentWindow|xul|after|filter|before|original|prepend|abort|DXImageTransform|focusout|addClass|removeAttr|offsetHeight|offsetWidth|focusin|Microsoft|none|hide|String|toUpperCase|msie|zIndex|lineHeight|removeClass|toggleClass|td|fieldset|byTag|colgroup|option|innerText|show|removeAttribute|offsetParent|switch|relative|querySelector|pageXOffset|e2|scrollTo|pageYOffset|Firefox|prefix|createDocumentFragment|static|toString|pop|e1|method2|emit|undelegate|detach|trigger|Alpha|hover|cloneEvents|unbind|unlisten|empty|bind|listen|delegate'.split('|'),0,{}))
-
diff --git a/themes/classic/source/javascripts/libs/ender.js b/themes/classic/source/javascripts/libs/ender.js
deleted file mode 100644
index 5e56fd89..00000000
--- a/themes/classic/source/javascripts/libs/ender.js
+++ /dev/null
@@ -1,1497 +0,0 @@
-/*!
- * Ender: open module JavaScript framework
- * copyright Dustin Diaz & Jacob Thornton 2011 (@ded @fat)
- * https://ender.no.de
- * License MIT
- * Build: ender -b jeesh
- */
-!function (context) {
-
- function aug(o, o2) {
- for (var k in o2) {
- k != 'noConflict' && k != '_VERSION' && (o[k] = o2[k]);
- }
- return o;
- }
-
- function boosh(s, r) {
- var els;
- if (ender._select && typeof s == 'string' || s.nodeName || s.length && 'item' in s || s == window) { //string || node || nodelist || window
- els = ender._select(s, r);
- els.selector = s;
- } else {
- els = isFinite(s.length) ? s : [s];
- }
- return aug(els, boosh);
- }
-
- function ender(s, r) {
- return boosh(s, r);
- }
-
- aug(ender, {
- _VERSION: '0.2.0',
- ender: function (o, chain) {
- aug(chain ? boosh : ender, o);
- }
- });
-
- aug(boosh, {
- forEach: function (fn, scope) {
- // opt out of native forEach so we can intentionally call our own scope
- // defaulting to the current item
- for (var i = 0, l = this.length; i < l; ++i) {
- i in this && fn.call(scope || this[i], this[i], i, this);
- }
- // return self for chaining
- return this;
- }
- });
-
- var old = context.$;
- ender.noConflict = function () {
- context.$ = old;
- return this;
- };
-
- (typeof module !== 'undefined') && module.exports && (module.exports = ender);
- // use subscript notation as extern for Closure compilation
- context['ender'] = context['$'] = ender;
-
-}(this);
-/*!
- * bean.js - copyright Jacob Thornton 2011
- * https://github.com/fat/bean
- * MIT License
- * special thanks to:
- * dean edwards: http://dean.edwards.name/
- * dperini: https://github.com/dperini/nwevents
- * the entire mootools team: github.com/mootools/mootools-core
- */
-!function (context) {
- var __uid = 1, registry = {}, collected = {},
- overOut = /over|out/,
- namespace = /[^\.]*(?=\..*)\.|.*/,
- stripName = /\..*/,
- addEvent = 'addEventListener',
- attachEvent = 'attachEvent',
- removeEvent = 'removeEventListener',
- detachEvent = 'detachEvent',
- doc = context.document || {},
- root = doc.documentElement || {},
- W3C_MODEL = root[addEvent],
- eventSupport = W3C_MODEL ? addEvent : attachEvent,
-
- isDescendant = function (parent, child) {
- var node = child.parentNode;
- while (node != null) {
- if (node == parent) {
- return true;
- }
- node = node.parentNode;
- }
- },
-
- retrieveUid = function (obj, uid) {
- return (obj.__uid = uid || obj.__uid || __uid++);
- },
-
- retrieveEvents = function (element) {
- var uid = retrieveUid(element);
- return (registry[uid] = registry[uid] || {});
- },
-
- listener = W3C_MODEL ? function (element, type, fn, add) {
- element[add ? addEvent : removeEvent](type, fn, false);
- } : function (element, type, fn, add, custom) {
- custom && add && (element['_on' + custom] = element['_on' + custom] || 0);
- element[add ? attachEvent : detachEvent]('on' + type, fn);
- },
-
- nativeHandler = function (element, fn, args) {
- return function (event) {
- event = fixEvent(event || ((this.ownerDocument || this.document || this).parentWindow || context).event);
- return fn.apply(element, [event].concat(args));
- };
- },
-
- customHandler = function (element, fn, type, condition, args) {
- return function (event) {
- if (condition ? condition.call(this, event) : W3C_MODEL ? true : event && event.propertyName == '_on' + type || !event) {
- fn.apply(element, [event].concat(args));
- }
- };
- },
-
- addListener = function (element, orgType, fn, args) {
- var type = orgType.replace(stripName, ''),
- events = retrieveEvents(element),
- handlers = events[type] || (events[type] = {}),
- uid = retrieveUid(fn, orgType.replace(namespace, ''));
- if (handlers[uid]) {
- return element;
- }
- var custom = customEvents[type];
- if (custom) {
- fn = custom.condition ? customHandler(element, fn, type, custom.condition) : fn;
- type = custom.base || type;
- }
- var isNative = nativeEvents[type];
- fn = isNative ? nativeHandler(element, fn, args) : customHandler(element, fn, type, false, args);
- isNative = W3C_MODEL || isNative;
- if (type == 'unload') {
- var org = fn;
- fn = function () {
- removeListener(element, type, fn) && org();
- };
- }
- element[eventSupport] && listener(element, isNative ? type : 'propertychange', fn, true, !isNative && type);
- handlers[uid] = fn;
- fn.__uid = uid;
- return type == 'unload' ? element : (collected[retrieveUid(element)] = element);
- },
-
- removeListener = function (element, orgType, handler) {
- var uid, names, uids, i, events = retrieveEvents(element), type = orgType.replace(stripName, '');
- if (!events || !events[type]) {
- return element;
- }
- names = orgType.replace(namespace, '');
- uids = names ? names.split('.') : [handler.__uid];
- for (i = uids.length; i--;) {
- uid = uids[i];
- handler = events[type][uid];
- delete events[type][uid];
- if (element[eventSupport]) {
- type = customEvents[type] ? customEvents[type].base : type;
- var isNative = W3C_MODEL || nativeEvents[type];
- listener(element, isNative ? type : 'propertychange', handler, false, !isNative && type);
- }
- }
- return element;
- },
-
- del = function (selector, fn, $) {
- return function (e) {
- var array = typeof selector == 'string' ? $(selector, this) : selector;
- for (var target = e.target; target && target != this; target = target.parentNode) {
- for (var i = array.length; i--;) {
- if (array[i] == target) {
- return fn.apply(target, arguments);
- }
- }
- }
- };
- },
-
- add = function (element, events, fn, delfn, $) {
- if (typeof events == 'object' && !fn) {
- for (var type in events) {
- events.hasOwnProperty(type) && add(element, type, events[type]);
- }
- } else {
- var isDel = typeof fn == 'string', types = (isDel ? fn : events).split(' ');
- fn = isDel ? del(events, delfn, $) : fn;
- for (var i = types.length; i--;) {
- addListener(element, types[i], fn, Array.prototype.slice.call(arguments, isDel ? 4 : 3));
- }
- }
- return element;
- },
-
- remove = function (element, orgEvents, fn) {
- var k, type, events,
- isString = typeof(orgEvents) == 'string',
- names = isString && orgEvents.replace(namespace, ''),
- rm = removeListener,
- attached = retrieveEvents(element);
- if (isString && /\s/.test(orgEvents)) {
- orgEvents = orgEvents.split(' ');
- var i = orgEvents.length - 1;
- while (remove(element, orgEvents[i]) && i--) {}
- return element;
- }
- events = isString ? orgEvents.replace(stripName, '') : orgEvents;
- if (!attached || (isString && !attached[events])) {
- return element;
- }
- if (typeof fn == 'function') {
- rm(element, events, fn);
- } else if (names) {
- rm(element, orgEvents);
- } else {
- rm = events ? rm : remove;
- type = isString && events;
- events = events ? (fn || attached[events] || events) : attached;
- for (k in events) {
- events.hasOwnProperty(k) && rm(element, type || k, events[k]);
- }
- }
- return element;
- },
-
- fire = function (element, type, args) {
- var evt, k, i, types = type.split(' ');
- for (i = types.length; i--;) {
- type = types[i].replace(stripName, '');
- var isNative = nativeEvents[type],
- isNamespace = types[i].replace(namespace, ''),
- handlers = retrieveEvents(element)[type];
- if (isNamespace) {
- isNamespace = isNamespace.split('.');
- for (k = isNamespace.length; k--;) {
- handlers[isNamespace[k]] && handlers[isNamespace[k]].apply(element, args);
- }
- } else if (!args && element[eventSupport]) {
- fireListener(isNative, type, element);
- } else {
- for (k in handlers) {
- handlers.hasOwnProperty(k) && handlers[k].apply(element, args);
- }
- }
- }
- return element;
- },
-
- fireListener = W3C_MODEL ? function (isNative, type, element) {
- evt = document.createEvent(isNative ? "HTMLEvents" : "UIEvents");
- evt[isNative ? 'initEvent' : 'initUIEvent'](type, true, true, context, 1);
- element.dispatchEvent(evt);
- } : function (isNative, type, element) {
- isNative ? element.fireEvent('on' + type, document.createEventObject()) : element['_on' + type]++;
- },
-
- clone = function (element, from, type) {
- var events = retrieveEvents(from), obj, k;
- obj = type ? events[type] : events;
- for (k in obj) {
- obj.hasOwnProperty(k) && (type ? add : clone)(element, type || from, type ? obj[k] : k);
- }
- return element;
- },
-
- fixEvent = function (e) {
- var result = {};
- if (!e) {
- return result;
- }
- var type = e.type, target = e.target || e.srcElement;
- result.preventDefault = fixEvent.preventDefault(e);
- result.stopPropagation = fixEvent.stopPropagation(e);
- result.target = target && target.nodeType == 3 ? target.parentNode : target;
- if (~type.indexOf('key')) {
- result.keyCode = e.which || e.keyCode;
- } else if ((/click|mouse|menu/i).test(type)) {
- result.rightClick = e.which == 3 || e.button == 2;
- result.pos = { x: 0, y: 0 };
- if (e.pageX || e.pageY) {
- result.clientX = e.pageX;
- result.clientY = e.pageY;
- } else if (e.clientX || e.clientY) {
- result.clientX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
- result.clientY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
- }
- overOut.test(type) && (result.relatedTarget = e.relatedTarget || e[(type == 'mouseover' ? 'from' : 'to') + 'Element']);
- }
- for (var k in e) {
- if (!(k in result)) {
- result[k] = e[k];
- }
- }
- return result;
- };
-
- fixEvent.preventDefault = function (e) {
- return function () {
- if (e.preventDefault) {
- e.preventDefault();
- }
- else {
- e.returnValue = false;
- }
- };
- };
-
- fixEvent.stopPropagation = function (e) {
- return function () {
- if (e.stopPropagation) {
- e.stopPropagation();
- } else {
- e.cancelBubble = true;
- }
- };
- };
-
- var nativeEvents = { click: 1, dblclick: 1, mouseup: 1, mousedown: 1, contextmenu: 1, //mouse buttons
- mousewheel: 1, DOMMouseScroll: 1, //mouse wheel
- mouseover: 1, mouseout: 1, mousemove: 1, selectstart: 1, selectend: 1, //mouse movement
- keydown: 1, keypress: 1, keyup: 1, //keyboard
- orientationchange: 1, // mobile
- touchstart: 1, touchmove: 1, touchend: 1, touchcancel: 1, // touch
- gesturestart: 1, gesturechange: 1, gestureend: 1, // gesture
- focus: 1, blur: 1, change: 1, reset: 1, select: 1, submit: 1, //form elements
- load: 1, unload: 1, beforeunload: 1, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window
- error: 1, abort: 1, scroll: 1 }; //misc
-
- function check(event) {
- var related = event.relatedTarget;
- if (!related) {
- return related == null;
- }
- return (related != this && related.prefix != 'xul' && !/document/.test(this.toString()) && !isDescendant(this, related));
- }
-
- var customEvents = {
- mouseenter: { base: 'mouseover', condition: check },
- mouseleave: { base: 'mouseout', condition: check },
- mousewheel: { base: /Firefox/.test(navigator.userAgent) ? 'DOMMouseScroll' : 'mousewheel' }
- };
-
- var bean = { add: add, remove: remove, clone: clone, fire: fire };
-
- var clean = function (el) {
- var uid = remove(el).__uid;
- if (uid) {
- delete collected[uid];
- delete registry[uid];
- }
- };
-
- if (context[attachEvent]) {
- add(context, 'unload', function () {
- for (var k in collected) {
- collected.hasOwnProperty(k) && clean(collected[k]);
- }
- context.CollectGarbage && CollectGarbage();
- });
- }
-
- var oldBean = context.bean;
- bean.noConflict = function () {
- context.bean = oldBean;
- return this;
- };
-
- (typeof module !== 'undefined' && module.exports) ?
- (module.exports = bean) :
- (context['bean'] = bean);
-
-}(this);!function ($) {
- var b = bean.noConflict(),
- integrate = function (method, type, method2) {
- var _args = type ? [type] : [];
- return function () {
- for (var args, i = 0, l = this.length; i < l; i++) {
- args = [this[i]].concat(_args, Array.prototype.slice.call(arguments, 0));
- args.length == 4 && args.push($);
- !arguments.length && method == 'add' && type && (method = 'fire');
- b[method].apply(this, args);
- }
- return this;
- };
- };
-
- var add = integrate('add'),
- remove = integrate('remove'),
- fire = integrate('fire');
-
- var methods = {
-
- on: add,
- addListener: add,
- bind: add,
- listen: add,
- delegate: add,
-
- unbind: remove,
- unlisten: remove,
- removeListener: remove,
- undelegate: remove,
-
- emit: fire,
- trigger: fire,
-
- cloneEvents: integrate('clone'),
-
- hover: function (enter, leave) {
- for (var i = 0, l = this.length; i < l; i++) {
- b.add.call(this, this[i], 'mouseenter', enter);
- b.add.call(this, this[i], 'mouseleave', leave);
- }
- return this;
- }
- };
-
- var shortcuts = [
- 'blur', 'change', 'click', 'dblclick', 'error', 'focus', 'focusin',
- 'focusout', 'keydown', 'keypress', 'keyup', 'load', 'mousedown',
- 'mouseenter', 'mouseleave', 'mouseout', 'mouseover', 'mouseup',
- 'resize', 'scroll', 'select', 'submit', 'unload'
- ];
-
- for (var i = shortcuts.length; i--;) {
- var shortcut = shortcuts[i];
- methods[shortcut] = integrate('add', shortcut);
- }
-
- $.ender(methods, true);
-}(ender);
-/*!
- * bonzo.js - copyright @dedfat 2011
- * https://github.com/ded/bonzo
- * Follow our software http://twitter.com/dedfat
- * MIT License
- */
-!function (context) {
-
- var doc = context.document,
- html = doc.documentElement,
- query = null,
- byTag = 'getElementsByTagName',
- specialAttributes = /^checked|value|selected$/,
- specialTags = /select|map|fieldset|table|tbody|tr|colgroup/i,
- tagMap = { select: 'option', table: 'tbody', tr: 'td' },
- stateAttributes = /^checked|selected$/,
- ie = /msie/i.test(navigator.userAgent),
- uidList = [],
- uuids = 0,
- digit = /^-?[\d\.]+$/,
- px = 'px',
- // commonly used methods
- setAttribute = 'setAttribute',
- getAttribute = 'getAttribute',
- trimReplace = /(^\s*|\s*$)/g,
- unitless = { lineHeight: 1, zoom: 1, zIndex: 1, opacity: 1 };
-
- function classReg(c) {
- return new RegExp("(^|\\s+)" + c + "(\\s+|$)");
- }
-
- function each(ar, fn, scope) {
- for (var i = 0, l = ar.length; i < l; i++) {
- fn.call(scope || ar[i], ar[i], i, ar);
- }
- return ar;
- }
-
- var trim = String.prototype.trim ?
- function (s) {
- return s.trim();
- } :
- function (s) {
- return s.replace(trimReplace, '');
- };
-
- function camelize(s) {
- return s.replace(/-(.)/g, function (m, m1) {
- return m1.toUpperCase();
- });
- }
-
- function is(node) {
- return node && node.nodeName && node.nodeType == 1;
- }
-
- function some(ar, fn, scope) {
- for (var i = 0, j = ar.length; i < j; ++i) {
- if (fn.call(scope, ar[i], i, ar)) {
- return true;
- }
- }
- return false;
- }
-
- var getStyle = doc.defaultView && doc.defaultView.getComputedStyle ?
- function (el, property) {
- var value = null;
- if (property == 'float') {
- property = 'cssFloat';
- }
- var computed = doc.defaultView.getComputedStyle(el, '');
- computed && (value = computed[camelize(property)]);
- return el.style[property] || value;
-
- } : (ie && html.currentStyle) ?
-
- function (el, property) {
- property = camelize(property);
- property = property == 'float' ? 'styleFloat' : property;
-
- if (property == 'opacity') {
- var val = 100;
- try {
- val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity;
- } catch (e1) {
- try {
- val = el.filters('alpha').opacity;
- } catch (e2) {}
- }
- return val / 100;
- }
- var value = el.currentStyle ? el.currentStyle[property] : null;
- return el.style[property] || value;
- } :
-
- function (el, property) {
- return el.style[camelize(property)];
- };
-
- function insert(target, host, fn) {
- var i = 0, self = host || this, r = [];
- each(normalize(query ? query(target) : target), function (t) {
- each(self, function (el) {
- var n = el.cloneNode(true);
- fn(t, n);
- r[i] = n;
- i++;
- });
- }, this);
- each(r, function (e, i) {
- self[i] = e;
- });
- self.length = i;
- return self;
- }
-
- function xy(el, x, y) {
- var $el = bonzo(el),
- style = $el.css('position'),
- offset = $el.offset(),
- rel = 'relative',
- isRel = style == rel,
- delta = [parseInt($el.css('left'), 10), parseInt($el.css('top'), 10)];
-
- if (style == 'static') {
- $el.css('position', rel);
- style = rel;
- }
-
- isNaN(delta[0]) && (delta[0] = isRel ? 0 : el.offsetLeft);
- isNaN(delta[1]) && (delta[1] = isRel ? 0 : el.offsetTop);
-
- x !== null && (el.style.left = x - offset.left + delta[0] + 'px');
- y !== null && (el.style.top = y - offset.top + delta[1] + 'px');
-
- }
-
- function Bonzo(elements) {
- this.length = 0;
- this.original = elements;
- if (elements) {
- elements = typeof elements !== 'string' &&
- !elements.nodeType &&
- typeof elements.length !== 'undefined' ?
- elements :
- [elements];
- this.length = elements.length;
- for (var i = 0; i < elements.length; i++) {
- this[i] = elements[i];
- }
- }
- }
-
- Bonzo.prototype = {
-
- each: function (fn, scope) {
- return each(this, fn, scope);
- },
-
- map: function (fn, reject) {
- var m = [], n, i;
- for (i = 0; i < this.length; i++) {
- n = fn.call(this, this[i]);
- reject ? (reject(n) && m.push(n)) : m.push(n);
- }
- return m;
- },
-
- first: function () {
- return bonzo(this[0]);
- },
-
- last: function () {
- return bonzo(this[this.length - 1]);
- },
-
- html: function (h, text) {
- var method = text ?
- html.textContent == null ?
- 'innerText' :
- 'textContent' :
- 'innerHTML', m;
- function append(el, tag) {
- while (el.firstChild) {
- el.removeChild(el.firstChild);
- }
- each(normalize(h, tag), function (node) {
- el.appendChild(node);
- });
- }
- return typeof h !== 'undefined' ?
- this.each(function (el) {
- (m = el.tagName.match(specialTags)) ?
- append(el, m[0]) :
- (el[method] = h);
- }) :
- this[0] ? this[0][method] : '';
- },
-
- text: function (text) {
- return this.html(text, 1);
- },
-
- addClass: function (c) {
- return this.each(function (el) {
- this.hasClass(el, c) || (el.className = trim(el.className + ' ' + c));
- }, this);
- },
-
- removeClass: function (c) {
- return this.each(function (el) {
- this.hasClass(el, c) && (el.className = trim(el.className.replace(classReg(c), ' ')));
- }, this);
- },
-
- hasClass: function (el, c) {
- return typeof c == 'undefined' ?
- some(this, function (i) {
- return classReg(el).test(i.className);
- }) :
- classReg(c).test(el.className);
- },
-
- toggleClass: function (c, condition) {
- if (typeof condition !== 'undefined' && !condition) {
- return this;
- }
- return this.each(function (el) {
- this.hasClass(el, c) ?
- (el.className = trim(el.className.replace(classReg(c), ' '))) :
- (el.className = trim(el.className + ' ' + c));
- }, this);
- },
-
- show: function (type) {
- return this.each(function (el) {
- el.style.display = type || '';
- });
- },
-
- hide: function (elements) {
- return this.each(function (el) {
- el.style.display = 'none';
- });
- },
-
- append: function (node) {
- return this.each(function (el) {
- each(normalize(node), function (i) {
- el.appendChild(i);
- });
- });
- },
-
- prepend: function (node) {
- return this.each(function (el) {
- var first = el.firstChild;
- each(normalize(node), function (i) {
- el.insertBefore(i, first);
- });
- });
- },
-
- appendTo: function (target, host) {
- return insert.call(this, target, host, function (t, el) {
- t.appendChild(el);
- });
- },
-
- prependTo: function (target, host) {
- return insert.call(this, target, host, function (t, el) {
- t.insertBefore(el, t.firstChild);
- });
- },
-
- next: function () {
- return this.related('nextSibling');
- },
-
- previous: function () {
- return this.related('previousSibling');
- },
-
- related: function (method) {
- return this.map(
- function (el) {
- el = el[method];
- while (el && el.nodeType !== 1) {
- el = el[method];
- }
- return el || 0;
- },
- function (el) {
- return el;
- }
- );
- },
-
- before: function (node) {
- return this.each(function (el) {
- each(bonzo.create(node), function (i) {
- el.parentNode.insertBefore(i, el);
- });
- });
- },
-
- after: function (node) {
- return this.each(function (el) {
- each(bonzo.create(node), function (i) {
- el.parentNode.insertBefore(i, el.nextSibling);
- });
- });
- },
-
- insertBefore: function (target, host) {
- return insert.call(this, target, host, function (t, el) {
- t.parentNode.insertBefore(el, t);
- });
- },
-
- insertAfter: function (target, host) {
- return insert.call(this, target, host, function (t, el) {
- var sibling = t.nextSibling;
- if (sibling) {
- t.parentNode.insertBefore(el, sibling);
- }
- else {
- t.parentNode.appendChild(el);
- }
- });
- },
-
- css: function (o, v) {
- // is this a request for just getting a style?
- if (v === undefined && typeof o == 'string') {
- return getStyle(this[0], o);
- }
- var iter = o;
- if (typeof o == 'string') {
- iter = {};
- iter[o] = v;
- }
-
- if (ie && iter.opacity) {
- // oh this 'ol gamut
- iter.filter = 'alpha(opacity=' + (iter.opacity * 100) + ')';
- // give it layout
- iter.zoom = o.zoom || 1;
- delete iter.opacity;
- }
-
- if (v = iter['float']) {
- // float is a reserved style word. w3 uses cssFloat, ie uses styleFloat
- ie ? (iter.styleFloat = v) : (iter.cssFloat = v);
- delete iter['float'];
- }
-
- var fn = function (el, p, v) {
- for (var k in iter) {
- if (iter.hasOwnProperty(k)) {
- v = iter[k];
- // change "5" to "5px" - unless you're line-height, which is allowed
- (p = camelize(k)) && digit.test(v) && !(p in unitless) && (v += px);
- el.style[p] = v;
- }
- }
- };
- return this.each(fn);
- },
-
- offset: function (x, y) {
- if (x || y) {
- return this.each(function (el) {
- xy(el, x, y);
- });
- }
- var el = this[0];
- var width = el.offsetWidth;
- var height = el.offsetHeight;
- var top = el.offsetTop;
- var left = el.offsetLeft;
- while (el = el.offsetParent) {
- top = top + el.offsetTop;
- left = left + el.offsetLeft;
- }
-
- return {
- top: top,
- left: left,
- height: height,
- width: width
- };
- },
-
- attr: function (k, v) {
- var el = this[0];
- return typeof v == 'undefined' ?
- specialAttributes.test(k) ?
- stateAttributes.test(k) && typeof el[k] == 'string' ?
- true : el[k] : el[getAttribute](k) :
- this.each(function (el) {
- k == 'value' ? (el.value = v) : el[setAttribute](k, v);
- });
- },
-
- val: function (s) {
- return (typeof s == 'string') ? this.attr('value', s) : this[0].value;
- },
-
- removeAttr: function (k) {
- return this.each(function (el) {
- el.removeAttribute(k);
- });
- },
-
- data: function (k, v) {
- var el = this[0];
- if (typeof v === 'undefined') {
- el[getAttribute]('data-node-uid') || el[setAttribute]('data-node-uid', ++uuids);
- var uid = el[getAttribute]('data-node-uid');
- uidList[uid] || (uidList[uid] = {});
- return uidList[uid][k];
- } else {
- return this.each(function (el) {
- el[getAttribute]('data-node-uid') || el[setAttribute]('data-node-uid', ++uuids);
- var uid = el[getAttribute]('data-node-uid');
- var o = {};
- o[k] = v;
- uidList[uid] = o;
- });
- }
- },
-
- remove: function () {
- return this.each(function (el) {
- el.parentNode && el.parentNode.removeChild(el);
- });
- },
-
- empty: function () {
- return this.each(function (el) {
- while (el.firstChild) {
- el.removeChild(el.firstChild);
- }
- });
- },
-
- detach: function () {
- return this.map(function (el) {
- return el.parentNode.removeChild(el);
- });
- },
-
- scrollTop: function (y) {
- return scroll.call(this, null, y, 'y');
- },
-
- scrollLeft: function (x) {
- return scroll.call(this, x, null, 'x');
- }
- };
-
- function normalize(node, tag) {
- return typeof node == 'string' ? bonzo.create(node, tag) : is(node) ? [node] : node;
- }
-
- function scroll(x, y, type) {
- var el = this[0];
- if (x == null && y == null) {
- return (isBody(el) ? getWindowScroll() : { x: el.scrollLeft, y: el.scrollTop })[type];
- }
- if (isBody(el)) {
- window.scrollTo(x, y);
- } else {
- x != null && (el.scrollLeft = x);
- y != null && (el.scrollTop = y);
- }
- return this;
- }
-
- function isBody(element) {
- return element === window || (/^(?:body|html)$/i).test(element.tagName);
- }
-
- function getWindowScroll() {
- return { x: window.pageXOffset || html.scrollLeft, y: window.pageYOffset || html.scrollTop };
- }
-
- function bonzo(els, host) {
- return new Bonzo(els, host);
- }
-
- bonzo.setQueryEngine = function (q) {
- query = q;
- delete bonzo.setQueryEngine;
- };
-
- bonzo.aug = function (o, target) {
- for (var k in o) {
- o.hasOwnProperty(k) && ((target || Bonzo.prototype)[k] = o[k]);
- }
- };
-
- bonzo.create = function (node, tag) {
- return typeof node == 'string' ?
- function () {
- var t = tag ? tagMap[tag.toLowerCase()] : null;
- var el = doc.createElement(t || 'div'), els = [];
- if (tag) {
- var bitches = node.match(new RegExp("<" + t + ">.+?<\\/" + t + ">", "g"));
- each(bitches, function (m) {
- m = m.replace(/<(.+)>(.+?)<\/\1>/, '$2');
- var bah = doc.createElement(t);
- bah.appendChild(doc.createDocumentFragment(m));
- el.appendChild(bah);
- });
- } else {
- el.innerHTML = node;
- }
- var nodes = el.childNodes;
- el = el.firstChild;
- els.push(el);
- while (el = el.nextSibling) {
- (el.nodeType == 1) && els.push(el);
- }
- return els;
-
- }() : is(node) ? [node.cloneNode(true)] : [];
- };
-
- bonzo.doc = function () {
- var w = html.scrollWidth,
- h = html.scrollHeight,
- vp = this.viewport();
- return {
- width: Math.max(w, vp.width),
- height: Math.max(h, vp.height)
- };
- };
-
- bonzo.firstChild = function (el) {
- for (var c = el.childNodes, i = 0, j = (c && c.length) || 0, e; i < j; i++) {
- if (c[i].nodeType === 1) {
- e = c[j = i];
- }
- }
- return e;
- };
-
- bonzo.viewport = function () {
- var h = self.innerHeight,
- w = self.innerWidth;
- ie && (h = html.clientHeight) && (w = html.clientWidth);
- return {
- width: w,
- height: h
- };
- };
-
- bonzo.isAncestor = 'compareDocumentPosition' in html ?
- function (container, element) {
- return (container.compareDocumentPosition(element) & 16) == 16;
- } : 'contains' in html ?
- function (container, element) {
- return container !== element && container.contains(element);
- } :
- function (container, element) {
- while (element = element.parentNode) {
- if (element === container) {
- return true;
- }
- }
- return false;
- };
-
- var old = context.bonzo;
- bonzo.noConflict = function () {
- context.bonzo = old;
- return this;
- };
- context['bonzo'] = bonzo;
-
-}(this);!function ($) {
-
- var b = bonzo;
- b.setQueryEngine($);
- $.ender(b);
- $.ender(b(), true);
- $.ender({
- create: function (node) {
- return $(b.create(node));
- }
- });
-
- $.id = function (id) {
- return $([document.getElementById(id)]);
- };
-
- function indexOf(ar, val) {
- for (var i = 0; i < ar.length; i++) {
- if (ar[i] === val) {
- return i;
- }
- }
- return -1;
- }
-
- function uniq(ar) {
- var a = [], i, j;
- label:
- for (i = 0; i < ar.length; i++) {
- for (j = 0; j < a.length; j++) {
- if (a[j] == ar[i]) {
- continue label;
- }
- }
- a[a.length] = ar[i];
- }
- return a;
- }
-
- $.ender({
- parents: function (selector, closest) {
- var collection = $(selector), j, k, p, r = [];
- for (j = 0, k = this.length; j < k; j++) {
- p = this[j];
- while (p = p.parentNode) {
- if (indexOf(collection, p) !== -1) {
- r.push(p);
- if (closest) break;
- }
- }
- }
- return $(uniq(r));
- },
-
- closest: function (selector) {
- return this.parents(selector, true);
- },
-
- first: function () {
- return $(this[0]);
- },
-
- last: function () {
- return $(this[this.length - 1]);
- },
-
- next: function () {
- return $(b(this).next());
- },
-
- previous: function () {
- return $(b(this).previous());
- },
-
- appendTo: function (t) {
- return b(this.selector).appendTo(t, this);
- },
-
- prependTo: function (t) {
- return b(this.selector).prependTo(t, this);
- },
-
- insertAfter: function (t) {
- return b(this.selector).insertAfter(t, this);
- },
-
- insertBefore: function (t) {
- return b(this.selector).insertBefore(t, this);
- },
-
- siblings: function () {
- var i, l, p, r = [];
- for (i = 0, l = this.length; i < l; i++) {
- p = this[i];
- while (p = p.previousSibling) {
- p.nodeType == 1 && r.push(p);
- }
- p = this[i];
- while (p = p.nextSibling) {
- p.nodeType == 1 && r.push(p);
- }
- }
- return $(r);
- },
-
- children: function () {
- var el, r = [];
- for (i = 0, l = this.length; i < l; i++) {
- if (!(el = b.firstChild(this[i]))) {
- continue;
- }
- r.push(el);
- while (el = el.nextSibling) {
- el.nodeType == 1 && r.push(el);
- }
- }
- return $(uniq(r));
- },
-
- height: function (v) {
- return v ? this.css('height', v) : parseInt(this.css('height'), 10);
- },
-
- width: function (v) {
- return v ? this.css('width', v) : parseInt(this.css('width'), 10);
- }
- }, true);
-
-}(ender || $);
-
-!function () { var exports = {}, module = { exports: exports }; !function (doc) {
- var loaded = 0, fns = [], ol, f = false,
- testEl = doc.createElement('a'),
- domContentLoaded = 'DOMContentLoaded',
- addEventListener = 'addEventListener',
- onreadystatechange = 'onreadystatechange';
-
- /^loade|c/.test(doc.readyState) && (loaded = 1);
-
- function flush() {
- loaded = 1;
- for (var i = 0, l = fns.length; i < l; i++) {
- fns[i]();
- }
- }
- doc[addEventListener] && doc[addEventListener](domContentLoaded, function fn() {
- doc.removeEventListener(domContentLoaded, fn, f);
- flush();
- }, f);
-
-
- testEl.doScroll && doc.attachEvent(onreadystatechange, (ol = function ol() {
- if (/^c/.test(doc.readyState)) {
- doc.detachEvent(onreadystatechange, ol);
- flush();
- }
- }));
-
- var domReady = testEl.doScroll ?
- function (fn) {
- self != top ?
- !loaded ?
- fns.push(fn) :
- fn() :
- !function () {
- try {
- testEl.doScroll('left');
- } catch (e) {
- return setTimeout(function() {
- domReady(fn);
- }, 50);
- }
- fn();
- }();
- } :
- function (fn) {
- loaded ? fn() : fns.push(fn);
- };
-
- (typeof module !== 'undefined') && module.exports ?
- (module.exports = {domReady: domReady}) :
- (window.domReady = domReady);
-
-}(document); $.ender(module.exports); }.call($);
-/*!
- * qwery.js - copyright @dedfat
- * https://github.com/ded/qwery
- * Follow our software http://twitter.com/dedfat
- * MIT License
- */
-
-!function (context, doc) {
-
- var c, i, j, k, l, m, o, p, r, v,
- el, node, len, found, classes, item, items, token,
- id = /#([\w\-]+)/,
- clas = /\.[\w\-]+/g,
- idOnly = /^#([\w\-]+$)/,
- classOnly = /^\.([\w\-]+)$/,
- tagOnly = /^([\w\-]+)$/,
- tagAndOrClass = /^([\w]+)?\.([\w\-]+)$/,
- html = doc.documentElement,
- tokenizr = /\s(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\])/,
- specialChars = /([.*+?\^=!:${}()|\[\]\/\\])/g,
- simple = /^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/,
- attr = /\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/,
- chunker = new RegExp(simple.source + '(' + attr.source + ')?');
-
- function array(ar) {
- r = [];
- for (i = 0, len = ar.length; i < len; i++) {
- r[i] = ar[i];
- }
- return r;
- }
-
- var cache = function () {
- this.c = {};
- };
- cache.prototype = {
- g: function (k) {
- return this.c[k] || undefined;
- },
- s: function (k, v) {
- this.c[k] = v;
- return v;
- }
- };
-
- var classCache = new cache(),
- cleanCache = new cache(),
- attrCache = new cache(),
- tokenCache = new cache();
-
- function q(query) {
- return query.match(chunker);
- }
-
- function interpret(whole, tag, idsAndClasses, wholeAttribute, attribute, qualifier, value) {
- var m, c, k;
- if (tag && this.tagName.toLowerCase() !== tag) {
- return false;
- }
- if (idsAndClasses && (m = idsAndClasses.match(id)) && m[1] !== this.id) {
- return false;
- }
- if (idsAndClasses && (classes = idsAndClasses.match(clas))) {
- for (i = classes.length; i--;) {
- c = classes[i].slice(1);
- if (!(classCache.g(c) || classCache.s(c, new RegExp('(^|\\s+)' + c + '(\\s+|$)'))).test(this.className)) {
- return false;
- }
- }
- }
- if (wholeAttribute && !value) {
- o = this.attributes;
- for (k in o) {
- if (Object.prototype.hasOwnProperty.call(o, k) && (o[k].name || k) == attribute) {
- return this;
- }
- }
- }
- if (wholeAttribute && !checkAttr(qualifier, this.getAttribute(attribute) || '', value)) {
- return false;
- }
- return this;
- }
-
- function loopAll(tokens) {
- var r = [], token = tokens.pop(), intr = q(token), tag = intr[1] || '*', i, l, els,
- root = tokens.length && (m = tokens[0].match(idOnly)) ? doc.getElementById(m[1]) : doc;
- if (!root) {
- return r;
- }
- els = root.getElementsByTagName(tag);
- for (i = 0, l = els.length; i < l; i++) {
- el = els[i];
- if (item = interpret.apply(el, intr)) {
- r.push(item);
- }
- }
- return r;
- }
-
- function clean(s) {
- return cleanCache.g(s) || cleanCache.s(s, s.replace(specialChars, '\\$1'));
- }
-
- function checkAttr(qualify, actual, val) {
- switch (qualify) {
- case '=':
- return actual == val;
- case '^=':
- return actual.match(attrCache.g('^=' + val) || attrCache.s('^=' + val, new RegExp('^' + clean(val))));
- case '$=':
- return actual.match(attrCache.g('$=' + val) || attrCache.s('$=' + val, new RegExp(clean(val) + '$')));
- case '*=':
- return actual.match(attrCache.g(val) || attrCache.s(val, new RegExp(clean(val))));
- case '~=':
- return actual.match(attrCache.g('~=' + val) || attrCache.s('~=' + val, new RegExp('(?:^|\\s+)' + clean(val) + '(?:\\s+|$)')));
- case '|=':
- return actual.match(attrCache.g('|=' + val) || attrCache.s('|=' + val, new RegExp('^' + clean(val) + '(-|$)')));
- }
- return false;
- }
-
- function _qwery(selector) {
- var r = [], ret = [], i, l,
- tokens = tokenCache.g(selector) || tokenCache.s(selector, selector.split(tokenizr));
- tokens = tokens.slice(0);
- if (!tokens.length) {
- return r;
- }
- r = loopAll(tokens);
- if (!tokens.length) {
- return r;
- }
- // loop through all descendent tokens
- for (j = 0, l = r.length, k = 0; j < l; j++) {
- node = r[j];
- p = node;
- // loop through each token
- for (i = tokens.length; i--;) {
- z: // loop through parent nodes
- while (p !== html && (p = p.parentNode)) {
- if (found = interpret.apply(p, q(tokens[i]))) {
- break z;
- }
- }
- }
- found && (ret[k++] = node);
- }
- return ret;
- }
-
- function boilerPlate(selector, _root, fn) {
- var root = (typeof _root == 'string') ? fn(_root)[0] : (_root || doc);
- if (selector === window || isNode(selector)) {
- return !_root || (selector !== window && isNode(root) && isAncestor(selector, root)) ? [selector] : [];
- }
- if (selector && typeof selector === 'object' && isFinite(selector.length)) {
- return array(selector);
- }
- if (m = selector.match(idOnly)) {
- return (el = doc.getElementById(m[1])) ? [el] : [];
- }
- if (m = selector.match(tagOnly)) {
- return array(root.getElementsByTagName(m[1]));
- }
- return false;
- }
-
- function isNode(el) {
- return (el && el.nodeType && (el.nodeType == 1 || el.nodeType == 9));
- }
-
- function uniq(ar) {
- var a = [], i, j;
- label:
- for (i = 0; i < ar.length; i++) {
- for (j = 0; j < a.length; j++) {
- if (a[j] == ar[i]) {
- continue label;
- }
- }
- a[a.length] = ar[i];
- }
- return a;
- }
-
- function qwery(selector, _root) {
- var root = (typeof _root == 'string') ? qwery(_root)[0] : (_root || doc);
- if (!root || !selector) {
- return [];
- }
- if (m = boilerPlate(selector, _root, qwery)) {
- return m;
- }
- return select(selector, root);
- }
-
- var isAncestor = 'compareDocumentPosition' in html ?
- function (element, container) {
- return (container.compareDocumentPosition(element) & 16) == 16;
- } : 'contains' in html ?
- function (element, container) {
- container = container == doc || container == window ? html : container;
- return container !== element && container.contains(element);
- } :
- function (element, container) {
- while (element = element.parentNode) {
- if (element === container) {
- return 1;
- }
- }
- return 0;
- },
-
- select = (doc.querySelector && doc.querySelectorAll) ?
- function (selector, root) {
- if (doc.getElementsByClassName && (m = selector.match(classOnly))) {
- return array((root).getElementsByClassName(m[1]));
- }
- return array((root).querySelectorAll(selector));
- } :
- function (selector, root) {
- var result = [], collection, collections = [], i;
- if (m = selector.match(tagAndOrClass)) {
- items = root.getElementsByTagName(m[1] || '*');
- r = classCache.g(m[2]) || classCache.s(m[2], new RegExp('(^|\\s+)' + m[2] + '(\\s+|$)'));
- for (i = 0, l = items.length, j = 0; i < l; i++) {
- r.test(items[i].className) && (result[j++] = items[i]);
- }
- return result;
- }
- for (i = 0, items = selector.split(','), l = items.length; i < l; i++) {
- collections[i] = _qwery(items[i]);
- }
- for (i = 0, l = collections.length; i < l && (collection = collections[i]); i++) {
- var ret = collection;
- if (root !== doc) {
- ret = [];
- for (j = 0, m = collection.length; j < m && (element = collection[j]); j++) {
- // make sure element is a descendent of root
- isAncestor(element, root) && ret.push(element);
- }
- }
- result = result.concat(ret);
- }
- return uniq(result);
- };
-
- qwery.uniq = uniq;
- var oldQwery = context.qwery;
- qwery.noConflict = function () {
- context.qwery = oldQwery;
- return this;
- };
- context['qwery'] = qwery;
-
-}(this, document);!function (doc) {
- var q = qwery.noConflict();
- function create(node, root) {
- var el = (root || doc).createElement('div'), els = [];
- el.innerHTML = node;
- var nodes = el.childNodes;
- el = el.firstChild;
- els.push(el);
- while (el = el.nextSibling) {
- (el.nodeType == 1) && els.push(el);
- }
- return els;
- };
- $._select = function (s, r) {
- return /^\s*</.test(s) ? create(s, r) : q(s, r);
- };
- $.ender({
- find: function (s) {
- var r = [], i, l, j, k, els;
- for (i = 0, l = this.length; i < l; i++) {
- els = q(s, this[i]);
- for (j = 0, k = els.length; j < k; j++) {
- r.push(els[j]);
- }
- }
- return $(q.uniq(r));
- }
- , and: function (s) {
- var plus = $(s);
- for (var i = this.length, j = 0, l = this.length + plus.length; i < l; i++, j++) {
- this[i] = plus[j];
- }
- return this;
- }
- }, true);
-}(document);
diff --git a/themes/classic/source/javascripts/libs/jXHR.js b/themes/classic/source/javascripts/libs/jXHR.js
deleted file mode 100644
index 6775655c..00000000
--- a/themes/classic/source/javascripts/libs/jXHR.js
+++ /dev/null
@@ -1,85 +0,0 @@
-// jXHR.js (JSON-P XHR)
-// v0.1 (c) Kyle Simpson
-// MIT License
-
-(function(global){
- var SETTIMEOUT = global.setTimeout, // for better compression
- doc = global.document,
- callback_counter = 0;
-
- global.jXHR = function() {
- var script_url,
- script_loaded,
- jsonp_callback,
- scriptElem,
- publicAPI = null;
-
- function removeScript() { try { scriptElem.parentNode.removeChild(scriptElem); } catch (err) { } }
-
- function reset() {
- script_loaded = false;
- script_url = "";
- removeScript();
- scriptElem = null;
- fireReadyStateChange(0);
- }
-
- function ThrowError(msg) {
- try { publicAPI.onerror.call(publicAPI,msg,script_url); } catch (err) { throw new Error(msg); }
- }
-
- function handleScriptLoad() {
- if ((this.readyState && this.readyState!=="complete" && this.readyState!=="loaded") || script_loaded) { return; }
- this.onload = this.onreadystatechange = null; // prevent memory leak
- script_loaded = true;
- if (publicAPI.readyState !== 4) ThrowError("Script failed to load ["+script_url+"].");
- removeScript();
- }
-
- function fireReadyStateChange(rs,args) {
- args = args || [];
- publicAPI.readyState = rs;
- if (typeof publicAPI.onreadystatechange === "function") publicAPI.onreadystatechange.apply(publicAPI,args);
- }
-
- publicAPI = {
- onerror:null,
- onreadystatechange:null,
- readyState:0,
- open:function(method,url){
- reset();
- internal_callback = "cb"+(callback_counter++);
- (function(icb){
- global.jXHR[icb] = function() {
- try { fireReadyStateChange.call(publicAPI,4,arguments); }
- catch(err) {
- publicAPI.readyState = -1;
- ThrowError("Script failed to run ["+script_url+"].");
- }
- global.jXHR[icb] = null;
- };
- })(internal_callback);
- script_url = url.replace(/=\?/,"=jXHR."+internal_callback);
- fireReadyStateChange(1);
- },
- send:function(){
- SETTIMEOUT(function(){
- scriptElem = doc.createElement("script");
- scriptElem.setAttribute("type","text/javascript");
- scriptElem.onload = scriptElem.onreadystatechange = function(){handleScriptLoad.call(scriptElem);};
- scriptElem.setAttribute("src",script_url);
- doc.getElementsByTagName("head")[0].appendChild(scriptElem);
- },0);
- fireReadyStateChange(2);
- },
- setRequestHeader:function(){}, // noop
- getResponseHeader:function(){return "";}, // basically noop
- getAllResponseHeaders:function(){return [];} // ditto
- };
-
- reset();
-
- return publicAPI;
- };
-})(window);
-
diff --git a/themes/classic/source/javascripts/libs/swfobject-dynamic.js b/themes/classic/source/javascripts/libs/swfobject-dynamic.js
deleted file mode 100644
index b0216145..00000000
--- a/themes/classic/source/javascripts/libs/swfobject-dynamic.js
+++ /dev/null
@@ -1,298 +0,0 @@
-/*! SWFObject v2.2 <http://code.google.com/p/swfobject/>
- is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
-*/
-
-var swfobject = function() {
-
- var UNDEF = "undefined",
- OBJECT = "object",
- SHOCKWAVE_FLASH = "Shockwave Flash",
- SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
- FLASH_MIME_TYPE = "application/x-shockwave-flash",
- EXPRESS_INSTALL_ID = "SWFObjectExprInst",
-
- win = window,
- doc = document,
- nav = navigator,
-
- plugin = false,
- regObjArr = [],
- objIdArr = [],
- storedAltContent,
- storedAltContentId,
- storedCallbackFn,
- storedCallbackObj,
- autoHideShow = true,
-
- /* Centralized function for browser feature detection
- - User agent string detection is only used when no good alternative is possible
- - Is executed directly for optimal performance
- */
- ua = function() {
- var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
- u = nav.userAgent.toLowerCase(),
- p = nav.platform.toLowerCase(),
- windows = p ? /win/.test(p) : /win/.test(u),
- mac = p ? /mac/.test(p) : /mac/.test(u),
- webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
- ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
- playerVersion = [0,0,0],
- d = null;
- if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
- d = nav.plugins[SHOCKWAVE_FLASH].description;
- if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
- plugin = true;
- ie = false; // cascaded feature detection for Internet Explorer
- d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
- playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
- playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
- playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
- }
- }
- else if (typeof win.ActiveXObject != UNDEF) {
- try {
- var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
- if (a) { // a will return null when ActiveX is disabled
- d = a.GetVariable("$version");
- if (d) {
- ie = true; // cascaded feature detection for Internet Explorer
- d = d.split(" ")[1].split(",");
- playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
- }
- }
- }
- catch(e) {}
- }
- return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
- }()
-
-
- /* Main function
- - Will preferably execute onDomLoad, otherwise onload (as a fallback)
- */
- function main() {
- if (plugin) { testPlayerVersion(); }
- else { matchVersions(); }
- }
-
- /* Detect the Flash Player version for non-Internet Explorer browsers
- - Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
- a. Both release and build numbers can be detected
- b. Avoid wrong descriptions by corrupt installers provided by Adobe
- c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
- - Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
- */
- function testPlayerVersion() {
- var b = doc.getElementsByTagName("body")[0];
- var o = createElement(OBJECT);
- o.setAttribute("type", FLASH_MIME_TYPE);
- var t = b.appendChild(o);
- if (t) {
- var counter = 0;
- (function(){
- if (typeof t.GetVariable != UNDEF) {
- var d = t.GetVariable("$version");
- if (d) {
- d = d.split(" ")[1].split(",");
- ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
- }
- }
- else if (counter < 10) {
- counter++;
- setTimeout(arguments.callee, 10);
- return;
- }
- b.removeChild(o);
- t = null;
- matchVersions();
- })();
- }
- else {
- matchVersions();
- }
- }
-
-
- /* Cross-browser dynamic SWF creation
- */
- function createSWF(attObj, parObj, id) {
- var r, el = getElementById(id);
- if (ua.wk && ua.wk < 312) { return r; }
- if (el) {
- if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
- attObj.id = id;
- }
- if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
- var att = "";
- for (var i in attObj) {
- if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
- if (i.toLowerCase() == "data") {
- parObj.movie = attObj[i];
- }
- else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
- att += ' class="' + attObj[i] + '"';
- }
- else if (i.toLowerCase() != "classid") {
- att += ' ' + i + '="' + attObj[i] + '"';
- }
- }
- }
- var par = "";
- for (var j in parObj) {
- if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
- par += '<param name="' + j + '" value="' + parObj[j] + '" />';
- }
- }
- el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
- objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
- r = getElementById(attObj.id);
- }
- else { // well-behaving browsers
- var o = createElement(OBJECT);
- o.setAttribute("type", FLASH_MIME_TYPE);
- for (var m in attObj) {
- if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
- if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
- o.setAttribute("class", attObj[m]);
- }
- else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
- o.setAttribute(m, attObj[m]);
- }
- }
- }
- for (var n in parObj) {
- if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
- createObjParam(o, n, parObj[n]);
- }
- }
- el.parentNode.replaceChild(o, el);
- r = o;
- }
- }
- return r;
- }
-
- function createObjParam(el, pName, pValue) {
- var p = createElement("param");
- p.setAttribute("name", pName);
- p.setAttribute("value", pValue);
- el.appendChild(p);
- }
-
- /* Cross-browser SWF removal
- - Especially needed to safely and completely remove a SWF in Internet Explorer
- */
- /* Functions to optimize JavaScript compression
- */
- function getElementById(id) {
- var el = null;
- try {
- el = doc.getElementById(id);
- }
- catch (e) {}
- return el;
- }
-
- function createElement(el) {
- return doc.createElement(el);
- }
-
- /* Flash Player and SWF content version matching
- */
- function hasPlayerVersion(rv) {
- var pv = ua.pv, v = rv.split(".");
- v[0] = parseInt(v[0], 10);
- v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
- v[2] = parseInt(v[2], 10) || 0;
- return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
- }
-
-
- /* Filter to avoid XSS attacks
- */
- function urlEncodeIfNecessary(s) {
- var regex = /[\\\"<>\.;]/;
- var hasBadChars = regex.exec(s) != null;
- return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
- }
-
- return {
- /* Public API
- - Reference: http://code.google.com/p/swfobject/wiki/documentation
- */
-
- embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, flashvarsObj, parObj, attObj, callbackFn) {
- var callbackObj = {success:false, id:replaceElemIdStr};
- if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
- widthStr += ""; // auto-convert to string
- heightStr += "";
- var att = {};
- if (attObj && typeof attObj === OBJECT) {
- for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
- att[i] = attObj[i];
- }
- }
- att.data = swfUrlStr;
- att.width = widthStr;
- att.height = heightStr;
- var par = {};
- if (parObj && typeof parObj === OBJECT) {
- for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
- par[j] = parObj[j];
- }
- }
- if (flashvarsObj && typeof flashvarsObj === OBJECT) {
- for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
- if (typeof par.flashvars != UNDEF) {
- par.flashvars += "&" + k + "=" + flashvarsObj[k];
- }
- else {
- par.flashvars = k + "=" + flashvarsObj[k];
- }
- }
- }
- if (hasPlayerVersion(swfVersionStr)) { // create SWF
- var obj = createSWF(att, par, replaceElemIdStr);
- callbackObj.success = true;
- callbackObj.ref = obj;
- }
- if (callbackFn) { callbackFn(callbackObj); }
- }
- else if (callbackFn) { callbackFn(callbackObj); }
- },
-
- ua: ua,
-
- getFlashPlayerVersion: function() {
- return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
- },
-
- hasFlashPlayerVersion: hasPlayerVersion,
-
- createSWF: function(attObj, parObj, replaceElemIdStr) {
- if (ua.w3) {
- return createSWF(attObj, parObj, replaceElemIdStr);
- }
- else {
- return undefined;
- }
- },
-
- getQueryParamValue: function(param) {
- var q = doc.location.search || doc.location.hash;
- if (q) {
- if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
- if (param == null) {
- return urlEncodeIfNecessary(q);
- }
- var pairs = q.split("&");
- for (var i = 0; i < pairs.length; i++) {
- if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
- return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
- }
- }
- }
- return "";
- }
- };
-}();
diff --git a/themes/classic/source/javascripts/modernizr-2.0.js b/themes/classic/source/javascripts/modernizr-2.0.js
deleted file mode 100644
index b9846c4b..00000000
--- a/themes/classic/source/javascripts/modernizr-2.0.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/* Modernizr 2.0.4 (Custom Build) | MIT & BSD
- * Contains: video | iepp | respond | mq | cssclasses | teststyles | testprop | testallprops | prefixes | domprefixes | load
- * Build URL: http://j.mp/m1H1Y1
- */
-;window.Modernizr=function(a,b,c){function D(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+o.join(c+" ")+c).split(" ");return C(d,b)}function C(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function B(a,b){return!!~(""+a).indexOf(b)}function A(a,b){return typeof a===b}function z(a,b){return y(n.join(a+";")+(b||""))}function y(a){k.cssText=a}var d="2.0.4",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l,m=Object.prototype.toString,n=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),o="Webkit Moz O ms Khtml".split(" "),p={},q={},r={},s=[],t=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);f=["&shy;","<style>",a,"</style>"].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k);return!!h},u=function(b){if(a.matchMedia)return matchMedia(b).matches;var c;t("@media "+b+" { #"+i+" { position: absolute; } }",function(b){c=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position=="absolute"});return c},v,w={}.hasOwnProperty,x;!A(w,c)&&!A(w.call,c)?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],c)},p.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}}catch(e){}return c};for(var E in p)x(p,E)&&(v=E.toLowerCase(),e[v]=p[E](),s.push((e[v]?"":"no-")+v));y(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b<g)a.createElement(f[b])}a.iepp=a.iepp||{};var d=a.iepp,e=d.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",f=e.split("|"),g=f.length,h=new RegExp("(^|\\s)("+e+")","gi"),i=new RegExp("<(/*)("+e+")","gi"),j=/^\s*[\{\}]\s*$/,k=new RegExp("(^|[^\\n]*?\\s)("+e+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),l=b.createDocumentFragment(),m=b.documentElement,n=m.firstChild,o=b.createElement("body"),p=b.createElement("style"),q=/print|all/,r;d.getCSS=function(a,b){if(a+""===c)return"";var e=-1,f=a.length,g,h=[];while(++e<f){g=a[e];if(g.disabled)continue;b=g.media||b,q.test(b)&&h.push(d.getCSS(g.imports,b),g.cssText),b="all"}return h.join("")},d.parseCSS=function(a){var b=[],c;while((c=k.exec(a))!=null)b.push(((j.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(h,"$1.iepp_$2")+c[4]);return b.join("\n")},d.writeHTML=function(){var a=-1;r=r||b.body;while(++a<g){var c=b.getElementsByTagName(f[a]),d=c.length,e=-1;while(++e<d)c[e].className.indexOf("iepp_")<0&&(c[e].className+=" iepp_"+f[a])}l.appendChild(r),m.appendChild(o),o.className=r.className,o.id=r.id,o.innerHTML=r.innerHTML.replace(i,"<$1font")},d._beforePrint=function(){p.styleSheet.cssText=d.parseCSS(d.getCSS(b.styleSheets,"all")),d.writeHTML()},d.restoreHTML=function(){o.innerHTML="",m.removeChild(o),m.appendChild(r)},d._afterPrint=function(){d.restoreHTML(),p.styleSheet.cssText=""},s(b),s(l);d.disablePP||(n.insertBefore(p,n.firstChild),p.media="print",p.className="iepp-printshim",a.attachEvent("onbeforeprint",d._beforePrint),a.attachEvent("onafterprint",d._afterPrint))}(a,b),e._version=d,e._prefixes=n,e._domPrefixes=o,e.mq=u,e.testProp=function(a){return C([a])},e.testAllProps=D,e.testStyles=t,g.className=g.className.replace(/\bno-js\b/,"")+(f?" js "+s.join(" "):"");return e}(this,this.document),function(a,b){function u(){r(!0)}a.respond={},respond.update=function(){},respond.mediaQueriesSupported=b;if(!b){var c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=j.getElementsByTagName("link"),l=[],m=function(){var b=k,c=b.length,d=0,e,f,g,i;for(;d<c;d++)e=b[d],f=e.href,g=e.media,i=e.rel&&e.rel.toLowerCase()==="stylesheet",!!f&&i&&!h[f]&&(!/^([a-zA-Z]+?:(\/\/)?(www\.)?)/.test(f)||f.replace(RegExp.$1,"").split("/")[0]===a.location.host?l.push({href:f,media:g}):h[f]=!0);n()},n=function(){if(l.length){var a=l.shift();s(a.href,function(b){o(b,a.href,a.media),h[a.href]=!0,n()})}},o=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]+\{[^\}\{]+\})+/gi),g=d&&d.length||0,b=b.substring(0,b.lastIndexOf("/")),h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c,j=0,k,l,m,n,o;b.length&&(b+="/"),i&&(g=1);for(;j<g;j++){k=0,i?(l=c,f.push(h(a))):(l=d[j].match(/@media ([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),n=l.split(","),o=n.length;for(;k<o;k++)m=n[k],e.push({media:m.match(/(only\s+)?([a-zA-Z]+)(\sand)?/)&&RegExp.$2,rules:f.length-1,minw:m.match(/\(min\-width:[\s]*([\s]*[0-9]+)px[\s]*\)/)&&parseFloat(RegExp.$1),maxw:m.match(/\(max\-width:[\s]*([\s]*[0-9]+)px[\s]*\)/)&&parseFloat(RegExp.$1)})}r()},p,q,r=function(a){var b="clientWidth",h=d[b],l=c.compatMode==="CSS1Compat"&&h||c.body[b]||h,m={},n=c.createDocumentFragment(),o=k[k.length-1],s=(new Date).getTime();if(a&&p&&s-p<i)clearTimeout(q),q=setTimeout(r,i);else{p=s;for(var t in e){var u=e[t];if(!u.minw&&!u.maxw||(!u.minw||u.minw&&l>=u.minw)&&(!u.maxw||u.maxw&&l<=u.maxw))m[u.media]||(m[u.media]=[]),m[u.media].push(f[u.rules])}for(var t in g)g[t]&&g[t].parentNode===j&&j.removeChild(g[t]);for(var t in m){var v=c.createElement("style"),w=m[t].join("\n");v.type="text/css",v.media=t,v.styleSheet?v.styleSheet.cssText=w:v.appendChild(c.createTextNode(w)),n.appendChild(v),g.push(v)}j.insertBefore(n,o.nextSibling)}},s=function(a,b){var c=t();if(!!c){c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState==4&&(c.status==200||c.status==304)&&b(c.responseText)};if(c.readyState==4)return;c.send()}},t=function(){var a=!1,b=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest}],c=b.length;while(c--){try{a=b[c]()}catch(d){continue}break}return function(){return a}}();m(),respond.update=m,a.addEventListener?a.addEventListener("resize",u,!1):a.attachEvent&&a.attachEvent("onresize",u)}}(this,Modernizr.mq("only all")),function(a,b,c){function k(a){return!a||a=="loaded"||a=="complete"}function j(){var a=1,b=-1;while(p.length- ++b)if(p[b].s&&!(a=p[b].r))break;a&&g()}function i(a){var c=b.createElement("script"),d;c.src=a.s,c.onreadystatechange=c.onload=function(){!d&&k(c.readyState)&&(d=1,j(),c.onload=c.onreadystatechange=null)},m(function(){d||(d=1,j())},H.errorTimeout),a.e?c.onload():n.parentNode.insertBefore(c,n)}function h(a){var c=b.createElement("link"),d;c.href=a.s,c.rel="stylesheet",c.type="text/css",!a.e&&(w||r)?function a(b){m(function(){if(!d)try{b.sheet.cssRules.length?(d=1,j()):a(b)}catch(c){c.code==1e3||c.message=="security"||c.message=="denied"?(d=1,m(function(){j()},0)):a(b)}},0)}(c):(c.onload=function(){d||(d=1,m(function(){j()},0))},a.e&&c.onload()),m(function(){d||(d=1,j())},H.errorTimeout),!a.e&&n.parentNode.insertBefore(c,n)}function g(){var a=p.shift();q=1,a?a.t?m(function(){a.t=="c"?h(a):i(a)},0):(a(),j()):q=0}function f(a,c,d,e,f,h){function i(){!o&&k(l.readyState)&&(r.r=o=1,!q&&j(),l.onload=l.onreadystatechange=null,m(function(){u.removeChild(l)},0))}var l=b.createElement(a),o=0,r={t:d,s:c,e:h};l.src=l.data=c,!s&&(l.style.display="none"),l.width=l.height="0",a!="object"&&(l.type=d),l.onload=l.onreadystatechange=i,a=="img"?l.onerror=i:a=="script"&&(l.onerror=function(){r.e=r.r=1,g()}),p.splice(e,0,r),u.insertBefore(l,s?null:n),m(function(){o||(u.removeChild(l),r.r=r.e=o=1,j())},H.errorTimeout)}function e(a,b,c){var d=b=="c"?z:y;q=0,b=b||"j",C(a)?f(d,a,b,this.i++,l,c):(p.splice(this.i++,0,a),p.length==1&&g());return this}function d(){var a=H;a.loader={load:e,i:0};return a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=r&&!s,u=s?l:n.parentNode,v=a.opera&&o.call(a.opera)=="[object Opera]",w="webkitAppearance"in l.style,x=w&&"async"in b.createElement("script"),y=r?"object":v||x?"img":"script",z=w?"img":y,A=Array.isArray||function(a){return o.call(a)=="[object Array]"},B=function(a){return typeof a=="object"},C=function(a){return typeof a=="string"},D=function(a){return o.call(a)=="[object Function]"},E=[],F={},G,H;H=function(a){function f(a){var b=a.split("!"),c=E.length,d=b.pop(),e=b.length,f={url:d,origUrl:d,prefixes:b},g,h;for(h=0;h<e;h++)g=F[b[h]],g&&(f=g(f));for(h=0;h<c;h++)f=E[h](f);return f}function e(a,b,e,g,h){var i=f(a),j=i.autoCallback;if(!i.bypass){b&&(b=D(b)?b:b[a]||b[g]||b[a.split("/").pop().split("?")[0]]);if(i.instead)return i.instead(a,b,e,g,h);e.load(i.url,i.forceCSS||!i.forceJS&&/css$/.test(i.url)?"c":c,i.noexec),(D(b)||D(j))&&e.load(function(){d(),b&&b(i.origUrl,h,g),j&&j(i.origUrl,h,g)})}}function b(a,b){function c(a){if(C(a))e(a,h,b,0,d);else if(B(a))for(i in a)a.hasOwnProperty(i)&&e(a[i],h,b,i,d)}var d=!!a.test,f=d?a.yep:a.nope,g=a.load||a.both,h=a.callback,i;c(f),c(g),a.complete&&b.load(a.complete)}var g,h,i=this.yepnope.loader;if(C(a))e(a,0,i,0);else if(A(a))for(g=0;g<a.length;g++)h=a[g],C(h)?e(h,0,i,0):A(h)?H(h):B(h)&&b(h,i);else B(a)&&b(a,i)},H.addPrefix=function(a,b){F[a]=b},H.addFilter=function(a){E.push(a)},H.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",G=function(){b.removeEventListener("DOMContentLoaded",G,0),b.readyState="complete"},0)),a.yepnope=d()}(this,this.document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
diff --git a/themes/classic/source/javascripts/octopress.js b/themes/classic/source/javascripts/octopress.js
deleted file mode 100644
index 680cb76b..00000000
--- a/themes/classic/source/javascripts/octopress.js
+++ /dev/null
@@ -1,143 +0,0 @@
-function getNav(){
- var mobileNav = $('body > nav fieldset[role=site-search]').after('<fieldset role="mobile-nav"></fieldset>').next().append('<select></select>');
- mobileNav.children('select').append('<option value="">Navigate&hellip;</option>');
- $($('body > nav ul[role=main-nav] a')).each(function(link) {
- mobileNav.children('select').append('<option value="'+link.href+'">&bull; '+link.text+'</option>')
- });
- mobileNav.children('select').bind('change', function(event){
- if (event.target.value) window.location.href = event.target.value;
- });
-}
-function addSidebarToggler() {
- $('#articles').before('<a href="#" class="toggle-sidebar">&raquo;</a>').previous().bind('click', function(e){
- e.preventDefault();
- if($('body').hasClass('collapse-sidebar')){
- $('body').removeClass('collapse-sidebar');
- e.target.innerHTML = '&raquo;';
- } else {
- $('body').addClass('collapse-sidebar');
- e.target.innerHTML = '&laquo;';
- }
- });
-}
-function testFeatures() {
- var features = ['maskImage'];
- $(features).map(function(feature){
- if (Modernizr.testAllProps(feature)) {
- $('html').addClass(feature);
- } else {
- $('html').addClass('no-'+feature);
- }
- });
- if ("placeholder" in document.createElement("input")) {
- $('html').addClass('placeholder');
- } else {
- $('html').addClass('no-placeholder');
- }
-}
-
-function addCodeLineNumbers(){
- if (navigator.appName == 'Microsoft Internet Explorer') { return }
- $('div.highlight pre code').each(function(el){ addDivLines(el); });
- $('div.highlight, div.gist-highlight').each(function(code){
- var tableStart = '<table cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter">';
- var lineNumbers = '<pre class="line-numbers">';
- var tableMiddle = '</pre></td><td class="code" width="100%">';
- var tableEnd = '</td></tr></tbody></table>';
- var count = $('div.line', code).length;
- for (i=1;i<=count; i++){
- lineNumbers += '<span class="line">'+i+'</span>\n';
- }
- table = tableStart + lineNumbers + tableMiddle + '<pre>'+$('pre', code).html()+'</pre>' + tableEnd;
- $(code).html(table);
- });
-}
-function addDivLines(el){
- var content = $(el).html();
- var lines = content.replace(/\s*$/g, '').split(/\n/);
- var count = lines.length;
- $(lines).each(function(line, index){
- if(line == '') line = ' ';
- lines[index] = '<div class="line">' + line + '</div>';
- });
- $(el).html(lines.join(''));
-}
-
-function flashVideoFallback(){
- var flashplayerlocation = "/assets/jwplayer/player.swf",
- flashplayerskin = "/assets/jwplayer/glow/glow.xml";
- $('video').each(function(video){
- video = $(video);
- if(!Modernizr.video.h264 && swfobject.getFlashPlayerVersion() || window.location.hash.indexOf("flash-test") != -1){
- video.children('source[src$=mp4]').first().map(function(source){;
- var src = $(source).attr('src'),
- id = 'video_'+Math.round(1 + Math.random()*(100000)),
- width = video.attr('width'),
- height = parseInt(video.attr('height')) + 30;
- video.after('<div class="flash-video"><div><div id='+id+'>');
- swfobject.embedSWF(flashplayerlocation, id, width, height + 30, "9.0.0",
- { file : src, image : video.attr('poster'), skin : flashplayerskin } ,
- { movie : src, wmode : "opaque", allowfullscreen : "true" });
- });
- video.remove();
- }
- });
-}
-
-function wrapFlashVideos(){
- $('object').each(function(object){
- object = $(object);
- if(object.children('param[name=movie]')){
- var wrapper = object.before('<div class="flash-video"><div>').previous();
- $(wrapper).children().append(object);
- }
- });
- $('iframe[src*=vimeo],iframe[src*=youtube]').each(function(iframe){
- iframe = $(iframe);
- var wrapper = iframe.before('<div class="flash-video"><div>').previous();
- $(wrapper).children().append(iframe);
- });
-}
-
-$.domReady(function(){
- testFeatures();
- wrapFlashVideos();
- flashVideoFallback();
- addCodeLineNumbers();
- getNav();
- addSidebarToggler();
-});
-
-// iOS scaling bug fix
-// Rewritten version
-// By @mathias, @cheeaun and @jdalton
-// Source url: https://gist.github.com/901295
-(function(doc) {
- var addEvent = 'addEventListener',
- type = 'gesturestart',
- qsa = 'querySelectorAll',
- scales = [1, 1],
- meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : [];
- function fix() {
- meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1];
- doc.removeEventListener(type, fix, true);
- }
- if ((meta = meta[meta.length - 1]) && addEvent in doc) {
- fix();
- scales = [.25, 1.6];
- doc[addEvent](type, fix, true);
- }
-}(document));
-
-/*! SWFObject v2.2 modified by Brandon Mathis to contain only what is necessary to dynamically embed flash objects
- * Uncompressed source in javascripts/libs/swfobject-dynamic.js
- * <http://code.google.com/p/swfobject/>
- released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
-*/
-var swfobject=function(){function s(a,b,d){var q,k=n(d);if(g.wk&&g.wk<312)return q;if(k){if(typeof a.id==l)a.id=d;if(g.ie&&g.win){var e="",c;for(c in a)if(a[c]!=Object.prototype[c])c.toLowerCase()=="data"?b.movie=a[c]:c.toLowerCase()=="styleclass"?e+=' class="'+a[c]+'"':c.toLowerCase()!="classid"&&(e+=" "+c+'="'+a[c]+'"');c="";for(var f in b)b[f]!=Object.prototype[f]&&(c+='<param name="'+f+'" value="'+b[f]+'" />');k.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+e+">"+c+
-"</object>";q=n(a.id)}else{f=i.createElement(o);f.setAttribute("type",m);for(var h in a)a[h]!=Object.prototype[h]&&(h.toLowerCase()=="styleclass"?f.setAttribute("class",a[h]):h.toLowerCase()!="classid"&&f.setAttribute(h,a[h]));for(e in b)b[e]!=Object.prototype[e]&&e.toLowerCase()!="movie"&&(a=f,c=e,h=b[e],d=i.createElement("param"),d.setAttribute("name",c),d.setAttribute("value",h),a.appendChild(d));k.parentNode.replaceChild(f,k);q=f}}return q}function n(a){var b=null;try{b=i.getElementById(a)}catch(d){}return b}
-function t(a){var b=g.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function u(a){return/[\\\"<>\.;]/.exec(a)!=null&&typeof encodeURIComponent!=l?encodeURIComponent(a):a}var l="undefined",o="object",m="application/x-shockwave-flash",v=window,i=document,j=navigator,g=function(){var a=typeof i.getElementById!=l&&typeof i.getElementsByTagName!=l&&typeof i.createElement!=l,
-b=j.userAgent.toLowerCase(),d=j.platform.toLowerCase(),g=d?/win/.test(d):/win/.test(b),d=d?/mac/.test(d):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,k=!+"\u000b1",e=[0,0,0],c=null;if(typeof j.plugins!=l&&typeof j.plugins["Shockwave Flash"]==o){if((c=j.plugins["Shockwave Flash"].description)&&!(typeof j.mimeTypes!=l&&j.mimeTypes[m]&&!j.mimeTypes[m].enabledPlugin))k=!1,c=c.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(c.replace(/^(.*)\..*$/,"$1"),
-10),e[1]=parseInt(c.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(c)?parseInt(c.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof v.ActiveXObject!=l)try{var f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(f&&(c=f.GetVariable("$version")))k=!0,c=c.split(" ")[1].split(","),e=[parseInt(c[0],10),parseInt(c[1],10),parseInt(c[2],10)]}catch(h){}return{w3:a,pv:e,wk:b,ie:k,win:g,mac:d}}();return{embedSWF:function(a,b,d,i,k,e,c,f,h){var j={success:!1,id:b};if(g.w3&&!(g.wk&&g.wk<312)&&
-a&&b&&d&&i&&k){d+="";i+="";var p={};if(f&&typeof f===o)for(var m in f)p[m]=f[m];p.data=a;p.width=d;p.height=i;a={};if(c&&typeof c===o)for(var n in c)a[n]=c[n];if(e&&typeof e===o)for(var r in e)typeof a.flashvars!=l?a.flashvars+="&"+r+"="+e[r]:a.flashvars=r+"="+e[r];if(t(k))b=s(p,a,b),j.success=!0,j.ref=b}h&&h(j)},ua:g,getFlashPlayerVersion:function(){return{major:g.pv[0],minor:g.pv[1],release:g.pv[2]}},hasFlashPlayerVersion:t,createSWF:function(a,b,d){if(g.w3)return s(a,b,d)},getQueryParamValue:function(a){var b=
-i.location.search||i.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(a==null)return u(b);for(var b=b.split("&"),d=0;d<b.length;d++)if(b[d].substring(0,b[d].indexOf("="))==a)return u(b[d].substring(b[d].indexOf("=")+1))}return""}}}();
diff --git a/themes/classic/source/javascripts/pinboard.js b/themes/classic/source/javascripts/pinboard.js
deleted file mode 100644
index 52577e2c..00000000
--- a/themes/classic/source/javascripts/pinboard.js
+++ /dev/null
@@ -1,56 +0,0 @@
-function pinboardNS_fetch_script(url) {
- //document.writeln('<s'+'cript type="text/javascript" src="' + url + '"></s'+'cript>');
- (function(){
- var pinboardLinkroll = document.createElement('script');
- pinboardLinkroll.type = 'text/javascript';
- pinboardLinkroll.async = true;
- pinboardLinkroll.src = url;
- document.getElementsByTagName('head')[0].appendChild(pinboardLinkroll);
- })();
-}
-
-function pinboardNS_show_bmarks(r) {
- var lr = new Pinboard_Linkroll();
- lr.set_items(r);
- lr.show_bmarks();
-}
-
-function Pinboard_Linkroll() {
- var items;
-
- this.set_items = function(i) {
- this.items = i;
- }
- this.show_bmarks = function() {
- var lines = [];
- for (var i = 0; i < this.items.length; i++) {
- var item = this.items[i];
- var str = this.format_item(item);
- lines.push(str);
- }
- document.getElementById(linkroll).innerHTML = lines.join("\n");
- }
- this.cook = function(v) {
- return v.replace('<', '&lt;').replace('>', '&gt>');
- }
-
- this.format_item = function(it) {
- var str = "<li class=\"pin-item\">";
- if (!it.d) { return; }
- str += "<p><a class=\"pin-title\" href=\"" + this.cook(it.u) + "\">" + this.cook(it.d) + "</a>";
- if (it.n) {
- str += "<span class=\"pin-description\">" + this.cook(it.n) + "</span>\n";
- }
- if (it.t.length > 0) {
- for (var i = 0; i < it.t.length; i++) {
- var tag = it.t[i];
- str += " <a class=\"pin-tag\" href=\"http://pinboard.in/u:"+ this.cook(it.a) + "/t:" + this.cook(tag) + "\">" + this.cook(tag).replace(/^\s+|\s+$/g, '') + "</a> ";
- }
- }
- str += "</p></li>\n";
- return str;
- }
-}
-Pinboard_Linkroll.prototype = new Pinboard_Linkroll();
-pinboardNS_fetch_script("http://feeds.pinboard.in/json/v1/u:"+pinboard_user+"/?cb=pinboardNS_show_bmarks\&count="+pinboard_count);
-
diff --git a/themes/classic/source/javascripts/twitter.js b/themes/classic/source/javascripts/twitter.js
deleted file mode 100644
index 676619e1..00000000
--- a/themes/classic/source/javascripts/twitter.js
+++ /dev/null
@@ -1,80 +0,0 @@
-// JSON-P Twitter fetcher for Octopress
-// (c) Brandon Mathis // MIT Lisence
-function getTwitterFeed(user, count, replies) {
- feed = new jXHR();
- feed.onerror = function (msg,url) {
- $('#tweets li.loading').addClass('error').text("Twitter's busted");
- }
- feed.onreadystatechange = function(data){
- if (feed.readyState === 4) {
- var tweets = new Array();
- for (i in data){
- if(tweets.length < count){
- if(replies || data[i].in_reply_to_user_id == null){
- tweets.push(data[i]);
- }
- }
- }
- showTwitterFeed(tweets, user);
- }
- };
- feed.open("GET","http://twitter.com/statuses/user_timeline/"+user+".json?trim_user=true&count="+(parseInt(count)+60)+"&callback=?");
- feed.send();
-}
-
-function showTwitterFeed(tweets, twitter_user){
- var timeline = document.getElementById('tweets');
- timeline.innerHTML='';
- for (t in tweets){
- timeline.innerHTML+='<li>'+'<p>'+'<a href="http://twitter.com/'+twitter_user+'/status/'+tweets[t].id_str+'">'+prettyDate(tweets[t].created_at)+'</a>'+linkifyTweet(tweets[t].text.replace(/\n/g, '<br>'))+'</p>'+'</li>';
- }
-}
-function linkifyTweet(text){
- return text.replace(/(https?:\/\/)([\w\-:;?&=+.%#\/]+)/gi, '<a href="$1$2">$2</a>')
- .replace(/(^|\W)@(\w+)/g, '$1<a href="http://twitter.com/$2">@$2</a>')
- .replace(/(^|\W)#(\w+)/g, '$1<a href="http://search.twitter.com/search?q=%23$2">#$2</a>');
-}
-
-
-
-// jXHR.js (JSON-P XHR) | v0.1 (c) Kyle Simpson | MIT License | http://mulletxhr.com/
-// uncompressed version available in source/javascripts/libs/jXHR.js
-(function(c){var b=c.setTimeout,d=c.document,a=0;c.jXHR=function(){var e,g,n,h,m=null;function l(){try{h.parentNode.removeChild(h)}catch(o){}}function k(){g=false;e="";l();h=null;i(0)}function f(p){try{m.onerror.call(m,p,e)}catch(o){throw new Error(p)}}function j(){if((this.readyState&&this.readyState!=="complete"&&this.readyState!=="loaded")||g){return}this.onload=this.onreadystatechange=null;g=true;if(m.readyState!==4){f("Script failed to load ["+e+"].")}l()}function i(o,p){p=p||[];m.readyState=o;if(typeof m.onreadystatechange==="function"){m.onreadystatechange.apply(m,p)}}m={onerror:null,onreadystatechange:null,readyState:0,open:function(p,o){k();internal_callback="cb"+(a++);(function(q){c.jXHR[q]=function(){try{i.call(m,4,arguments)}catch(r){m.readyState=-1;f("Script failed to run ["+e+"].")}c.jXHR[q]=null}})(internal_callback);e=o.replace(/=\?/,"=jXHR."+internal_callback);i(1)},send:function(){b(function(){h=d.createElement("script");h.setAttribute("type","text/javascript");h.onload=h.onreadystatechange=function(){j.call(h)};h.setAttribute("src",e);d.getElementsByTagName("head")[0].appendChild(h)},0);i(2)},setRequestHeader:function(){},getResponseHeader:function(){return""},getAllResponseHeaders:function(){return[]}};k();return m}})(window);
-
-
-/* Sky Slavin, Ludopoli. MIT license. * based on JavaScript Pretty Date * Copyright (c) 2008 John Resig (jquery.com) * Licensed under the MIT license. */
-
-function prettyDate(time) {
- if (navigator.appName == 'Microsoft Internet Explorer') {
- return "<span>&infin;</span>"; // because IE date parsing isn't fun.
- };
-
- var say = {};
- say.just_now = " now",
- say.minute_ago = "1m",
- say.minutes_ago = "m",
- say.hour_ago = "1h",
- say.hours_ago = "h",
- say.yesterday = "1d",
- say.days_ago = "d",
- say.weeks_ago = "w"
-
- var current_date = new Date();
- current_date_time = current_date.getTime();
- current_date_full = current_date_time + (1 * 60000);
- var date = new Date(time);
- var diff = ((current_date_full - date.getTime()) / 1000);
- var day_diff = Math.floor(diff / 86400);
-
- if (isNaN(day_diff) || day_diff < 0 || day_diff >= 31) return;
-
- return day_diff == 0 && (
- diff < 60 && say.just_now ||
- diff < 120 && say.minute_ago ||
- diff < 3600 && Math.floor(diff / 60) + say.minutes_ago ||
- diff < 7200 && say.hour_ago ||
- diff < 86400 && Math.floor(diff / 3600) + say.hours_ago) ||
- day_diff == 1 && say.yesterday ||
- day_diff < 7 && day_diff + say.days_ago ||
- day_diff < 31 && Math.ceil(day_diff / 7) + say.weeks_ago;
-}