From ea349cdfbfa4d42110099e49a8ff23f7213cd5b6 Mon Sep 17 00:00:00 2001 From: Brandon Mathis Date: Wed, 29 Jun 2011 14:01:06 -0400 Subject: 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 --- .themes/classic/_plugins/blockquote.rb | 73 + .themes/classic/_plugins/category_generator.rb | 161 +++ .themes/classic/_plugins/compass_compiler.rb | 1 + .themes/classic/_plugins/custom_filters.rb | 75 + .themes/classic/_plugins/gist_tag.rb | 94 ++ .themes/classic/_plugins/haml.rb | 24 + .themes/classic/_plugins/include_code.rb | 40 + .themes/classic/_plugins/include_file.rb | 31 + .themes/classic/_plugins/pullquote.rb | 42 + .themes/classic/_plugins/pygments_cache_patch.rb | 30 + .themes/classic/_plugins/sitemap_generator.rb | 308 ++++ .themes/classic/_plugins/titlecase.rb | 36 + .themes/classic/sass/_base.scss | 5 + .themes/classic/sass/_partials.scss | 7 + .themes/classic/sass/base/_layout.scss | 134 ++ .themes/classic/sass/base/_solarized.scss | 16 + .themes/classic/sass/base/_theme.scss | 76 + .themes/classic/sass/base/_typography.scss | 130 ++ .themes/classic/sass/base/_utilities.scss | 21 + .themes/classic/sass/custom/_colors.scss | 20 + .themes/classic/sass/custom/_layout.scss | 16 + .themes/classic/sass/custom/_styles.scss | 2 + .themes/classic/sass/partials/_archive.scss | 72 + .themes/classic/sass/partials/_blog.scss | 131 ++ .themes/classic/sass/partials/_footer.scss | 19 + .themes/classic/sass/partials/_header.scss | 18 + .themes/classic/sass/partials/_navigation.scss | 137 ++ .themes/classic/sass/partials/_sidebar.scss | 4 + .themes/classic/sass/partials/_syntax.scss | 208 +++ .themes/classic/sass/partials/sidebar/_base.scss | 56 + .../classic/sass/partials/sidebar/_delicious.scss | 4 + .../classic/sass/partials/sidebar/_pinboard.scss | 12 + .../classic/sass/partials/sidebar/_twitter.scss | 33 + .themes/classic/sass/screen.scss | 9 + .themes/classic/source/_includes/archive_post.html | 8 + .themes/classic/source/_includes/article.html | 25 + .../classic/source/_includes/asides/delicious.html | 7 + .../classic/source/_includes/asides/pinboard.html | 19 + .../source/_includes/asides/recent_posts.html | 12 + .../classic/source/_includes/asides/twitter.html | 19 + .../classic/source/_includes/disqus_thread.html | 13 + .themes/classic/source/_includes/footer.html | 4 + .../classic/source/_includes/google_analytics.html | 13 + .themes/classic/source/_includes/head.html | 35 + .themes/classic/source/_includes/header.html | 6 + .themes/classic/source/_includes/navigation.html | 16 + .themes/classic/source/_includes/post_author.html | 6 + .../classic/source/_includes/post_categories.html | 10 + .themes/classic/source/_includes/post_date.html | 10 + .themes/classic/source/_includes/sharing.html | 1 + .themes/classic/source/_includes/sidebar.html | 8 + .../classic/source/_layouts/category_index.html | 12 + .themes/classic/source/_layouts/default.html | 26 + .themes/classic/source/_layouts/page.html | 5 + .themes/classic/source/_layouts/post.html | 24 + .themes/classic/source/archives.html | 17 + .../assets/jwplayer/glow/controlbar/background.png | Bin 0 -> 141 bytes .../jwplayer/glow/controlbar/blankButton.png | Bin 0 -> 82 bytes .../assets/jwplayer/glow/controlbar/divider.png | Bin 0 -> 118 bytes .../jwplayer/glow/controlbar/fullscreenButton.png | Bin 0 -> 203 bytes .../glow/controlbar/fullscreenButtonOver.png | Bin 0 -> 636 bytes .../assets/jwplayer/glow/controlbar/muteButton.png | Bin 0 -> 343 bytes .../jwplayer/glow/controlbar/muteButtonOver.png | Bin 0 -> 835 bytes .../glow/controlbar/normalscreenButton.png | Bin 0 -> 210 bytes .../glow/controlbar/normalscreenButtonOver.png | Bin 0 -> 664 bytes .../jwplayer/glow/controlbar/pauseButton.png | Bin 0 -> 170 bytes .../jwplayer/glow/controlbar/pauseButtonOver.png | Bin 0 -> 442 bytes .../assets/jwplayer/glow/controlbar/playButton.png | Bin 0 -> 251 bytes .../jwplayer/glow/controlbar/playButtonOver.png | Bin 0 -> 553 bytes .../jwplayer/glow/controlbar/timeSliderBuffer.png | Bin 0 -> 112 bytes .../jwplayer/glow/controlbar/timeSliderCapLeft.png | Bin 0 -> 94 bytes .../glow/controlbar/timeSliderCapRight.png | Bin 0 -> 103 bytes .../glow/controlbar/timeSliderProgress.png | Bin 0 -> 114 bytes .../jwplayer/glow/controlbar/timeSliderRail.png | Bin 0 -> 116 bytes .../jwplayer/glow/controlbar/unmuteButton.png | Bin 0 -> 264 bytes .../jwplayer/glow/controlbar/unmuteButtonOver.png | Bin 0 -> 649 bytes .../assets/jwplayer/glow/display/background.png | Bin 0 -> 686 bytes .../assets/jwplayer/glow/display/bufferIcon.png | Bin 0 -> 816 bytes .../assets/jwplayer/glow/display/muteIcon.png | Bin 0 -> 334 bytes .../assets/jwplayer/glow/display/playIcon.png | Bin 0 -> 465 bytes .../source/assets/jwplayer/glow/dock/button.png | Bin 0 -> 686 bytes .../classic/source/assets/jwplayer/glow/glow.xml | 115 ++ .../source/assets/jwplayer/glow/playlist/item.png | Bin 0 -> 172 bytes .../assets/jwplayer/glow/playlist/itemOver.png | Bin 0 -> 171 bytes .../jwplayer/glow/playlist/sliderCapBottom.png | Bin 0 -> 108 bytes .../assets/jwplayer/glow/playlist/sliderCapTop.png | Bin 0 -> 105 bytes .../assets/jwplayer/glow/playlist/sliderRail.png | Bin 0 -> 100 bytes .../assets/jwplayer/glow/playlist/sliderThumb.png | Bin 0 -> 97 bytes .../assets/jwplayer/glow/sharing/embedIcon.png | Bin 0 -> 749 bytes .../assets/jwplayer/glow/sharing/embedScreen.png | Bin 0 -> 2579 bytes .../assets/jwplayer/glow/sharing/shareIcon.png | Bin 0 -> 589 bytes .../assets/jwplayer/glow/sharing/shareScreen.png | Bin 0 -> 4576 bytes .themes/classic/source/assets/jwplayer/player.swf | Bin 0 -> 91375 bytes .themes/classic/source/atom.xml | 28 + .themes/classic/source/images/bird_32_gray.png | Bin 0 -> 1376 bytes .../classic/source/images/bird_32_gray_fail.png | Bin 0 -> 615 bytes .themes/classic/source/images/code_bg.png | Bin 0 -> 239 bytes .themes/classic/source/images/dotted-border.png | Bin 0 -> 99 bytes .themes/classic/source/images/email.png | Bin 0 -> 301 bytes .themes/classic/source/images/favicon.png | Bin 0 -> 400 bytes .themes/classic/source/images/line-tile.png | Bin 0 -> 636 bytes .themes/classic/source/images/noise.png | Bin 0 -> 17742 bytes .themes/classic/source/images/rss.png | Bin 0 -> 490 bytes .themes/classic/source/images/search.png | Bin 0 -> 333 bytes .themes/classic/source/index.html | 31 + .themes/classic/source/javascripts/ender.js | 2 + .themes/classic/source/javascripts/libs/ender.js | 1497 ++++++++++++++++++++ .themes/classic/source/javascripts/libs/jXHR.js | 85 ++ .../source/javascripts/libs/swfobject-dynamic.js | 298 ++++ .../classic/source/javascripts/modernizr-2.0.js | 5 + .themes/classic/source/javascripts/octopress.js | 143 ++ .themes/classic/source/javascripts/pinboard.js | 56 + .themes/classic/source/javascripts/twitter.js | 80 ++ Rakefile | 35 +- themes/classic/_plugins/blockquote.rb | 73 - themes/classic/_plugins/category_generator.rb | 161 --- themes/classic/_plugins/compass_compiler.rb | 1 - themes/classic/_plugins/custom_filters.rb | 75 - themes/classic/_plugins/gist_tag.rb | 94 -- themes/classic/_plugins/haml.rb | 24 - themes/classic/_plugins/include_code.rb | 40 - themes/classic/_plugins/include_file.rb | 31 - themes/classic/_plugins/pullquote.rb | 42 - themes/classic/_plugins/pygments_cache_patch.rb | 30 - themes/classic/_plugins/sitemap_generator.rb | 308 ---- themes/classic/_plugins/titlecase.rb | 36 - themes/classic/sass/_base.scss | 5 - themes/classic/sass/_partials.scss | 7 - themes/classic/sass/base/_layout.scss | 134 -- themes/classic/sass/base/_solarized.scss | 16 - themes/classic/sass/base/_theme.scss | 76 - themes/classic/sass/base/_typography.scss | 130 -- themes/classic/sass/base/_utilities.scss | 21 - themes/classic/sass/custom/_colors.scss | 20 - themes/classic/sass/custom/_layout.scss | 16 - themes/classic/sass/custom/_styles.scss | 2 - themes/classic/sass/partials/_archive.scss | 72 - themes/classic/sass/partials/_blog.scss | 131 -- themes/classic/sass/partials/_footer.scss | 19 - themes/classic/sass/partials/_header.scss | 18 - themes/classic/sass/partials/_navigation.scss | 137 -- themes/classic/sass/partials/_sidebar.scss | 4 - themes/classic/sass/partials/_syntax.scss | 208 --- themes/classic/sass/partials/sidebar/_base.scss | 56 - .../classic/sass/partials/sidebar/_delicious.scss | 4 - .../classic/sass/partials/sidebar/_pinboard.scss | 12 - themes/classic/sass/partials/sidebar/_twitter.scss | 33 - themes/classic/sass/screen.scss | 9 - themes/classic/source/_includes/archive_post.html | 8 - themes/classic/source/_includes/article.html | 25 - .../classic/source/_includes/asides/delicious.html | 7 - .../classic/source/_includes/asides/pinboard.html | 19 - .../source/_includes/asides/recent_posts.html | 12 - .../classic/source/_includes/asides/twitter.html | 19 - themes/classic/source/_includes/disqus_thread.html | 13 - themes/classic/source/_includes/footer.html | 4 - .../classic/source/_includes/google_analytics.html | 13 - themes/classic/source/_includes/head.html | 35 - themes/classic/source/_includes/header.html | 6 - themes/classic/source/_includes/navigation.html | 16 - themes/classic/source/_includes/post_author.html | 6 - .../classic/source/_includes/post_categories.html | 10 - themes/classic/source/_includes/post_date.html | 10 - themes/classic/source/_includes/sharing.html | 1 - themes/classic/source/_includes/sidebar.html | 8 - themes/classic/source/_layouts/category_index.html | 12 - themes/classic/source/_layouts/default.html | 26 - themes/classic/source/_layouts/page.html | 5 - themes/classic/source/_layouts/post.html | 24 - themes/classic/source/archives.html | 17 - .../assets/jwplayer/glow/controlbar/background.png | Bin 141 -> 0 bytes .../jwplayer/glow/controlbar/blankButton.png | Bin 82 -> 0 bytes .../assets/jwplayer/glow/controlbar/divider.png | Bin 118 -> 0 bytes .../jwplayer/glow/controlbar/fullscreenButton.png | Bin 203 -> 0 bytes .../glow/controlbar/fullscreenButtonOver.png | Bin 636 -> 0 bytes .../assets/jwplayer/glow/controlbar/muteButton.png | Bin 343 -> 0 bytes .../jwplayer/glow/controlbar/muteButtonOver.png | Bin 835 -> 0 bytes .../glow/controlbar/normalscreenButton.png | Bin 210 -> 0 bytes .../glow/controlbar/normalscreenButtonOver.png | Bin 664 -> 0 bytes .../jwplayer/glow/controlbar/pauseButton.png | Bin 170 -> 0 bytes .../jwplayer/glow/controlbar/pauseButtonOver.png | Bin 442 -> 0 bytes .../assets/jwplayer/glow/controlbar/playButton.png | Bin 251 -> 0 bytes .../jwplayer/glow/controlbar/playButtonOver.png | Bin 553 -> 0 bytes .../jwplayer/glow/controlbar/timeSliderBuffer.png | Bin 112 -> 0 bytes .../jwplayer/glow/controlbar/timeSliderCapLeft.png | Bin 94 -> 0 bytes .../glow/controlbar/timeSliderCapRight.png | Bin 103 -> 0 bytes .../glow/controlbar/timeSliderProgress.png | Bin 114 -> 0 bytes .../jwplayer/glow/controlbar/timeSliderRail.png | Bin 116 -> 0 bytes .../jwplayer/glow/controlbar/unmuteButton.png | Bin 264 -> 0 bytes .../jwplayer/glow/controlbar/unmuteButtonOver.png | Bin 649 -> 0 bytes .../assets/jwplayer/glow/display/background.png | Bin 686 -> 0 bytes .../assets/jwplayer/glow/display/bufferIcon.png | Bin 816 -> 0 bytes .../assets/jwplayer/glow/display/muteIcon.png | Bin 334 -> 0 bytes .../assets/jwplayer/glow/display/playIcon.png | Bin 465 -> 0 bytes .../source/assets/jwplayer/glow/dock/button.png | Bin 686 -> 0 bytes .../classic/source/assets/jwplayer/glow/glow.xml | 115 -- .../source/assets/jwplayer/glow/playlist/item.png | Bin 172 -> 0 bytes .../assets/jwplayer/glow/playlist/itemOver.png | Bin 171 -> 0 bytes .../jwplayer/glow/playlist/sliderCapBottom.png | Bin 108 -> 0 bytes .../assets/jwplayer/glow/playlist/sliderCapTop.png | Bin 105 -> 0 bytes .../assets/jwplayer/glow/playlist/sliderRail.png | Bin 100 -> 0 bytes .../assets/jwplayer/glow/playlist/sliderThumb.png | Bin 97 -> 0 bytes .../assets/jwplayer/glow/sharing/embedIcon.png | Bin 749 -> 0 bytes .../assets/jwplayer/glow/sharing/embedScreen.png | Bin 2579 -> 0 bytes .../assets/jwplayer/glow/sharing/shareIcon.png | Bin 589 -> 0 bytes .../assets/jwplayer/glow/sharing/shareScreen.png | Bin 4576 -> 0 bytes themes/classic/source/assets/jwplayer/player.swf | Bin 91375 -> 0 bytes themes/classic/source/atom.xml | 28 - themes/classic/source/images/bird_32_gray.png | Bin 1376 -> 0 bytes themes/classic/source/images/bird_32_gray_fail.png | Bin 615 -> 0 bytes themes/classic/source/images/code_bg.png | Bin 239 -> 0 bytes themes/classic/source/images/dotted-border.png | Bin 99 -> 0 bytes themes/classic/source/images/email.png | Bin 301 -> 0 bytes themes/classic/source/images/favicon.png | Bin 400 -> 0 bytes themes/classic/source/images/line-tile.png | Bin 636 -> 0 bytes themes/classic/source/images/noise.png | Bin 17742 -> 0 bytes themes/classic/source/images/rss.png | Bin 490 -> 0 bytes themes/classic/source/images/search.png | Bin 333 -> 0 bytes themes/classic/source/index.html | 31 - themes/classic/source/javascripts/ender.js | 2 - themes/classic/source/javascripts/libs/ender.js | 1497 -------------------- themes/classic/source/javascripts/libs/jXHR.js | 85 -- .../source/javascripts/libs/swfobject-dynamic.js | 298 ---- themes/classic/source/javascripts/modernizr-2.0.js | 5 - themes/classic/source/javascripts/octopress.js | 143 -- themes/classic/source/javascripts/pinboard.js | 56 - themes/classic/source/javascripts/twitter.js | 80 -- 227 files changed, 4705 insertions(+), 4692 deletions(-) create mode 100644 .themes/classic/_plugins/blockquote.rb create mode 100644 .themes/classic/_plugins/category_generator.rb create mode 100644 .themes/classic/_plugins/compass_compiler.rb create mode 100644 .themes/classic/_plugins/custom_filters.rb create mode 100644 .themes/classic/_plugins/gist_tag.rb create mode 100644 .themes/classic/_plugins/haml.rb create mode 100644 .themes/classic/_plugins/include_code.rb create mode 100644 .themes/classic/_plugins/include_file.rb create mode 100644 .themes/classic/_plugins/pullquote.rb create mode 100644 .themes/classic/_plugins/pygments_cache_patch.rb create mode 100644 .themes/classic/_plugins/sitemap_generator.rb create mode 100644 .themes/classic/_plugins/titlecase.rb create mode 100644 .themes/classic/sass/_base.scss create mode 100644 .themes/classic/sass/_partials.scss create mode 100644 .themes/classic/sass/base/_layout.scss create mode 100644 .themes/classic/sass/base/_solarized.scss create mode 100644 .themes/classic/sass/base/_theme.scss create mode 100644 .themes/classic/sass/base/_typography.scss create mode 100644 .themes/classic/sass/base/_utilities.scss create mode 100644 .themes/classic/sass/custom/_colors.scss create mode 100644 .themes/classic/sass/custom/_layout.scss create mode 100644 .themes/classic/sass/custom/_styles.scss create mode 100644 .themes/classic/sass/partials/_archive.scss create mode 100644 .themes/classic/sass/partials/_blog.scss create mode 100644 .themes/classic/sass/partials/_footer.scss create mode 100644 .themes/classic/sass/partials/_header.scss create mode 100644 .themes/classic/sass/partials/_navigation.scss create mode 100644 .themes/classic/sass/partials/_sidebar.scss create mode 100644 .themes/classic/sass/partials/_syntax.scss create mode 100644 .themes/classic/sass/partials/sidebar/_base.scss create mode 100644 .themes/classic/sass/partials/sidebar/_delicious.scss create mode 100644 .themes/classic/sass/partials/sidebar/_pinboard.scss create mode 100644 .themes/classic/sass/partials/sidebar/_twitter.scss create mode 100644 .themes/classic/sass/screen.scss create mode 100644 .themes/classic/source/_includes/archive_post.html create mode 100644 .themes/classic/source/_includes/article.html create mode 100644 .themes/classic/source/_includes/asides/delicious.html create mode 100644 .themes/classic/source/_includes/asides/pinboard.html create mode 100644 .themes/classic/source/_includes/asides/recent_posts.html create mode 100644 .themes/classic/source/_includes/asides/twitter.html create mode 100644 .themes/classic/source/_includes/disqus_thread.html create mode 100644 .themes/classic/source/_includes/footer.html create mode 100644 .themes/classic/source/_includes/google_analytics.html create mode 100644 .themes/classic/source/_includes/head.html create mode 100644 .themes/classic/source/_includes/header.html create mode 100644 .themes/classic/source/_includes/navigation.html create mode 100644 .themes/classic/source/_includes/post_author.html create mode 100644 .themes/classic/source/_includes/post_categories.html create mode 100644 .themes/classic/source/_includes/post_date.html create mode 100644 .themes/classic/source/_includes/sharing.html create mode 100644 .themes/classic/source/_includes/sidebar.html create mode 100644 .themes/classic/source/_layouts/category_index.html create mode 100644 .themes/classic/source/_layouts/default.html create mode 100644 .themes/classic/source/_layouts/page.html create mode 100644 .themes/classic/source/_layouts/post.html create mode 100644 .themes/classic/source/archives.html create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/background.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/divider.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/display/background.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/display/muteIcon.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/display/playIcon.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/dock/button.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/glow.xml create mode 100644 .themes/classic/source/assets/jwplayer/glow/playlist/item.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png create mode 100644 .themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png create mode 100644 .themes/classic/source/assets/jwplayer/player.swf create mode 100644 .themes/classic/source/atom.xml create mode 100644 .themes/classic/source/images/bird_32_gray.png create mode 100644 .themes/classic/source/images/bird_32_gray_fail.png create mode 100644 .themes/classic/source/images/code_bg.png create mode 100644 .themes/classic/source/images/dotted-border.png create mode 100644 .themes/classic/source/images/email.png create mode 100644 .themes/classic/source/images/favicon.png create mode 100644 .themes/classic/source/images/line-tile.png create mode 100644 .themes/classic/source/images/noise.png create mode 100644 .themes/classic/source/images/rss.png create mode 100644 .themes/classic/source/images/search.png create mode 100644 .themes/classic/source/index.html create mode 100644 .themes/classic/source/javascripts/ender.js create mode 100644 .themes/classic/source/javascripts/libs/ender.js create mode 100644 .themes/classic/source/javascripts/libs/jXHR.js create mode 100644 .themes/classic/source/javascripts/libs/swfobject-dynamic.js create mode 100644 .themes/classic/source/javascripts/modernizr-2.0.js create mode 100644 .themes/classic/source/javascripts/octopress.js create mode 100644 .themes/classic/source/javascripts/pinboard.js create mode 100644 .themes/classic/source/javascripts/twitter.js delete mode 100644 themes/classic/_plugins/blockquote.rb delete mode 100644 themes/classic/_plugins/category_generator.rb delete mode 100644 themes/classic/_plugins/compass_compiler.rb delete mode 100644 themes/classic/_plugins/custom_filters.rb delete mode 100644 themes/classic/_plugins/gist_tag.rb delete mode 100644 themes/classic/_plugins/haml.rb delete mode 100644 themes/classic/_plugins/include_code.rb delete mode 100644 themes/classic/_plugins/include_file.rb delete mode 100644 themes/classic/_plugins/pullquote.rb delete mode 100644 themes/classic/_plugins/pygments_cache_patch.rb delete mode 100644 themes/classic/_plugins/sitemap_generator.rb delete mode 100644 themes/classic/_plugins/titlecase.rb delete mode 100644 themes/classic/sass/_base.scss delete mode 100644 themes/classic/sass/_partials.scss delete mode 100644 themes/classic/sass/base/_layout.scss delete mode 100644 themes/classic/sass/base/_solarized.scss delete mode 100644 themes/classic/sass/base/_theme.scss delete mode 100644 themes/classic/sass/base/_typography.scss delete mode 100644 themes/classic/sass/base/_utilities.scss delete mode 100644 themes/classic/sass/custom/_colors.scss delete mode 100644 themes/classic/sass/custom/_layout.scss delete mode 100644 themes/classic/sass/custom/_styles.scss delete mode 100644 themes/classic/sass/partials/_archive.scss delete mode 100644 themes/classic/sass/partials/_blog.scss delete mode 100644 themes/classic/sass/partials/_footer.scss delete mode 100644 themes/classic/sass/partials/_header.scss delete mode 100644 themes/classic/sass/partials/_navigation.scss delete mode 100644 themes/classic/sass/partials/_sidebar.scss delete mode 100644 themes/classic/sass/partials/_syntax.scss delete mode 100644 themes/classic/sass/partials/sidebar/_base.scss delete mode 100644 themes/classic/sass/partials/sidebar/_delicious.scss delete mode 100644 themes/classic/sass/partials/sidebar/_pinboard.scss delete mode 100644 themes/classic/sass/partials/sidebar/_twitter.scss delete mode 100644 themes/classic/sass/screen.scss delete mode 100644 themes/classic/source/_includes/archive_post.html delete mode 100644 themes/classic/source/_includes/article.html delete mode 100644 themes/classic/source/_includes/asides/delicious.html delete mode 100644 themes/classic/source/_includes/asides/pinboard.html delete mode 100644 themes/classic/source/_includes/asides/recent_posts.html delete mode 100644 themes/classic/source/_includes/asides/twitter.html delete mode 100644 themes/classic/source/_includes/disqus_thread.html delete mode 100644 themes/classic/source/_includes/footer.html delete mode 100644 themes/classic/source/_includes/google_analytics.html delete mode 100644 themes/classic/source/_includes/head.html delete mode 100644 themes/classic/source/_includes/header.html delete mode 100644 themes/classic/source/_includes/navigation.html delete mode 100644 themes/classic/source/_includes/post_author.html delete mode 100644 themes/classic/source/_includes/post_categories.html delete mode 100644 themes/classic/source/_includes/post_date.html delete mode 100644 themes/classic/source/_includes/sharing.html delete mode 100644 themes/classic/source/_includes/sidebar.html delete mode 100644 themes/classic/source/_layouts/category_index.html delete mode 100644 themes/classic/source/_layouts/default.html delete mode 100644 themes/classic/source/_layouts/page.html delete mode 100644 themes/classic/source/_layouts/post.html delete mode 100644 themes/classic/source/archives.html delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/background.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/divider.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/display/background.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/display/muteIcon.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/display/playIcon.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/dock/button.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/glow.xml delete mode 100644 themes/classic/source/assets/jwplayer/glow/playlist/item.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/playlist/itemOver.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/playlist/sliderCapBottom.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/playlist/sliderCapTop.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/playlist/sliderRail.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/playlist/sliderThumb.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/sharing/embedIcon.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/sharing/embedScreen.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/sharing/shareIcon.png delete mode 100644 themes/classic/source/assets/jwplayer/glow/sharing/shareScreen.png delete mode 100644 themes/classic/source/assets/jwplayer/player.swf delete mode 100644 themes/classic/source/atom.xml delete mode 100644 themes/classic/source/images/bird_32_gray.png delete mode 100644 themes/classic/source/images/bird_32_gray_fail.png delete mode 100644 themes/classic/source/images/code_bg.png delete mode 100644 themes/classic/source/images/dotted-border.png delete mode 100644 themes/classic/source/images/email.png delete mode 100644 themes/classic/source/images/favicon.png delete mode 100644 themes/classic/source/images/line-tile.png delete mode 100644 themes/classic/source/images/noise.png delete mode 100644 themes/classic/source/images/rss.png delete mode 100644 themes/classic/source/images/search.png delete mode 100644 themes/classic/source/index.html delete mode 100644 themes/classic/source/javascripts/ender.js delete mode 100644 themes/classic/source/javascripts/libs/ender.js delete mode 100644 themes/classic/source/javascripts/libs/jXHR.js delete mode 100644 themes/classic/source/javascripts/libs/swfobject-dynamic.js delete mode 100644 themes/classic/source/javascripts/modernizr-2.0.js delete mode 100644 themes/classic/source/javascripts/octopress.js delete mode 100644 themes/classic/source/javascripts/pinboard.js delete mode 100644 themes/classic/source/javascripts/twitter.js diff --git a/.themes/classic/_plugins/blockquote.rb b/.themes/classic/_plugins/blockquote.rb new file mode 100644 index 00000000..2f0712bd --- /dev/null +++ b/.themes/classic/_plugins/blockquote.rb @@ -0,0 +1,73 @@ +# +# 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 %} +# ... +#
+#

Wheeee!

+#
+# +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 = "#{@by.strip}" + 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 << '/…' unless source == @source + end + cite = "#{(@title || source)}" + reply = if @by.nil? + output + elsif !@source.nil? + "#{output}" + else + "#{output}" + end + "
#{reply}
" + end + + def paragraphize(input) + "

#{input.gsub(/\n\n/, '

').gsub(/\n/, '
')}

" + 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 new file mode 100644 index 00000000..c5dbbcd4 --- /dev/null +++ b/.themes/classic/_plugins/category_generator.rb @@ -0,0 +1,161 @@ +# 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 +# --- +# +#

{{ page.title }}

+# +# ================================== 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 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 . + # +category_dir+ is the String path between 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 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| + "#{item}" + 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 = '' + date.strftime('%b').upcase + ' ' + result += date.strftime('%d ') + result += date.strftime('%Y ') + result + end + + end + +end + diff --git a/.themes/classic/_plugins/compass_compiler.rb b/.themes/classic/_plugins/compass_compiler.rb new file mode 100644 index 00000000..dcec746a --- /dev/null +++ b/.themes/classic/_plugins/compass_compiler.rb @@ -0,0 +1 @@ +system "compass compile --css-dir source/stylesheets" diff --git a/.themes/classic/_plugins/custom_filters.rb b/.themes/classic/_plugins/custom_filters.rb new file mode 100644 index 00000000..f0db30ee --- /dev/null +++ b/.themes/classic/_plugins/custom_filters.rb @@ -0,0 +1,75 @@ +#custom filters for Octopress + +module OctopressFilters + # Used on the blog index to split posts on the marker + def exerpt(input) + if input.index(//i) + input.split(//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}th" + else + case number.to_i % 10 + when 1; "#{number}st" + when 2; "#{number}nd" + when 3; "#{number}rd" + else "#{number}th" + 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 new file mode 100644 index 00000000..0a8797f8 --- /dev/null +++ b/.themes/classic/_plugins/gist_tag.rb @@ -0,0 +1,94 @@ +# 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 + + + 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 new file mode 100644 index 00000000..7e548dec --- /dev/null +++ b/.themes/classic/_plugins/haml.rb @@ -0,0 +1,24 @@ +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 new file mode 100644 index 00000000..fa5c76ff --- /dev/null +++ b/.themes/classic/_plugins/include_code.rb @@ -0,0 +1,40 @@ +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 = "
#{file.basename}download
\n" + source += "{% highlight #{file_type} %}\n" + code + "\n{% endhighlight %}
" + 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 new file mode 100644 index 00000000..3862228b --- /dev/null +++ b/.themes/classic/_plugins/include_file.rb @@ -0,0 +1,31 @@ +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 new file mode 100644 index 00000000..2b8544ab --- /dev/null +++ b/.themes/classic/_plugins/pullquote.rb @@ -0,0 +1,42 @@ +# +# 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... +#

+# +# 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. +# +#

+# + +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 + "#{output.join.gsub(/\{"\s*|\s*"\}/, '')}" + 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 new file mode 100644 index 00000000..09c09840 --- /dev/null +++ b/.themes/classic/_plugins/pygments_cache_patch.rb @@ -0,0 +1,30 @@ +# +# 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 new file mode 100644 index 00000000..8b6cf78c --- /dev/null +++ b/.themes/classic/_plugins/sitemap_generator.rb @@ -0,0 +1,308 @@ +# 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 new file mode 100644 index 00000000..103bf702 --- /dev/null +++ b/.themes/classic/_plugins/titlecase.rb @@ -0,0 +1,36 @@ +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 new file mode 100644 index 00000000..f6583f17 --- /dev/null +++ b/.themes/classic/sass/_base.scss @@ -0,0 +1,5 @@ +@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 new file mode 100644 index 00000000..2ffed5ba --- /dev/null +++ b/.themes/classic/sass/_partials.scss @@ -0,0 +1,7 @@ +@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 new file mode 100644 index 00000000..b24e1b29 --- /dev/null +++ b/.themes/classic/sass/base/_layout.scss @@ -0,0 +1,134 @@ +$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 new file mode 100644 index 00000000..4952120d --- /dev/null +++ b/.themes/classic/sass/base/_solarized.scss @@ -0,0 +1,16 @@ +$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 new file mode 100644 index 00000000..42fdb6f2 --- /dev/null +++ b/.themes/classic/sass/base/_theme.scss @@ -0,0 +1,76 @@ +$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 +$main-bg: #f8f8f8 !default; +$page-bg: #252525 !default; +$article-border: #eeeeee !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 new file mode 100644 index 00000000..8ab0e657 --- /dev/null +++ b/.themes/classic/sass/base/_typography.scss @@ -0,0 +1,130 @@ +$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 new file mode 100644 index 00000000..8b718cdc --- /dev/null +++ b/.themes/classic/sass/base/_utilities.scss @@ -0,0 +1,21 @@ +@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 new file mode 100644 index 00000000..0771a86c --- /dev/null +++ b/.themes/classic/sass/custom/_colors.scss @@ -0,0 +1,20 @@ +// 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 new file mode 100644 index 00000000..162f5ad6 --- /dev/null +++ b/.themes/classic/sass/custom/_layout.scss @@ -0,0 +1,16 @@ +// 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 new file mode 100644 index 00000000..91ffcccf --- /dev/null +++ b/.themes/classic/sass/custom/_styles.scss @@ -0,0 +1,2 @@ +// 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 new file mode 100644 index 00000000..fbf0dac6 --- /dev/null +++ b/.themes/classic/sass/partials/_archive.scss @@ -0,0 +1,72 @@ +#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 new file mode 100644 index 00000000..0cf11ae8 --- /dev/null +++ b/.themes/classic/sass/partials/_blog.scss @@ -0,0 +1,131 @@ +#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 new file mode 100644 index 00000000..350c562d --- /dev/null +++ b/.themes/classic/sass/partials/_footer.scss @@ -0,0 +1,19 @@ +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 new file mode 100644 index 00000000..8ae128b1 --- /dev/null +++ b/.themes/classic/sass/partials/_header.scss @@ -0,0 +1,18 @@ +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 new file mode 100644 index 00000000..be132561 --- /dev/null +++ b/.themes/classic/sass/partials/_navigation.scss @@ -0,0 +1,137 @@ +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 new file mode 100644 index 00000000..ac790e04 --- /dev/null +++ b/.themes/classic/sass/partials/_sidebar.scss @@ -0,0 +1,4 @@ +@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 new file mode 100644 index 00000000..b14b23bd --- /dev/null +++ b/.themes/classic/sass/partials/_syntax.scss @@ -0,0 +1,208 @@ +$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 new file mode 100644 index 00000000..861efc91 --- /dev/null +++ b/.themes/classic/sass/partials/sidebar/_base.scss @@ -0,0 +1,56 @@ +.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 new file mode 100644 index 00000000..e962702e --- /dev/null +++ b/.themes/classic/sass/partials/sidebar/_delicious.scss @@ -0,0 +1,4 @@ +.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 new file mode 100644 index 00000000..9f9ab461 --- /dev/null +++ b/.themes/classic/sass/partials/sidebar/_pinboard.scss @@ -0,0 +1,12 @@ +#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 new file mode 100644 index 00000000..36c6f62b --- /dev/null +++ b/.themes/classic/sass/partials/sidebar/_twitter.scss @@ -0,0 +1,33 @@ +#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 new file mode 100644 index 00000000..f08da4c2 --- /dev/null +++ b/.themes/classic/sass/screen.scss @@ -0,0 +1,9 @@ +@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 new file mode 100644 index 00000000..cd55c212 --- /dev/null +++ b/.themes/classic/source/_includes/archive_post.html @@ -0,0 +1,8 @@ +{% capture category %}{{ post.categories | size }}{% endcapture %} +

{{post.title}}

+ +{% if category != '0' %} + +{% endif %} diff --git a/.themes/classic/source/_includes/article.html b/.themes/classic/source/_includes/article.html new file mode 100644 index 00000000..b458d732 --- /dev/null +++ b/.themes/classic/source/_includes/article.html @@ -0,0 +1,25 @@ +{% unless page.no_header %} +
+ {% if index %} +

{{ post.title | titlecase }}

+ {% else %} +

{{ page.title | titlecase }}

+ {% endif %} + {% unless page.no_meta or !index %}

{% include post_date.html %}

{% endunless %} +
+{% endunless %} +{% if index %} +
{{ content | exerpt | smart_quotes }}
+

Read on →

+ +{% else %} +
{{ content | smart_quotes }}
+{% endif %} diff --git a/.themes/classic/source/_includes/asides/delicious.html b/.themes/classic/source/_includes/asides/delicious.html new file mode 100644 index 00000000..307a2e94 --- /dev/null +++ b/.themes/classic/source/_includes/asides/delicious.html @@ -0,0 +1,7 @@ +{% if site.delicious_user %} +
+

On Delicious

+ +

My Delicious Bookmarks »

+
+{% endif %} diff --git a/.themes/classic/source/_includes/asides/pinboard.html b/.themes/classic/source/_includes/asides/pinboard.html new file mode 100644 index 00000000..1cbb1379 --- /dev/null +++ b/.themes/classic/source/_includes/asides/pinboard.html @@ -0,0 +1,19 @@ +{% if site.pinboard_user %} +
+

My Pinboard

+ +

My Pinboard Bookmarks »

+
+ +{% endif %} diff --git a/.themes/classic/source/_includes/asides/recent_posts.html b/.themes/classic/source/_includes/asides/recent_posts.html new file mode 100644 index 00000000..ad3c7cc0 --- /dev/null +++ b/.themes/classic/source/_includes/asides/recent_posts.html @@ -0,0 +1,12 @@ +{% if page.single and site.recent_posts %} +
+

Recent Posts

+ +
+{% endif %} diff --git a/.themes/classic/source/_includes/asides/twitter.html b/.themes/classic/source/_includes/asides/twitter.html new file mode 100644 index 00000000..15cab8bc --- /dev/null +++ b/.themes/classic/source/_includes/asides/twitter.html @@ -0,0 +1,19 @@ +{% if site.twitter_user %} +
+

Latest Tweets

+ + + + {% if site.twitter_follow_button %} + + {% else %} +

Follow @{{ site.twitter_user }}

+ {% endif %} +
+{% endif %} diff --git a/.themes/classic/source/_includes/disqus_thread.html b/.themes/classic/source/_includes/disqus_thread.html new file mode 100644 index 00000000..f966f03a --- /dev/null +++ b/.themes/classic/source/_includes/disqus_thread.html @@ -0,0 +1,13 @@ +
+ + diff --git a/.themes/classic/source/_includes/footer.html b/.themes/classic/source/_includes/footer.html new file mode 100644 index 00000000..e12f0678 --- /dev/null +++ b/.themes/classic/source/_includes/footer.html @@ -0,0 +1,4 @@ +

+ Copyright © {{ site.time | date: "%Y" }} - {{ site.author }} - + Powered by Octopress +

diff --git a/.themes/classic/source/_includes/google_analytics.html b/.themes/classic/source/_includes/google_analytics.html new file mode 100644 index 00000000..4d4d5969 --- /dev/null +++ b/.themes/classic/source/_includes/google_analytics.html @@ -0,0 +1,13 @@ +{% if site.google_analytics_tracking_id %} + +{% endif %} diff --git a/.themes/classic/source/_includes/head.html b/.themes/classic/source/_includes/head.html new file mode 100644 index 00000000..a4eec3d3 --- /dev/null +++ b/.themes/classic/source/_includes/head.html @@ -0,0 +1,35 @@ + + + + + + + {% if page.title %} + {{site.title}}: {{page.title}}{% if site.author %} - {{ site.author }}{% endif %} + {% else %} + {{site.title}}{% if site.author %} - {{ site.author }}{% endif %} + {% endif %} + + {% if page.description %} + + {% endif %} + + + + + + + {% if page.keywords %} + + {% endif %} + + + + + + + + + {% include google_analytics.html %} + + diff --git a/.themes/classic/source/_includes/header.html b/.themes/classic/source/_includes/header.html new file mode 100644 index 00000000..de153086 --- /dev/null +++ b/.themes/classic/source/_includes/header.html @@ -0,0 +1,6 @@ +
+

{{ site.title }}

+ {% if site.subtitle %} +

{{ site.subtitle }}

+ {% endif %} +
diff --git a/.themes/classic/source/_includes/navigation.html b/.themes/classic/source/_includes/navigation.html new file mode 100644 index 00000000..e2827983 --- /dev/null +++ b/.themes/classic/source/_includes/navigation.html @@ -0,0 +1,16 @@ + +
+
+ + +
+
+ diff --git a/.themes/classic/source/_includes/post_author.html b/.themes/classic/source/_includes/post_author.html new file mode 100644 index 00000000..b2db9043 --- /dev/null +++ b/.themes/classic/source/_includes/post_author.html @@ -0,0 +1,6 @@ +{% if post.author %} + {% assign author = post.author %} +{% else %} + {% assign author = site.author %} +{% endif %} +{% if author %}Posted by {{ author }}{% endif %} diff --git a/.themes/classic/source/_includes/post_categories.html b/.themes/classic/source/_includes/post_categories.html new file mode 100644 index 00000000..7bf7528f --- /dev/null +++ b/.themes/classic/source/_includes/post_categories.html @@ -0,0 +1,10 @@ +{% capture category %}{% if post %}{{ post.categories | category_links | size }}{% else %}{{ page.categories | category_links | size }}{% endif %}{% endcapture %} +{% unless category == '0' %} + in + {% if post %} + {{ post.categories | category_links }} + {% else %} + {{ page.categories | category_links }} + {% endif %} + +{% endunless %} diff --git a/.themes/classic/source/_includes/post_date.html b/.themes/classic/source/_includes/post_date.html new file mode 100644 index 00000000..f1ed4815 --- /dev/null +++ b/.themes/classic/source/_includes/post_date.html @@ -0,0 +1,10 @@ +{% 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' %} + +{% endif %} +{% if was_updated != '0' %} + +{% endif %} diff --git a/.themes/classic/source/_includes/sharing.html b/.themes/classic/source/_includes/sharing.html new file mode 100644 index 00000000..ad3112ee --- /dev/null +++ b/.themes/classic/source/_includes/sharing.html @@ -0,0 +1 @@ +Tweet diff --git a/.themes/classic/source/_includes/sidebar.html b/.themes/classic/source/_includes/sidebar.html new file mode 100644 index 00000000..0bce3c77 --- /dev/null +++ b/.themes/classic/source/_includes/sidebar.html @@ -0,0 +1,8 @@ +
+

About Me

+

Hi, I'm Octopress!

+
+{% 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 new file mode 100644 index 00000000..699f3dec --- /dev/null +++ b/.themes/classic/source/_layouts/category_index.html @@ -0,0 +1,12 @@ +--- +layout: post +no_meta: true +--- + +
+{% for post in site.categories[page.category] %} +
+ {% include archive_post.html %} +
+{% endfor %} +
diff --git a/.themes/classic/source/_layouts/default.html b/.themes/classic/source/_layouts/default.html new file mode 100644 index 00000000..4e4f81a3 --- /dev/null +++ b/.themes/classic/source/_layouts/default.html @@ -0,0 +1,26 @@ +{% include head.html %} + +
{% include header.html %}
+ +
+
+
{{ content }}
+ {% unless page.sidebar == 'none' %} + + {% endunless %} +
+
+ + {% if site.twitter_follow_button or site.twitter_tweet_button %} + + {% endif %} + + diff --git a/.themes/classic/source/_layouts/page.html b/.themes/classic/source/_layouts/page.html new file mode 100644 index 00000000..0c59c990 --- /dev/null +++ b/.themes/classic/source/_layouts/page.html @@ -0,0 +1,5 @@ +--- +layout: post +--- + + diff --git a/.themes/classic/source/_layouts/post.html b/.themes/classic/source/_layouts/post.html new file mode 100644 index 00000000..5f55e89f --- /dev/null +++ b/.themes/classic/source/_layouts/post.html @@ -0,0 +1,24 @@ +--- +layout: default +single: true +--- + +
+ {% include article.html %} + {% unless page.no_meta %} +
+

+ {% include post_author.html %} + {% include post_date.html %} + {% include post_categories.html %} + {% include sharing.html %} +

+
+ {% endunless %} + {% if site.disqus_short_name %} +
+

Comments

+
{% include disqus_thread.html %}
+
+ {% endif %} +
diff --git a/.themes/classic/source/archives.html b/.themes/classic/source/archives.html new file mode 100644 index 00000000..ebf447c9 --- /dev/null +++ b/.themes/classic/source/archives.html @@ -0,0 +1,17 @@ +--- +layout: post +title: Blog Archive +no_meta: true +--- +
+{% for post in site.posts reverse %} +{% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %} +{% unless year == this_year %} + {% assign year = this_year %} +

{{ year }}

+{% endunless %} +
+ {% include archive_post.html %} +
+{% endfor %} +
diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png new file mode 100644 index 00000000..c2824cc4 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/background.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png new file mode 100644 index 00000000..010159f3 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/blankButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png new file mode 100644 index 00000000..77cd829a Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/divider.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png new file mode 100644 index 00000000..e06aa50c Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png new file mode 100644 index 00000000..d2bc4fc7 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/fullscreenButtonOver.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png new file mode 100644 index 00000000..40c40ab2 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png new file mode 100644 index 00000000..96fe7bb0 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/muteButtonOver.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png new file mode 100644 index 00000000..22295074 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png new file mode 100644 index 00000000..15db44d4 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/normalscreenButtonOver.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png new file mode 100644 index 00000000..e399bf34 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png new file mode 100644 index 00000000..409d89d2 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/pauseButtonOver.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png new file mode 100644 index 00000000..f8d9a007 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/playButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png new file mode 100644 index 00000000..3fe28484 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/playButtonOver.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png new file mode 100644 index 00000000..73b371ab Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderBuffer.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png new file mode 100644 index 00000000..72322171 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapLeft.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png new file mode 100644 index 00000000..626444a6 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderCapRight.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png new file mode 100644 index 00000000..132a8e7d Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderProgress.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png new file mode 100644 index 00000000..27851dfd Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/timeSliderRail.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png new file mode 100644 index 00000000..3658453c Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButton.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png new file mode 100644 index 00000000..138ebb35 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/controlbar/unmuteButtonOver.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/display/background.png b/.themes/classic/source/assets/jwplayer/glow/display/background.png new file mode 100644 index 00000000..391152f5 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/display/background.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png b/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png new file mode 100644 index 00000000..a3819c1e Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/display/bufferIcon.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png b/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png new file mode 100644 index 00000000..e0408bbd Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/display/muteIcon.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png b/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png new file mode 100644 index 00000000..cb384278 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/display/playIcon.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/dock/button.png b/.themes/classic/source/assets/jwplayer/glow/dock/button.png new file mode 100644 index 00000000..391152f5 Binary files /dev/null and b/.themes/classic/source/assets/jwplayer/glow/dock/button.png differ diff --git a/.themes/classic/source/assets/jwplayer/glow/glow.xml b/.themes/classic/source/assets/jwplayer/glow/glow.xml new file mode 100644 index 00000000..7d5ba038 --- /dev/null +++ b/.themes/classic/source/assets/jwplayer/glow/glow.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + +