Permalink
Browse files

Merge branch 'master' of https://github.com/imathis/octopress into bo…

…inkor.net

* 'master' of https://github.com/imathis/octopress: (108 commits)
  Fix for issue #622
  Updated gems and rubies to 1.9.3
  Example repo URL - see Github issue 516
  Adding .powrc to allow RVM to work when POW is updated to version 0.4.0 and beyond.
  Do not strip trailing slash of canonical URLs.
  updated plugins to work with latest version of Liquid
  Updated Gemfile
  Octopress filters are now limited to html producing templating languages, Fixes #536
  Fixed “3rd party plugins” wiki page link
  updated to latest version of Sass, fixed deprecation warnings
  Don't display comments link for post excerpts on index page when comments for that post are set to false.
  Github -> GitHub (capitalization)
  Fix typo
  Fix CRLF, closes #374
  Fix for annoying overflow scroll issues caused by facebook and twitter share/follow widgets.
  tilecase -> titlecase
  Fix delicious widget js error JS error occured when there's no tags on bookmarks Check if it's an empty string before join item[i].t
  now Github repo url can be specified inline setup_github_pages command
  added site-wide description to config.yml (this provides a default meta description for the site, but can be overridden on on any page with page.description in the yaml)
  Removed redeclaration of sidebar-border.
  ...

Conflicts:
	.gitignore
	Rakefile
	_config.yml
  • Loading branch information...
2 parents e2d772b + 89701e1 commit a6bcc58b10fd552a9858a9b734aa3a01314c7dd3 @antifuchs committed Aug 24, 2012
Showing with 1,343 additions and 394 deletions.
  1. +2 −1 .gitignore
  2. +5 −0 .powrc
  3. +1 −1 .rbenv-version
  4. +1 −1 .rvmrc
  5. +41 −13 .themes/classic/sass/base/_layout.scss
  6. +21 −9 .themes/classic/sass/base/_solarized.scss
  7. +6 −2 .themes/classic/sass/base/_theme.scss
  8. +26 −9 .themes/classic/sass/base/_typography.scss
  9. +7 −2 .themes/classic/sass/custom/_colors.scss
  10. +10 −0 .themes/classic/sass/custom/_fonts.scss
  11. +4 −0 .themes/classic/sass/custom/_layout.scss
  12. +6 −7 .themes/classic/sass/partials/_blog.scss
  13. +1 −1 .themes/classic/sass/partials/_footer.scss
  14. +4 −3 .themes/classic/sass/partials/_navigation.scss
  15. +2 −0 .themes/classic/sass/partials/_sharing.scss
  16. +1 −0 .themes/classic/sass/partials/_sidebar.scss
  17. +26 −18 .themes/classic/sass/partials/_syntax.scss
  18. +1 −0 .themes/classic/sass/partials/sidebar/_base.scss
  19. +26 −0 .themes/classic/sass/partials/sidebar/_googleplus.scss
  20. +1 −1 .themes/classic/sass/partials/sidebar/_twitter.scss
  21. +1 −0 .themes/classic/sass/screen.scss
  22. +5 −0 .themes/classic/source/_includes/after_footer.html
  23. +3 −3 .themes/classic/source/_includes/article.html
  24. +1 −1 .themes/classic/source/_includes/asides/delicious.html
  25. +2 −2 .themes/classic/source/_includes/asides/github.html
  26. +11 −0 .themes/classic/source/_includes/asides/googleplus.html
  27. +1 −1 .themes/classic/source/_includes/asides/twitter.html
  28. +3 −0 .themes/classic/source/_includes/custom/after_footer.html
  29. +27 −0 .themes/classic/source/_includes/custom/category_feed.xml
  30. +3 −4 .themes/classic/source/_includes/disqus.html
  31. +10 −0 .themes/classic/source/_includes/facebook_like.html
  32. +2 −1 .themes/classic/source/_includes/head.html
  33. +2 −0 .themes/classic/source/_includes/navigation.html
  34. +6 −3 .themes/classic/source/_includes/post/date.html
  35. +3 −0 .themes/classic/source/_includes/post/sharing.html
  36. +1 −4 .themes/classic/source/_layouts/default.html
  37. +1 −1 .themes/classic/source/_layouts/page.html
  38. +8 −0 .themes/classic/source/_layouts/post.html
  39. +114 −114 .themes/classic/source/assets/jwplayer/glow/glow.xml
  40. +6 −7 .themes/classic/source/atom.xml
  41. +9 −11 .themes/classic/source/index.html
  42. +12 −5 .themes/classic/source/javascripts/ender.js
  43. +9 −11 .themes/classic/source/javascripts/github.js
  44. +7 −3 .themes/classic/source/javascripts/octopress.js
  45. +24 −23 .themes/classic/source/javascripts/twitter.js
  46. +13 −12 Gemfile
  47. +45 −41 Gemfile.lock
  48. +12 −4 README.markdown
  49. +49 −25 Rakefile
  50. +19 −2 _config.yml
  51. +3 −3 plugins/backtick_code_block.rb
  52. +4 −4 plugins/blockquote.rb
  53. +36 −0 plugins/category_generator.rb
  54. +2 −1 plugins/code_block.rb
  55. +0 −1 plugins/compass_compiler.rb
  56. +98 −0 plugins/date.rb
  57. +7 −1 plugins/gist_tag.rb
  58. +41 −29 plugins/octopress_filters.rb
  59. +48 −0 plugins/preview_unpublished.rb
  60. +10 −5 plugins/pullquote.rb
  61. +2 −2 plugins/pygments_code.rb
  62. +489 −0 plugins/rubypants.rb
  63. +2 −2 plugins/titlecase.rb
View
3 .gitignore
@@ -10,4 +10,5 @@ source.old
source/_stash
source/stylesheets/screen.css
vendor
-_import
+_import
+node_modules
View
5 .powrc
@@ -0,0 +1,5 @@
+if [ -f "$rvm_path/scripts/rvm" ] && [ -f ".rvmrc" ] ; then
+ source "$rvm_path/scripts/rvm"
+ source ".rvmrc"
+fi
+
View
2 .rbenv-version
@@ -1 +1 @@
-1.9.2-p290
+1.9.3-p0
View
2 .rvmrc
@@ -1 +1 @@
-rvm 1.9.2
+rvm use 1.9.3
View
54 .themes/classic/sass/base/_layout.scss
@@ -14,6 +14,10 @@ $sidebar-width-wide: 300px !default;
$indented-lists: false !default;
+$header-font-size: 1em !default;
+$header-padding-top: 1.5em !default;
+$header-padding-bottom: 1.5em !default;
+
.group { @include pie-clearfix; }
@mixin collapse-sidebar {
@@ -32,7 +36,10 @@ $indented-lists: false !default;
&.thirds section {
width: 30%;
margin-left: 5%;
- &.first { margin-left: 0; }
+ &.first {
+ margin-left: 0;
+ clear: both;
+ }
}
}
@@ -41,7 +48,7 @@ body {
max-width: $max-width;
position: relative;
margin: 0 auto;
- > header, > nav, > footer, #content > article, #content > div > article, #content > div > section, nav.pagination {
+ > header, > nav, > footer, #content > article, #content > div > article, #content > div > section {
@extend .group;
padding-left: $pad-min;
padding-right: $pad-min;
@@ -58,14 +65,34 @@ body {
padding-right: $pad-wide;
}
}
+ div.pagination {
+ @extend .group;
+ margin-left: $pad-min;
+ margin-right: $pad-min;
+ @media only screen and (min-width: 480px) {
+ margin-left: $pad-narrow;
+ margin-right: $pad-narrow;
+ }
+ @media only screen and (min-width: 768px) {
+ margin-left: $pad-medium;
+ margin-right: $pad-medium;
+ }
+ @media only screen and (min-width: 992px) {
+ margin-left: $pad-wide;
+ margin-right: $pad-wide;
+ }
+ }
> header {
- font-size: 1em;
- padding-top: 1.5em;
- padding-bottom: 1.5em;
+ font-size: $header-font-size;
+ padding-top: $header-padding-top;
+ padding-bottom: $header-padding-bottom;
}
}
-#content { > div, > article { width: 100%; }}
+#content {
+ overflow: hidden;
+ > div, > article { width: 100%; }
+}
aside.sidebar {
float: none;
@@ -95,21 +122,23 @@ body.sidebar-footer {
}
@media only screen and (min-width: 550px) {
- body > header { font-size: 1em; }
+ body > header { font-size: $header-font-size; }
}
@media only screen and (min-width: 750px) {
aside.sidebar { @include collapse-sidebar; }
}
+#main, #content, .sidebar {
+ @extend .group;
+}
@media only screen and (min-width: 768px) {
body { -webkit-text-size-adjust: auto; }
- body > header { font-size: 1.2em; }
+ body > header { font-size: $header-font-size * 1.2; }
#main {
- @extend .group;
padding: 0;
margin: 0 auto;
}
#content {
- @extend .group;
+ overflow: visible;
margin-right: $sidebar-width-medium;
position: relative;
.no-sidebar & { margin-right: 0; border-right: 0; }
@@ -121,7 +150,6 @@ body.sidebar-footer {
}
}
aside.sidebar {
- @extend .group;
width: $sidebar-width-medium - $sidebar-pad-medium*2;
padding: 0 $sidebar-pad-medium $sidebar-pad-medium;
background: none;
@@ -139,7 +167,7 @@ body.sidebar-footer {
}
@media only screen and (min-width: 992px) {
- body > header { font-size: 1.3em; }
+ body > header { font-size: $header-font-size * 1.3; }
#content { margin-right: $sidebar-width-wide; }
#content {
> div, > article {
@@ -152,7 +180,6 @@ body.sidebar-footer {
padding: 1.2em $sidebar-pad-wide $sidebar-pad-wide;
.collapse-sidebar & {
padding: { left: $pad-wide; right: $pad-wide; }
- @extend .group;
}
}
}
@@ -162,3 +189,4 @@ body.sidebar-footer {
ul, ol { margin-left: 0; }
}
}
+
View
30 .themes/classic/sass/base/_solarized.scss
@@ -18,17 +18,29 @@ $solar-green: #859900 !default;
$solarized: dark !default;
@if $solarized == light {
- $base03: #fdf6e3;
- $base02: #eee8d5;
- $base01: #93a1a1;
- $base00: #839496;
- $base0: #657b83;
- $base1: #586e75;
- $base2: #073642;
- $base3: #002b36;
+
+ $_base03: $base03;
+ $_base02: $base02;
+ $_base01: $base01;
+ $_base00: $base00;
+ $_base0: $base0;
+ $_base1: $base1;
+ $_base2: $base2;
+ $_base3: $base3;
+
+ $base03: $_base3;
+ $base02: $_base2;
+ $base01: $_base1;
+ $base00: $_base0;
+ $base0: $_base00;
+ $base1: $_base01;
+ $base2: $_base02;
+ $base3: $_base03;
}
/* non highlighted code colors */
$pre-bg: $base03 !default;
-$pre-border: $base02 !default;
+$pre-border: darken($base02, 5) !default;
$pre-color: $base1 !default;
+
+
View
8 .themes/classic/sass/base/_theme.scss
@@ -1,4 +1,4 @@
-$noise-bg: image-url('noise.png') top left;
+$noise-bg: image-url('noise.png') top left !default;
$img-border: inline-image('dotted-border.png');
// Main Link Colors
@@ -23,6 +23,8 @@ $type-border: #ddd !default;
/* Navigation */
$nav-bg: #ccc !default;
+$nav-bg-front: image-url('noise.png') !default;
+$nav-bg-back: linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11)) !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;
@@ -39,13 +41,15 @@ $sidebar-link-color-hover: $link-color-hover !default;
$sidebar-link-color-active: $link-color-active !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-border-hover: 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-bg-front: image-url('noise.png') !default;
+$footer-bg-back: linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11)) !default;
$footer-color: darken($footer-bg, 38) !default;
$footer-color-hover: darken($footer-color, 10) !default;
$footer-border-top: lighten($footer-bg, 15) !default;
View
35 .themes/classic/sass/base/_typography.scss
@@ -1,21 +1,30 @@
$blockquote: $type-border !default;
-$mono: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace;
+$sans: "PT Sans", "Helvetica Neue", Arial, sans-serif !default;
+$serif: "PT Serif", Georgia, Times, "Times New Roman", serif !default;
+$mono: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace !default;
+$heading-font-family: "PT Serif", "Georgia", "Helvetica Neue", Arial, sans-serif !default;
+$header-title-font-family: $heading-font-family !default;
+$header-subtitle-font-family: $heading-font-family !default;
// Fonts
.heading {
- font-family: "PT Serif", "Georgia", "Helvetica Neue", Arial, sans-serif;
+ font-family: $heading-font-family;
}
-.sans { font-family: "PT Sans", "Helvetica Neue", Arial, sans-serif; }
-.serif { font-family: "PT Serif", Georgia, Times, "Times New Roman", serif; }
+.sans { font-family: $sans; }
+.serif { font-family: $serif; }
.mono { font-family: $mono; }
body > header h1 {
font-size: 2.2em;
@extend .heading;
+ font-family: $header-title-font-family;
font-weight: normal;
line-height: 1.2em;
margin-bottom: 0.6667em;
}
+body > header h2 {
+ font-family: $header-subtitle-font-family;
+}
body {
line-height: 1.5em;
@@ -56,12 +65,12 @@ h6, section h5, section section h4, section section section h3 {
p, blockquote, ul, ol { margin-bottom: 1.5em; }
ul { list-style-type: disc;
- ul { list-style-type: circle;
- ul { list-style-type: square; }}}
+ ul { list-style-type: circle; margin-bottom: 0px;
+ ul { list-style-type: square; margin-bottom: 0px; }}}
ol { list-style-type: decimal;
- ol { list-style-type: lower-alpha;
- ol { list-style-type: lower-roman; }}}
+ ol { list-style-type: lower-alpha; margin-bottom: 0px;
+ ol { list-style-type: lower-roman; margin-bottom: 0px; }}}
ul, ol { &, ul, ol { margin-left: 1.3em; }}
@@ -115,7 +124,8 @@ blockquote {
}
}
-.has-pullquote:before {
+.pullquote-right:before,
+.pullquote-left:before {
/* Reset metrics. */
padding: 0;
border: none;
@@ -134,6 +144,13 @@ blockquote {
font-size: 1.4em;
line-height: 1.45em;
}
+
+.pullquote-left:before {
+ /* Make left pullquotes align properly. */
+ float: left;
+ margin: .5em 1.5em 1em 0;
+}
+
/* @extend this to force long lines of continuous text to wrap */
.force-wrap {
white-space: -moz-pre-wrap;
View
9 .themes/classic/sass/custom/_colors.scss
@@ -5,13 +5,18 @@
//$header-bg: #263347;
//$subtitle-color: lighten($header-bg, 58);
//$nav-bg: desaturate(lighten(#8fc17a, 18), 5);
+//$nav-bg-front: image-url('noise.png');
+//$nav-bg-back: linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11));
//$sidebar-bg: desaturate(#eceff5, 8);
//$sidebar-link-color: saturate(#526f9a, 10);
//$sidebar-link-color-hover: darken(#7ab662, 9);
+//$footer-bg: #ccc !default;
+//$footer-bg-front: image-url('noise.png');
+//$footer-bg-back: linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11));
/* To use the light Solarized highlighting theme uncomment the following line */
-//$solarized: light
+//$solarized: light;
/* If you want to tweak the Solarized colors you can do that here */
//$base03: #002b36; //darkest blue
@@ -34,5 +39,5 @@
/* Non highlighted code colors */
//$pre-bg: $base03;
-//$pre-border: $base02;
+//$pre-border: darken($base02, 5);
//$pre-color: $base1;
View
10 .themes/classic/sass/custom/_fonts.scss
@@ -0,0 +1,10 @@
+// Here you can easily change font faces which are used in your site.
+// To give it a try, uncomment some of the lines below rebuild your blog, and see how it works. your sites's.
+// If you love to use Web Fonts, you also need to add some lines to source/_includes/custom/head.html
+
+//$sans: "Optima", sans-serif;
+//$serif: "Baskerville", serif;
+//$mono: "Courier", monospace;
+//$heading-font-family: "Verdana", sans-serif;
+//$header-title-font-family: "Futura", sans-serif;
+//$header-subtitle-font-family: "Futura", sans-serif;
View
4 .themes/classic/sass/custom/_layout.scss
@@ -1,6 +1,10 @@
// 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.
+//$header-font-size: 1em;
+//$header-padding-top: 1.5em;
+//$header-padding-bottom: 1.5em;
+
//$max-width: 1350px;
//$indented-lists: true;
View
13 .themes/classic/sass/partials/_blog.scss
@@ -1,5 +1,4 @@
article {
- overflow: hidden;
padding-top: 1em;
a { @extend .force-wrap; }
header {
@@ -74,6 +73,8 @@ article {
p.meta {
margin-bottom: .8em;
font-size: .85em;
+ clear: both;
+ overflow: hidden;
}
.byline + time:before, time +time:before, .comments:before, .byline ~ .categories:before {
@extend .separator;
@@ -121,14 +122,12 @@ article + article {
display: inline-block;
}
-#content nav.pagination {
+#content div.pagination {
text-align: center;
font-size: .95em;
- div {
- position: relative;
- background: $img-border top left repeat-x;
- padding: {top: 1.5em; bottom: 1.5em;}
- }
+ position: relative;
+ background: $img-border top left repeat-x;
+ padding: {top: 1.5em; bottom: 1.5em;}
a {
text-decoration: none;
color: $text-color-light;
View
2 .themes/classic/sass/partials/_footer.scss
@@ -4,7 +4,7 @@ body > footer {
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)));
+ @include background($footer-bg-front, $footer-bg-back);
border-top: 1px solid $footer-border-top;
position: relative;
padding-top: 1em;
View
7 .themes/classic/sass/partials/_navigation.scss
@@ -1,7 +1,7 @@
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)));
+ @include background($nav-bg-front, $nav-bg-back);
border: {
top: 1px solid $nav-border-top;
bottom: 1px solid $nav-border-bottom; }
@@ -13,7 +13,7 @@ body > nav {
.search {
padding: .3em .5em 0;
font-size: .85em;
- @extend .sans;
+ font-family: $sans;
line-height: 1.1em;
width: 95%;
@include border-radius(.5em);
@@ -54,7 +54,7 @@ body > nav {
}
a {
@include link-colors($nav-color, $nav-color-hover, $visited: $nav-color);
- @extend .sans;
+ font-family: $sans;
text-shadow: lighten($nav-bg, 12) 0 1px;
float: left;
text-decoration: none;
@@ -134,3 +134,4 @@ body > nav {
a[rel=subscribe-rss]{ @include mask-subscription-nav('rss.png'); }
a[rel=subscribe-email]{ @include mask-subscription-nav('email.png'); }
}
+
View
2 .themes/classic/sass/partials/_sharing.scss
@@ -4,3 +4,5 @@
background: $img-border top left repeat-x;
}
}
+
+#fb-root { display: none; }
View
1 .themes/classic/sass/partials/_sidebar.scss
@@ -1,4 +1,5 @@
@import "sidebar/base";
@import "sidebar/twitter";
+@import "sidebar/googleplus";
@import "sidebar/pinboard";
@import "sidebar/delicious";
View
44 .themes/classic/sass/partials/_syntax.scss
@@ -1,4 +1,5 @@
.highlight, html .gist .gist-file .gist-syntax .gist-highlight {
+ table td.code { width: 100%; }
.line-numbers {
text-align: right;
font-size: 13px;
@@ -20,17 +21,19 @@
}
border: 1px solid $pre-border !important;
}
+figure.code, .gist-file, pre {
+ @include box-shadow(rgba(#000, .06) 0 0 10px);
+ .highlight pre { @include box-shadow(none); }
+}
+
html .gist .gist-file {
margin-bottom: 1.8em;
position: relative;
border: none;
padding-top: image-height("code_bg.png") !important;
.gist-syntax {
- @if $solarized == dark {
- border-bottom: 1px solid $base03 !important;
- } @else if $solarized == light {
- border-bottom: 0px;
- }
+ border-bottom: 0 !important;
+ background: none !important;
.gist-highlight{
background: $base03 !important;
pre {
@@ -45,6 +48,7 @@ html .gist .gist-file {
font-size: .7em !important;
@if $solarized == light {
background: lighten($base03, 2) $noise-bg;
+ border: 1px solid $pre-border !important;
border-top: 1px solid lighten($base03, 2) !important;
} @else {
background: $base02 $noise-bg;
@@ -85,19 +89,21 @@ h3.filename {
+ pre { @include border-top-radius(0px); }
}
-p code,
-li code {
- @extend .mono;
- display: inline-block;
- white-space: no-wrap;
- background: #fff;
- font-size: .8em;
- line-height: 1.5em;
- color: #555;
- border: 1px solid #ddd;
- @include border-radius(.4em);
- padding: 0 .3em;
- margin: -1px 0;
+p, li {
+ code {
+ @extend .mono;
+ display: inline-block;
+ white-space: no-wrap;
+ background: #fff;
+ font-size: .8em;
+ line-height: 1.5em;
+ color: #555;
+ border: 1px solid #ddd;
+ @include border-radius(.4em);
+ padding: 0 .3em;
+ margin: -1px 0;
+ }
+ pre code { font-size: 1em !important; background: none; border: none; }
}
.pre-code {
@@ -216,6 +222,7 @@ figure.code {
margin-bottom: 0;
}
}
+
.code-title {
text-align: center;
font-size: 13px;
@@ -243,3 +250,4 @@ figure.code {
text-shadow: #cbcccc 0 1px 0;
padding-left: 3em;
}
+
View
1 .themes/classic/sass/partials/sidebar/_base.scss
@@ -2,6 +2,7 @@
@include box-shadow(lighten($sidebar-bg, 5) 0 1px);
}
aside.sidebar {
+ overflow: hidden;
color: $sidebar-color;
text-shadow: lighten($sidebar-bg, 8) 0 1px;
a { @extend .force-wrap; }
View
26 .themes/classic/sass/partials/sidebar/_googleplus.scss
@@ -0,0 +1,26 @@
+.googleplus {
+ h1 {
+ -moz-box-shadow: none !important;
+ -webkit-box-shadow: none !important;
+ -o-box-shadow: none !important;
+ box-shadow: none !important;
+ border-bottom: 0px none !important;
+ }
+ a {
+ text-decoration: none;
+ white-space: normal !important;
+ line-height: 32px;
+
+ img {
+ float: left;
+ margin-right: 0.5em;
+ border: 0 none;
+ }
+ }
+}
+
+.googleplus-hidden {
+ position: absolute;
+ top: -1000em;
+ left: -1000em;
+}
View
2 .themes/classic/sass/partials/sidebar/_twitter.scss
@@ -13,7 +13,7 @@
position: relative;
padding-right: 1em;
}
- a[href*=status]{
+ a[href*=status]:first-child {
color: $twitter-status-link;
float: right;
padding: 0 0 .1em 1em;
View
1 .themes/classic/sass/screen.scss
@@ -3,6 +3,7 @@
@include reset-html5;
@import "custom/colors";
+@import "custom/fonts";
@import "custom/layout";
@import "base";
@import "partials";
View
5 .themes/classic/source/_includes/after_footer.html
@@ -0,0 +1,5 @@
+{% include disqus.html %}
+{% include facebook_like.html %}
+{% include google_plus_one.html %}
+{% include twitter_sharing.html %}
+{% include custom/after_footer.html %}
View
6 .themes/classic/source/_includes/article.html
@@ -1,14 +1,14 @@
{% unless page.no_header %}
<header>
{% if index %}
- <h1 class="entry-title"><a href="{{ root_url }}{{ post.url }}">{{ post.title | titlecase }}</a></h1>
+ <h1 class="entry-title"><a href="{{ root_url }}{{ post.url }}">{% if site.titlecase %}{{ post.title | titlecase }}{% else %}{{ post.title }}{% endif %}</a></h1>
{% else %}
- <h1 class="entry-title">{{ page.title | titlecase }}</h1>
+ <h1 class="entry-title">{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}</h1>
{% endif %}
{% unless page.meta == false %}
<p class="meta">
{% include post/date.html %}{{ time }}
- {% if site.disqus_short_name and page.comments != false and site.disqus_show_comment_count == true %}
+ {% if site.disqus_short_name and page.comments != false and post.comments != false and site.disqus_show_comment_count == true %}
| <a href="{% if index %}{{ root_url }}{{ post.url }}{% endif %}#disqus_thread">Comments</a>
{% endif %}
</p>
View
2 .themes/classic/source/_includes/asides/delicious.html
@@ -2,7 +2,7 @@
<section>
<h1>On Delicious</h1>
<div id="delicious"></div>
- <script type="text/javascript" src="http://feeds.delicious.com/v1/json/{{ site.delicious_user }}?count={{ site.delicious_count }}&amp;sort=date&amp;callback=renderDeliciousLinks"></script>
+ <script type="text/javascript" src="http://feeds.delicious.com/v2/json/{{ site.delicious_user }}?count={{ site.delicious_count }}&amp;sort=date&amp;callback=renderDeliciousLinks"></script>
<p><a href="http://delicious.com/{{ site.delicious_user }}">My Delicious Bookmarks &raquo;</a></p>
</section>
{% endif %}
View
4 .themes/classic/source/_includes/asides/github.html
@@ -1,11 +1,11 @@
{% if site.github_user %}
<section>
- <h1>Github Repos</h1>
+ <h1>GitHub Repos</h1>
<ul id="gh_repos">
<li class="loading">Status updating...</li>
</ul>
{% if site.github_show_profile_link %}
- <a href="https://github.com/{{site.github_user}}">@{{site.github_user}}</a> on Github
+ <a href="https://github.com/{{site.github_user}}">@{{site.github_user}}</a> on GitHub
{% endif %}
<script type="text/javascript">
$.domReady(function(){
View
11 .themes/classic/source/_includes/asides/googleplus.html
@@ -0,0 +1,11 @@
+{% if site.googleplus_user %}
+<section class="googleplus{% if site.googleplus_hidden %} googleplus-hidden{% endif %}">
+ <h1>
+ <a href="https://plus.google.com/{{ site.googleplus_user }}?rel=author">
+ <img src="http://www.google.com/images/icons/ui/gprofile_button-32.png" width="32" height="32">
+ Google+
+ </a>
+ </h1>
+</section>
+{% endif %}
+
View
2 .themes/classic/source/_includes/asides/twitter.html
@@ -11,7 +11,7 @@
</script>
<script src="{{ root_url }}/javascripts/twitter.js" type="text/javascript"> </script>
{% if site.twitter_follow_button %}
- <a href="http://twitter.com/{{ site.twitter_user }}" class="twitter-follow-button" data-width="208px" data-show-count="{{ site.twitter_show_follower_count }}">Follow @{{ site.twitter_user }}</a>
+ <a href="http://twitter.com/{{ site.twitter_user }}" class="twitter-follow-button" data-show-count="{{ site.twitter_show_follower_count }}">Follow @{{ site.twitter_user }}</a>
{% else %}
<p>Follow <a href="http://twitter.com/{{site.twitter_user}}">@{{ site.twitter_user }}</a></p>
{% endif %}
View
3 .themes/classic/source/_includes/custom/after_footer.html
@@ -0,0 +1,3 @@
+{% comment %}
+ Add content to be output at the bottom of each page. (You might use this for analytics scripts, for example)
+{% endcomment %}
View
27 .themes/classic/source/_includes/custom/category_feed.xml
@@ -0,0 +1,27 @@
+---
+layout: nil
+---
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+
+ <title><![CDATA[{{ page.title }} | {{ site.title }}]]></title>
+ <link href="{{ site.url }}/{{ page.feed_url }}" rel="self"/>
+ <link href="{{ site.url }}/"/>
+ <updated>{{ site.time | date_to_xmlschema }}</updated>
+ <id>{{ site.url }}/</id>
+ <author>
+ <name><![CDATA[{{ site.author | strip_html }}]]></name>
+ {% if site.email %}<email><![CDATA[{{ site.email }}]]></email>{% endif %}
+ </author>
+ <generator uri="http://octopress.org/">Octopress</generator>
+
+ {% for post in site.categories[page.category] limit: 5 %}
+ <entry>
+ <title type="html"><![CDATA[{{ post.title | cdata_escape }}]]></title>
+ <link href="{{ site.url }}{{ post.url }}"/>
+ <updated>{{ post.date | date_to_xmlschema }}</updated>
+ <id>{{ site.url }}{{ post.id }}</id>
+ <content type="html"><![CDATA[{{ post.content | expand_urls: site.url | markdownify | cdata_escape }}]]></content>
+ </entry>
+ {% endfor %}
+</feed>
View
7 .themes/classic/source/_includes/disqus.html
@@ -1,19 +1,18 @@
{% comment %} Load script if disquss comments are enabled and `page.comments` is either empty (index) or set to true {% endcomment %}
{% if site.disqus_short_name and page.comments != false %}
<script type="text/javascript">
- (function () {
var disqus_shortname = '{{ site.disqus_short_name }}';
{% if page.comments == true %}
{% comment %} `page.comments` can be only be set to true on pages/posts, so we embed the comments here. {% endcomment %}
// var disqus_developer = 1;
var disqus_identifier = '{{ site.url }}{{ page.url }}';
var disqus_url = '{{ site.url }}{{ page.url }}';
- var disqus_script = 'embed.js'
+ var disqus_script = 'embed.js';
{% else %}
{% comment %} As `page.comments` is empty, we must be on the index page. {% endcomment %}
- var disqus_script = 'count.js'
+ var disqus_script = 'count.js';
{% endif %}
-
+ (function () {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/' + disqus_script;
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
View
10 .themes/classic/source/_includes/facebook_like.html
@@ -0,0 +1,10 @@
+{% if site.facebook_like %}
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+ var js, fjs = d.getElementsByTagName(s)[0];
+ if (d.getElementById(id)) {return;}
+ js = d.createElement(s); js.id = id;
+ js.src = "//connect.facebook.net/en_US/all.js#appId=212934732101925&xfbml=1";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+{% endif %}
View
3 .themes/classic/source/_includes/head.html
@@ -8,7 +8,7 @@
<meta name="author" content="{{ site.author }}">
{% capture description %}{% if page.description %}{{ page.description }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %}
- <meta name="description" content="{{ description | strip_newlines | strip_html | truncate:150 }}">
+ <meta name="description" content="{{ description | strip_html | condense_spaces | truncate:150 }}">
{% if page.keywords %}<meta name="keywords" content="{{ page.keywords }}">{% endif %}
<!-- http://t.co/dKP3o1e -->
@@ -25,4 +25,5 @@
<script src="{{ root_url }}/javascripts/octopress.js" type="text/javascript"></script>
<link href="{{ site.subscribe_rss }}" rel="alternate" title="{{site.title}}" type="application/atom+xml">
{% include custom/head.html %}
+ {% include google_analytics.html %}
</head>
View
2 .themes/classic/source/_includes/navigation.html
@@ -4,10 +4,12 @@
<li><a href="{{ site.subscribe_email }}" rel="subscribe-email" title="subscribe via email">Email</a></li>
{% endif %}
</ul>
+ {% if site.simple_search %}
<form action="{{ site.simple_search }}" method="get">
<fieldset role="search">
<input type="hidden" name="q" value="site:{{ site.url | shorthand_url }}" />
<input class="search" type="text" name="q" results="0" placeholder="Search"/>
</fieldset>
</form>
+ {% endif %}
{% include custom/navigation.html %}
View
9 .themes/classic/source/_includes/post/date.html
@@ -1,12 +1,15 @@
{% capture date %}{{ page.date }}{{ post.date }}{% endcapture %}
+{% capture date_formatted %}{{ page.date_formatted }}{{ post.date_formatted }}{% endcapture %}
{% capture has_date %}{{ date | size }}{% endcapture %}
+
{% capture updated %}{{ page.updated }}{{ post.updated }}{% endcapture %}
+{% capture updated_formatted %}{{ page.updated_formatted }}{{ post.updated_formatted }}{% endcapture %}
{% capture was_updated %}{{ updated | size }}{% endcapture %}
{% if has_date != '0' %}
- {% capture time %}<time datetime="{{ date | datetime | date_to_xmlschema }}" pubdate {% if updated %} data-updated="true" {% endif %}>{{ date | ordinalize }}</time>{% endcapture %}
+ {% capture time %}<time datetime="{{ date | datetime | date_to_xmlschema }}" pubdate{% if updated %} data-updated="true"{% endif %}>{{ date_formatted }}</time>{% endcapture %}
{% endif %}
{% if was_updated != '0' %}
- {% capture updated %}<time class="updated" datetime="{{ updated | datetime | date_to_xmlschema }}">Updated {{ updated | ordinalize }}</time>{% endcapture %}
-{% else %}{% assign updated = false %}{% endif %}
+ {% capture updated %}<time datetime="{{ updated | datetime | date_to_xmlschema }}" class="updated">Updated {{ updated_formatted }}</time>{% endcapture %}
+{% else %}{% assign updated = false %}{% endif %}
View
3 .themes/classic/source/_includes/post/sharing.html
@@ -5,4 +5,7 @@
{% if site.google_plus_one %}
<div class="g-plusone" data-size="{{ site.google_plus_one_size }}"></div>
{% endif %}
+ {% if site.facebook_like %}
+ <div class="fb-like" data-send="true" data-width="450" data-show-faces="false"></div>
+ {% endif %}
</div>
View
5 .themes/classic/source/_layouts/default.html
@@ -9,9 +9,6 @@
</div>
</div>
<footer role="contentinfo">{% include footer.html %}</footer>
- {% include disqus.html %}
- {% include google_analytics.html %}
- {% include google_plus_one.html %}
- {% include twitter_sharing.html %}
+ {% include after_footer.html %}
</body>
</html>
View
2 .themes/classic/source/_layouts/page.html
@@ -6,7 +6,7 @@
<article role="article">
{% if page.title %}
<header>
- <h1 class="entry-title">{{ page.title | titlecase }}</h1>
+ <h1 class="entry-title">{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}</h1>
{% if page.date %}<p class="meta">{% include post/date.html %}{{ time }}</p>{% endif %}
</header>
{% endif %}
View
8 .themes/classic/source/_layouts/post.html
@@ -15,6 +15,14 @@
{% unless page.sharing == false %}
{% include post/sharing.html %}
{% endunless %}
+ <p class="meta">
+ {% if page.previous.url %}
+ <a class="basic-alignment left" href="{{page.previous.url}}" title="Previous Post: {{page.previous.title}}">&laquo; {{page.previous.title}}</a>
+ {% endif %}
+ {% if page.next.url %}
+ <a class="basic-alignment right" href="{{page.next.url}}" title="Next Post: {{page.next.title}}">{{page.next.title}} &raquo;</a>
+ {% endif %}
+ </p>
</footer>
</article>
{% if site.disqus_short_name and page.comments == true %}
View
228 .themes/classic/source/assets/jwplayer/glow/glow.xml
@@ -1,115 +1,115 @@
-<?xml version="1.0"?>
-<skin version="1.1" name="Glow" author="LongTail Video">
-
- <settings>
- <setting name="backcolor" value="0x000000" />
- <setting name="frontcolor" value="0xeeeeee" />
- <setting name="lightcolor" value="0xeeeeee" />
- <setting name="screencolor" value="0x000000" />
- </settings>
-
- <components>
- <component name="controlbar">
- <settings>
- <setting name="margin" value="0" />
- <setting name="fontsize" value="11" />
- <setting name="fontcolor" value="0xEEEEEE" />
- <setting name="buttoncolor" value="0xEEEEEE" />
- </settings>
-
- <layout>
- <group position="left">
- <button name="play" />
- <text name="elapsed" />
- </group>
- <group position="center">
- <slider name="time" />
- </group>
- <group position="right">
- <text name="duration" />
- <button name="blank" />
- <button name="mute" />
- <button name="fullscreen" />
- </group>
- </layout>
-
- <elements>
- <element name="background" src="background.png" />
- <element name="capLeft" src="divider.png" />
- <element name="capRight" src="divider.png" />
- <element name="divider" src="divider.png" />
- <element name="blankButton" src="blankButton.png" />
- <element name="fullscreenButton" src="fullscreenButton.png" />
- <element name="fullscreenButtonOver" src="fullscreenButtonOver.png" />
- <element name="muteButton" src="muteButton.png" />
- <element name="muteButtonOver" src="muteButtonOver.png" />
- <element name="pauseButton" src="pauseButton.png" />
- <element name="pauseButtonOver" src="pauseButtonOver.png" />
- <element name="playButton" src="playButton.png" />
- <element name="playButtonOver" src="playButtonOver.png" />
- <element name="timeSliderBuffer" src="timeSliderBuffer.png" />
- <element name="timeSliderCapLeft" src="timeSliderCapLeft.png" />
- <element name="timeSliderCapRight" src="timeSliderCapRight.png" />
- <element name="timeSliderProgress" src="timeSliderProgress.png" />
- <element name="timeSliderRail" src="timeSliderRail.png" />
- <element name="normalscreenButton" src="normalscreenButton.png" />
- <element name="normalscreenButtonOver" src="normalscreenButtonOver.png" />
- <element name="unmuteButton" src="unmuteButton.png" />
- <element name="unmuteButtonOver" src="unmuteButtonOver.png" />
- <element name="volumeSliderRail" src="divider.png" />
- <element name="volumeSliderProgress" src="divider.png" />
- </elements>
- </component>
-
- <component name="display">
- <settings>
- <setting name="bufferinterval" value="250" />
- <setting name="bufferrotation" value="90" />
- </settings>
- <elements>
- <element name="background" src="background.png" />
- <element name="playIcon" src="playIcon.png" />
- <element name="muteIcon" src="muteIcon.png" />
- <element name="errorIcon" src="bufferIcon.png" />
- <element name="bufferIcon" src="bufferIcon.png" />
- </elements>
- </component>
-
- <component name="dock">
- <settings>
- <setting name="fontcolor" value="0xFFFFFF" />
- </settings>
- <elements>
- <element name="button" src="button.png" />
- </elements>
- </component>
-
- <component name="playlist">
- <settings>
- <setting name="fontcolor" value="0xEEEEEE" />
- <setting name="overcolor" value="0xFFFFFF" />
- <setting name="activecolor" value="0xFFFFFF" />
- <setting name="backgroundcolor" value="0x333333" />
- </settings>
- <elements>
- <element name="item" src="item.png" />
- <element name="itemOver" src="itemOver.png" />
- <element name="sliderCapBottom" src="sliderCapBottom.png" />
- <element name="sliderCapTop" src="sliderCapTop.png" />
- <element name="sliderRail" src="sliderRail.png" />
- <element name="sliderThumb" src="sliderThumb.png" />
- </elements>
- </component>
-
- <component name="sharing">
- <elements>
- <element name="embedIcon" src="embedIcon.png" />
- <element name="embedScreen" src="embedScreen.png" />
- <element name="shareIcon" src="shareIcon.png" />
- <element name="shareScreen" src="shareScreen.png" />
- </elements>
- </component>
-
- </components>
-
+<?xml version="1.0"?>
+<skin version="1.1" name="Glow" author="LongTail Video">
+
+ <settings>
+ <setting name="backcolor" value="0x000000" />
+ <setting name="frontcolor" value="0xeeeeee" />
+ <setting name="lightcolor" value="0xeeeeee" />
+ <setting name="screencolor" value="0x000000" />
+ </settings>
+
+ <components>
+ <component name="controlbar">
+ <settings>
+ <setting name="margin" value="0" />
+ <setting name="fontsize" value="11" />
+ <setting name="fontcolor" value="0xEEEEEE" />
+ <setting name="buttoncolor" value="0xEEEEEE" />
+ </settings>
+
+ <layout>
+ <group position="left">
+ <button name="play" />
+ <text name="elapsed" />
+ </group>
+ <group position="center">
+ <slider name="time" />
+ </group>
+ <group position="right">
+ <text name="duration" />
+ <button name="blank" />
+ <button name="mute" />
+ <button name="fullscreen" />
+ </group>
+ </layout>
+
+ <elements>
+ <element name="background" src="background.png" />
+ <element name="capLeft" src="divider.png" />
+ <element name="capRight" src="divider.png" />
+ <element name="divider" src="divider.png" />
+ <element name="blankButton" src="blankButton.png" />
+ <element name="fullscreenButton" src="fullscreenButton.png" />
+ <element name="fullscreenButtonOver" src="fullscreenButtonOver.png" />
+ <element name="muteButton" src="muteButton.png" />
+ <element name="muteButtonOver" src="muteButtonOver.png" />
+ <element name="pauseButton" src="pauseButton.png" />
+ <element name="pauseButtonOver" src="pauseButtonOver.png" />
+ <element name="playButton" src="playButton.png" />
+ <element name="playButtonOver" src="playButtonOver.png" />
+ <element name="timeSliderBuffer" src="timeSliderBuffer.png" />
+ <element name="timeSliderCapLeft" src="timeSliderCapLeft.png" />
+ <element name="timeSliderCapRight" src="timeSliderCapRight.png" />
+ <element name="timeSliderProgress" src="timeSliderProgress.png" />
+ <element name="timeSliderRail" src="timeSliderRail.png" />
+ <element name="normalscreenButton" src="normalscreenButton.png" />
+ <element name="normalscreenButtonOver" src="normalscreenButtonOver.png" />
+ <element name="unmuteButton" src="unmuteButton.png" />
+ <element name="unmuteButtonOver" src="unmuteButtonOver.png" />
+ <element name="volumeSliderRail" src="divider.png" />
+ <element name="volumeSliderProgress" src="divider.png" />
+ </elements>
+ </component>
+
+ <component name="display">
+ <settings>
+ <setting name="bufferinterval" value="250" />
+ <setting name="bufferrotation" value="90" />
+ </settings>
+ <elements>
+ <element name="background" src="background.png" />
+ <element name="playIcon" src="playIcon.png" />
+ <element name="muteIcon" src="muteIcon.png" />
+ <element name="errorIcon" src="bufferIcon.png" />
+ <element name="bufferIcon" src="bufferIcon.png" />
+ </elements>
+ </component>
+
+ <component name="dock">
+ <settings>
+ <setting name="fontcolor" value="0xFFFFFF" />
+ </settings>
+ <elements>
+ <element name="button" src="button.png" />
+ </elements>
+ </component>
+
+ <component name="playlist">
+ <settings>
+ <setting name="fontcolor" value="0xEEEEEE" />
+ <setting name="overcolor" value="0xFFFFFF" />
+ <setting name="activecolor" value="0xFFFFFF" />
+ <setting name="backgroundcolor" value="0x333333" />
+ </settings>
+ <elements>
+ <element name="item" src="item.png" />
+ <element name="itemOver" src="itemOver.png" />
+ <element name="sliderCapBottom" src="sliderCapBottom.png" />
+ <element name="sliderCapTop" src="sliderCapTop.png" />
+ <element name="sliderRail" src="sliderRail.png" />
+ <element name="sliderThumb" src="sliderThumb.png" />
+ </elements>
+ </component>
+
+ <component name="sharing">
+ <elements>
+ <element name="embedIcon" src="embedIcon.png" />
+ <element name="embedScreen" src="embedScreen.png" />
+ <element name="shareIcon" src="shareIcon.png" />
+ <element name="shareScreen" src="shareScreen.png" />
+ </elements>
+ </component>
+
+ </components>
+
</skin>
View
13 .themes/classic/source/atom.xml
@@ -4,25 +4,24 @@ layout: nil
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
- <title>{{ site.title }}</title>
+ <title><![CDATA[{{ site.title }}]]></title>
<link href="{{ site.url }}/atom.xml" rel="self"/>
<link href="{{ site.url }}/"/>
<updated>{{ site.time | date_to_xmlschema }}</updated>
<id>{{ site.url }}/</id>
<author>
- <name>{{ site.author }}</name>
- {% if site.email %}
- <email>{{ site.email }}</email>
- {% endif %}
+ <name><![CDATA[{{ site.author | strip_html }}]]></name>
+ {% if site.email %}<email><![CDATA[{{ site.email }}]]></email>{% endif %}
</author>
+ <generator uri="http://octopress.org/">Octopress</generator>
{% for post in site.posts limit: 20 %}
<entry>
- <title>{{ post.title }}</title>
+ <title type="html"><![CDATA[{{ post.title | cdata_escape }}]]></title>
<link href="{{ site.url }}{{ post.url }}"/>
<updated>{{ post.date | date_to_xmlschema }}</updated>
<id>{{ site.url }}{{ post.id }}</id>
- <content type="html">{{ post.content | expand_urls: site.url | xml_escape }}</content>
+ <content type="html"><![CDATA[{{ post.content | expand_urls: site.url | cdata_escape }}]]></content>
</entry>
{% endfor %}
</feed>
View
20 .themes/classic/source/index.html
@@ -10,17 +10,15 @@
{% include article.html %}
</article>
{% endfor %}
- <nav class="pagination">
- <div>
- {% if paginator.next_page %}
- <a class="prev" href="{{paginator.next_page}}">&larr; Older</a>
- {% endif %}
- <a href="/blog/archives">Blog Archives</a>
- {% if paginator.previous_page %}
- <a class="next" href="{{paginator.previous_page}}">Newer &rarr;</a>
- {% endif %}
- </div>
- </nav>
+ <div class="pagination">
+ {% if paginator.next_page %}
+ <a class="prev" href="{{paginator.next_page}}">&larr; Older</a>
+ {% endif %}
+ <a href="/blog/archives">Blog Archives</a>
+ {% if paginator.previous_page %}
+ <a class="next" href="{{paginator.previous_page}}">Newer &rarr;</a>
+ {% endif %}
+ </div>
</div>
<aside class="sidebar">
{% if site.blog_index_asides.size %}
View
17 .themes/classic/source/javascripts/ender.js
@@ -1,7 +1,7 @@
/*!
* =============================================================
* Ender: open module JavaScript framework (https://ender.no.de)
- * Build: ender build jeesh --output jeesh
+ * Build: ender build jeesh reqwest
* =============================================================
*/
@@ -12,7 +12,14 @@
* http://ender.no.de
* License MIT
*/
-!function(a){function h(a,b){return g(a,b)}function g(a,b,c){h._select&&(typeof a=="string"||a.nodeName||a.length&&"item"in a||a==window)?(c=h._select(a,b),c.selector=a):c=isFinite(a.length)?a:[a];return f(c,g)}function f(a,b){for(var c in b)c!="noConflict"&&c!="_VERSION"&&(a[c]=b[c]);return a}function e(a,c){return b[a]=c}function d(a){var c=b[a]||window[a];if(!c)throw new Error("Requested module '"+a+"' has not been defined.");return c}a.global=a;var b={},c=a.$;a.provide=e,a.require=d,f(h,{_VERSION:"0.3.4",fn:a.$&&a.$.fn||{},ender:function(a,b){f(b?g:h,a)},_select:function(a,b){return(b||document).querySelectorAll(a)}}),f(g,{forEach:function(a,b,c){for(c=0,l=this.length;c<l;++c)c in this&&a.call(b||this[c],this[c],c,this);return this},$:h}),h.noConflict=function(){a.$=c;return this},typeof module!="undefined"&&module.exports&&(module.exports=h),a.ender=a.$=a.ender||h}(this),!function(){var a={exports:{}},b=a.exports;
+!function(a){function d(a){var c=b[a]||window[a];if(!c)throw new Error("Requested module '"+a+"' has not been defined.");return c}function e(a,c){return b[a]=c}function f(a,b){for(var c in b)c!="noConflict"&&c!="_VERSION"&&(a[c]=b[c]);return a}function g(a,b,c){return h._select&&(typeof a=="string"||a.nodeName||a.length&&"item"in a||a==window)?(c=h._select(a,b),c.selector=a):c=isFinite(a.length)?a:[a],f(c,g)}function h(a,b){return g(a,b)}a.global=a;var b={},c=a.$;a.provide=e,a.require=d,f(h,{_VERSION:"0.3.4",fn:a.$&&a.$.fn||{},ender:function(a,b){f(b?g:h,a)},_select:function(a,b){return(b||document).querySelectorAll(a)}}),f(g,{forEach:function(a,b,c){for(c=0,l=this.length;c<l;++c)c in this&&a.call(b||this[c],this[c],c,this);return this},$:h}),h.noConflict=function(){return a.$=c,this},typeof module!="undefined"&&module.exports&&(module.exports=h),a.ender=a.$=a.ender||h}(this),!function(){var module={exports:{}},exports=module.exports;
+/*!
+ * Reqwest! A general purpose XHR connection manager
+ * (c) Dustin Diaz 2011
+ * https://github.com/ded/reqwest
+ * license MIT
+ */
+!function(a,b){typeof define=="function"?define(b):typeof module!="undefined"?module.exports=b():this[a]=b()}("reqwest",function(){function handleReadyState(a,b,c){return function(){a&&a[readyState]==4&&(twoHundo.test(a.status)?b(a):c(a))}}function setHeaders(a,b){var c=b.headers||{};c.Accept=c.Accept||"text/javascript, text/html, application/xml, text/xml, */*",b.crossOrigin||(c["X-Requested-With"]=c["X-Requested-With"]||"XMLHttpRequest"),c[contentType]=c[contentType]||"application/x-www-form-urlencoded";for(var d in c)c.hasOwnProperty(d)&&a.setRequestHeader(d,c[d])}function getCallbackName(a,b){var c=a.jsonpCallback||"callback";if(a.url.slice(-(c.length+2))==c+"=?"){var d="reqwest_"+b;return a.url=a.url.substr(0,a.url.length-1)+d,d}var e=new RegExp(c+"=([\\w]+)");return a.url.match(e)[1]}function generalCallback(a){lastValue=a}function getRequest(a,b,c){if(a.type!="jsonp"){var g=xhr(),h=(a.method||"GET").toUpperCase(),i=typeof a=="string"?a:a.url,j=a.processData!==!1&&a.data&&typeof a.data!="string"?reqwest.toQueryString(a.data):a.data||null;return h=="GET"&&j&&j!==""&&(i+=(/\?/.test(i)?"&":"?")+j)&&(j=null),g.open(h,i,!0),setHeaders(g,a),g.onreadystatechange=handleReadyState(g,b,c),a.before&&a.before(g),g.send(j),g}var d=doc.createElement("script"),e=0,f=uniqid++;win[getCallbackName(a,f)]=generalCallback,d.type="text/javascript",d.src=a.url,d.async=!0,typeof d.onreadystatechange!="undefined"&&(d.event="onclick",d.htmlFor=d.id="_reqwest_"+f),d.onload=d.onreadystatechange=function(){if(d[readyState]&&d[readyState]!=="complete"&&d[readyState]!=="loaded"||e)return!1;d.onload=d.onreadystatechange=null,d.onclick&&d.onclick(),a.success&&a.success(lastValue),lastValue=undefined,head.removeChild(d),e=1},head.appendChild(d)}function Reqwest(a,b){this.o=a,this.fn=b,init.apply(this,arguments)}function setType(a){return/\.json$/.test(a)?"json":/\.jsonp$/.test(a)?"jsonp":/\.js$/.test(a)?"js":/\.html?$/.test(a)?"html":/\.xml$/.test(a)?"xml":"js"}function init(o,fn){function complete(a){o.timeout&&clearTimeout(self.timeout),self.timeout=null,o.complete&&o.complete(a)}function success(resp){var r=resp.responseText;if(r)switch(type){case"json":try{resp=win.JSON?win.JSON.parse(r):eval("("+r+")")}catch(err){return error(resp,"Could not parse JSON in response",err)}break;case"js":resp=eval(r);break;case"html":resp=r}fn(resp),o.success&&o.success(resp),complete(resp)}function error(a,b,c){o.error&&o.error(a,b,c),complete(a)}this.url=typeof o=="string"?o:o.url,this.timeout=null;var type=o.type||setType(this.url),self=this;fn=fn||function(){},o.timeout&&(this.timeout=setTimeout(function(){self.abort()},o.timeout)),this.request=getRequest(o,success,error)}function reqwest(a,b){return new Reqwest(a,b)}function normalize(a){return a?a.replace(/\r?\n/g,"\r\n"):""}function serial(a,b){var c=a.name,d=a.tagName.toLowerCase(),e;if(a.disabled||!c)return;switch(d){case"input":if(!/reset|button|image|file/i.test(a.type)){var f=/checkbox/i.test(a.type),g=/radio/i.test(a.type),h=a.value;(!f&&!g||a.checked)&&b(c,normalize(f&&h===""?"on":h))}break;case"textarea":b(c,normalize(a.value));break;case"select":if(a.type.toLowerCase()==="select-one")e=a.selectedIndex<0?null:a.options[a.selectedIndex],e&&!e.disabled&&b(c,normalize(e.value||e.text));else for(var i=0;a.length&&i<a.length;i++)e=a.options[i],e.selected&&!e.disabled&&b(c,normalize(e.value||e.text))}}function eachFormElement(){var a=this,b=function(b,c){for(var d=0;d<c.length;d++){var e=b[byTag](c[d]);for(var f=0;f<e.length;f++)serial(e[f],a)}};for(var c=0;c<arguments.length;c++){var d=arguments[c];/input|select|textarea/i.test(d.tagName)&&serial(d,a),b(d,["input","select","textarea"])}}function serializeQueryString(){return reqwest.toQueryString(reqwest.serializeArray.apply(null,arguments))}function serializeHash(){var a={};return eachFormElement.apply(function(b,c){b in a?(a[b]&&!isArray(a[b])&&(a[b]=[a[b]]),a[b].push(c)):a[b]=c},arguments),a}var context=this,win=window,doc=document,old=context.reqwest,twoHundo=/^20\d$/,byTag="getElementsByTagName",readyState="readyState",contentType="Content-Type",head=doc[byTag]("head")[0],uniqid=0,lastValue,xhr="XMLHttpRequest"in win?function(){return new XMLHttpRequest}:function(){return new ActiveXObject("Microsoft.XMLHTTP")};Reqwest.prototype={abort:function(){this.request.abort()},retry:function(){init.call(this,this.o,this.fn)}};var isArray=typeof Array.isArray=="function"?Array.isArray:function(a){return Object.prototype.toString.call(a)=="[object Array]"};return reqwest.serializeArray=function(){var a=[];return eachFormElement.apply(function(b,c){a.push({name:b,value:c})},arguments),a},reqwest.serialize=function(){if(arguments.length===0)return"";var a,b,c=Array.prototype.slice.call(arguments,0);return a=c.pop(),a&&a.nodeType&&c.push(a)&&(a=null),a&&(a=a.type),a=="map"?b=serializeHash:a=="array"?b=reqwest.serializeArray:b=serializeQueryString,b.apply(null,c)},reqwest.toQueryString=function(a){var b="",c,d=encodeURIComponent,e=function(a,c){b+=d(a)+"="+d(c)+"&"};if(isArray(a))for(c=0;a&&c<a.length;c++)e(a[c].name,a[c].value);else for(var f in a){if(!Object.hasOwnProperty.call(a,f))continue;var g=a[f];if(isArray(g))for(c=0;c<g.length;c++)e(f,g[c]);else e(f,a[f])}return b.replace(/&$/,"").replace(/%20/g,"+")},reqwest.noConflict=function(){return context.reqwest=old,this},reqwest}),provide("reqwest",module.exports),!function(a){var b=require("reqwest"),c=function(a){return function(){var c=(this&&this.length>0?this:[]).concat(Array.prototype.slice.call(arguments,0));return b[a].apply(null,c)}},d=c("serialize"),e=c("serializeArray");a.ender({ajax:b,serialize:d,serializeArray:e,toQueryString:b.toQueryString}),a.ender({serialize:d,serializeArray:e},!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;
/*!
* bean.js - copyright Jacob Thornton 2011
* https://github.com/fat/bean
@@ -22,17 +29,17 @@
* dperini: https://github.com/dperini/nwevents
* the entire mootools team: github.com/mootools/mootools-core
*/
-!function(b){function G(a){var b=a.relatedTarget;return b?b!=this&&b.prefix!="xul"&&!/document/.test(this.toString())&&!q(this,b):b===null}var c=1,d={},e={},f=/over|out/,g=/[^\.]*(?=\..*)\.|.*/,h=/\..*/,i="addEventListener",j="attachEvent",k="removeEventListener",l="detachEvent",m=b.document||{},n=m.documentElement||{},o=n[i],p=o?i:j,q=function(a,b){var c=b.parentNode;while(c!==null){if(c==a)return!0;c=c.parentNode}},r=function(a,b){return a.__uid=b&&b+"::"+c++||a.__uid||c++},s=function(a){var b=r(a);return d[b]=d[b]||{}},t=o?function(a,b,c,d){a[d?i:k](b,c,!1)}:function(a,b,c,d,e){e&&d&&(a["_on"+e]=a["_on"+e]||0),a[d?j:l]("on"+b,c)},u=function(a,c,d){return function(e){e=E(e||((this.ownerDocument||this.document||this).parentWindow||b).event);return c.apply(a,[e].concat(d))}},v=function(a,b,c,d,e){return function(f){(d?d.apply(this,arguments):o?!0:f&&f.propertyName=="_on"+c||!f)&&b.apply(a,Array.prototype.slice.call(arguments,f?0:1).concat(e))}},w=function(a,b,c,d){var f=b.replace(h,""),i=s(a),j=i[f]||(i[f]={}),k=c,l=r(c,b.replace(g,""));if(j[l])return a;var m=H[f];m&&(c=m.condition?v(a,c,f,m.condition):c,f=m.base||f);var n=F[f];c=n?u(a,c,d):v(a,c,f,!1,d),n=o||n;if(f=="unload"){var q=c;c=function(){x(a,f,c)&&q()}}a[p]&&t(a,n?f:"propertychange",c,!0,!n&&f),j[l]=c,c.__uid=l,c.__originalFn=k;return f=="unload"?a:e[r(a)]=a},x=function(a,b,c){function l(b){c=j[k][b];if(!!c){delete j[k][b];if(a[p]){k=H[k]?H[k].base:k;var d=o||F[k];t(a,d?k:"propertychange",c,!1,!d&&k)}}}var d,e,f,i,j=s(a),k=b.replace(h,"");if(!j||!j[k])return a;e=b.replace(g,""),f=e?e.split("."):[c.__uid],l(e);for(i=f.length;i--;l(f[i]));return a},y=function(a,b,c){return function(d){var e=typeof a=="string"?c(a,this):a;for(var f=d.target;f&&f!=this;f=f.parentNode)for(var g=e.length;g--;)if(e[g]==f)return b.apply(f,arguments)}},z=function(a,b,c,d,e){if(typeof b=="object"&&!c)for(var f in b)b.hasOwnProperty(f)&&z(a,f,b[f]);else{var g=typeof c=="string",h=(g?c:b).split(" ");c=g?y(b,d,e):c;for(var i=h.length;i--;)w(a,h[i],c,Array.prototype.slice.call(arguments,g?4:3))}return a},A=function(a,b,c){var d,e,f,i,j,k=typeof b=="string",l=k&&b.replace(g,""),l=l&&l.split("."),m=x,n=s(a);if(k&&/\s/.test(b)){b=b.split(" "),j=b.length-1;while(A(a,b[j])&&j--);return a}i=k?b.replace(h,""):b;if(!n||l||k&&!n[i]){for(d in n)if(n.hasOwnProperty(d))for(j in n[d])for(e=l.length;e--;)n[d].hasOwnProperty(j)&&(new RegExp("^"+l[e]+"::\\d*(\\..*)?$")).test(j)&&m(a,[d,j].join("."));return a}if(typeof c=="function")m(a,i,c);else if(l)m(a,b);else{m=i?m:A,f=k&&i,i=i?c||n[i]||i:n;for(d in i)i.hasOwnProperty(d)&&(m(a,f||d,i[d]),delete i[d])}return a},B=function(a,b,c){var d,e,f,i,j=b.split(" ");for(f=j.length;f--;){b=j[f].replace(h,"");var k=F[b],l=j[f].replace(g,""),m=s(a)[b];if(l){l=l.split(".");for(e=l.length;e--;)for(i in m)m.hasOwnProperty(i)&&(new RegExp("^"+l[e]+"::\\d*(\\..*)?$")).test(i)&&m[i].apply(a,[!1].concat(c))}else if(!c&&a[p])C(k,b,a);else for(e in m)m.hasOwnProperty(e)&&m[e].apply(a,[!1].concat(c))}return a},C=o?function(a,c,d){evt=document.createEvent(a?"HTMLEvents":"UIEvents"),evt[a?"initEvent":"initUIEvent"](c,!0,!0,b,1),d.dispatchEvent(evt)}:function(a,b,c){a?c.fireEvent("on"+b,document.createEventObject()):c["_on"+b]++},D=function(a,b,c){var d=s(b),e,f,g=r(a);e=c?d[c]:d;for(f in e)e.hasOwnProperty(f)&&(c?z:D)(a,c||b,c?e[f].__originalFn:f);return a},E=function(a){var b={};if(!a)return b;var c=a.type,d=a.target||a.srcElement;b.preventDefault=E.preventDefault(a),b.stopPropagation=E.stopPropagation(a),b.target=d&&d.nodeType==3?d.parentNode:d;if(~c.indexOf("key"))b.keyCode=a.which||a.keyCode;else if(/click|mouse|menu/i.test(c)){b.rightClick=a.which==3||a.button==2,b.pos={x:0,y:0};if(a.pageX||a.pageY)b.clientX=a.pageX,b.clientY=a.pageY;else if(a.clientX||a.clientY)b.clientX=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,b.clientY=a.clientY+document.body.scrollTop+document.documentElement.scrollTop;f.test(c)&&(b.relatedTarget=a.relatedTarget||a[(c=="mouseover"?"from":"to")+"Element"])}for(var e in a)e in b||(b[e]=a[e]);return b};E.preventDefault=function(a){return function(){a.preventDefault?a.preventDefault():a.returnValue=!1}},E.stopPropagation=function(a){return function(){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}};var F={click:1,dblclick:1,mouseup:1,mousedown:1,contextmenu:1,mousewheel:1,DOMMouseScroll:1,mouseover:1,mouseout:1,mousemove:1,selectstart:1,selectend:1,keydown:1,keypress:1,keyup:1,orientationchange:1,touchstart:1,touchmove:1,touchend:1,touchcancel:1,gesturestart:1,gesturechange:1,gestureend:1,focus:1,blur:1,change:1,reset:1,select:1,submit:1,load:1,unload:1,beforeunload:1,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1},H={mouseenter:{base:"mouseover",condition:G},mouseleave:{base:"mouseout",condition:G},mousewheel:{base:/Firefox/.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel"}},I={add:z,remove:A,clone:D,fire:B},J=function(a){var b=A(a).__uid;b&&(delete e[b],delete d[b])};b[j]&&z(b,"unload",function(){for(var a in e)e.hasOwnProperty(a)&&J(e[a]);b.CollectGarbage&&CollectGarbage()});var K=b.bean;I.noConflict=function(){b.bean=K;return this},typeof a!="undefined"&&a.exports?a.exports=I:b.bean=I}(this),provide("bean",a.exports),!function(a){var b=require("bean"),c=function(c,d,e){var f=d?[d]:[];return function(){for(var e,g=0,h=this.length;g<h;g++)e=[this[g]].concat(f,Array.prototype.slice.call(arguments,0)),e.length==4&&e.push(a),!arguments.length&&c=="add"&&d&&(c="fire"),b[c].apply(this,e);return this}},d=c("add"),e=c("remove"),f=c("fire"),g={on:d,addListener:d,bind:d,listen:d,delegate:d,unbind:e,unlisten:e,removeListener:e,undelegate:e,emit:f,trigger:f,cloneEvents:c("clone"),hover:function(a,c,d){for(d=this.length;d--;)b.add.call(this,this[d],"mouseenter",a),b.add.call(this,this[d],"mouseleave",c);return this}},h,i=["blur","change","click","dblclick","error","focus","focusin","focusout","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mouseout","mouseover","mouseup","mousemove","resize","scroll","select","submit","unload"];for(h=i.length;h--;)g[i[h]]=c("add",i[h]);a.ender(g,!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;
+!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=c()}("bean",function(){function F(a){var b=a.relatedTarget;return b?b!=this&&b.prefix!="xul"&&!/document/.test(this.toString())&&!p(this,b):b===null}var a=window,b=1,c={},d={},e=/over|out/,f=/[^\.]*(?=\..*)\.|.*/,g=/\..*/,h="addEventListener",i="attachEvent",j="removeEventListener",k="detachEvent",l=document||{},m=l.documentElement||{},n=m[h],o=n?h:i,p=function(a,b){var c=b.parentNode;while(c!==null){if(c==a)return!0;c=c.parentNode}},q=function(a,c){return a.__uid=c&&c+"::"+b++||a.__uid||b++},r=function(a){var b=q(a);return c[b]=c[b]||{}},s=n?function(a,b,c,d){a[d?h:j](b,c,!1)}:function(a,b,c,d,e){e&&d&&a["_on"+e]===null&&(a["_on"+e]=0),a[d?i:k]("on"+b,c)},t=function(b,c,d){return function(e){return e=D(e||((this.ownerDocument||this.document||this).parentWindow||a).event),c.apply(b,[e].concat(d))}},u=function(b,c,d,e,f){return function(g){if(e?e.apply(this,arguments):n?!0:g&&g.propertyName=="_on"+d||!g)g=g?D(g||((this.ownerDocument||this.document||this).parentWindow||a).event):null,c.apply(b,Array.prototype.slice.call(arguments,g?0:1).concat(f))}},v=function(a,b,c,e){var h=b.replace(g,""),i=r(a),j=i[h]||(i[h]={}),k=c,l=q(c,b.replace(f,""));if(j[l])return a;var m=G[h];m&&(c=m.condition?u(a,c,h,m.condition):c,h=m.base||h);var p=E[h];c=p?t(a,c,e):u(a,c,h,!1,e),p=n||p;if(h=="unload"){var v=c;c=function(){w(a,h,c)&&v()}}return a[o]&&s(a,p?h:"propertychange",c,!0,!p&&h),j[l]=c,c.__uid=l,c.__originalFn=k,h=="unload"?a:d[q(a)]=a},w=function(a,b,c){function l(b){c=j[k][b];if(!c)return;delete j[k][b];if(a[o]){k=G[k]?G[k].base:k;var d=n||E[k];s(a,d?k:"propertychange",c,!1,!d&&k)}}var d,e,h,i,j=r(a),k=b.replace(g,"");if(!j||!j[k])return a;e=b.replace(f,""),h=e?e.split("."):[c.__uid],l(e);for(i=h.length;i--;l(h[i]));return a},x=function(a,b,c){return function(d){var e=typeof a=="string"?c(a,this):a;for(var f=d.target;f&&f!=this;f=f.parentNode)for(var g=e.length;g--;)if(e[g]==f)return b.apply(f,arguments)}},y=function(a,b,c,d,e){if(typeof b=="object"&&!c)for(var f in b)b.hasOwnProperty(f)&&y(a,f,b[f]);else{var g=typeof c=="string",h=(g?c:b).split(" ");c=g?x(b,d,e):c;for(var i=h.length;i--;)v(a,h[i],c,Array.prototype.slice.call(arguments,g?4:3))}return a},z=function(a,b,c){var d,e,h,i,j,k=typeof b=="string",l=k&&b.replace(f,""),m=w,n=r(a);l=l&&l.split(".");if(k&&/\s/.test(b)){b=b.split(" "),j=b.length-1;while(z(a,b[j])&&j--);return a}i=k?b.replace(g,""):b;if(!n||l||k&&!n[i]){for(d in n)if(n.hasOwnProperty(d))for(j in n[d])for(e=l.length;e--;)n[d].hasOwnProperty(j)&&(new RegExp("^"+l[e]+"::\\d*(\\..*)?$")).test(j)&&m(a,[d,j].join("."));return a}if(typeof c=="function")m(a,i,c);else if(l)m(a,b);else{m=i?m:z,h=k&&i,i=i?c||n[i]||i:n;for(d in i)i.hasOwnProperty(d)&&(m(a,h||d,i[d]),delete i[d])}return a},A=function(a,b,c){var d,e,h,i,j=b.split(" ");for(h=j.length;h--;){b=j[h].replace(g,"");var k=E[b],l=j[h].replace(f,""),m=r(a)[b];if(l){l=l.split(".");for(e=l.length;e--;)for(i in m)m.hasOwnProperty(i)&&(new RegExp("^"+l[e]+"::\\d*(\\..*)?$")).test(i)&&m[i].apply(a,[!1].concat(c))}else if(!c&&a[o])B(k,b,a);else for(e in m)m.hasOwnProperty(e)&&m[e].apply(a,[!1].concat(c))}return a},B=n?function(b,c,d){evt=document.createEvent(b?"HTMLEvents":"UIEvents"),evt[b?"initEvent":"initUIEvent"](c,!0,!0,a,1),d.dispatchEvent(evt)}:function(a,b,c){a?c.fireEvent("on"+b,document.createEventObject()):c["_on"+b]++},C=function(a,b,c){var d=r(b),e,f,g=q(a);e=c?d[c]:d;for(f in e)e.hasOwnProperty(f)&&(c?y:C)(a,c||b,c?e[f].__originalFn:f);return a},D=function(a){var b={};if(!a)return b;var c=a.type,d=a.target||a.srcElement;b.preventDefault=D.preventDefault(a),b.stopPropagation=D.stopPropagation(a),b.target=d&&d.nodeType==3?d.parentNode:d;if(~c.indexOf("key"))b.keyCode=a.which||a.keyCode;else if(/click|mouse|menu/i.test(c)){b.rightClick=a.which==3||a.button==2,b.pos={x:0,y:0};if(a.pageX||a.pageY)b.clientX=a.pageX,b.clientY=a.pageY;else if(a.clientX||a.clientY)b.clientX=a.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,b.clientY=a.clientY+document.body.scrollTop+document.documentElement.scrollTop;e.test(c)&&(b.relatedTarget=a.relatedTarget||a[(c=="mouseover"?"from":"to")+"Element"])}for(var f in a)f in b||(b[f]=a[f]);return b};D.preventDefault=function(a){return function(){a.preventDefault?a.preventDefault():a.returnValue=!1}},D.stopPropagation=function(a){return function(){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}};var E={click:1,dblclick:1,mouseup:1,mousedown:1,contextmenu:1,mousewheel:1,DOMMouseScroll:1,mouseover:1,mouseout:1,mousemove:1,selectstart:1,selectend:1,keydown:1,keypress:1,keyup:1,orientationchange:1,touchstart:1,touchmove:1,touchend:1,touchcancel:1,gesturestart:1,gesturechange:1,gestureend:1,focus:1,blur:1,change:1,reset:1,select:1,submit:1,load:1,unload:1,beforeunload:1,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1},G={mouseenter:{base:"mouseover",condition:F},mouseleave:{base:"mouseout",condition:F},mousewheel:{base:/Firefox/.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel"}},H={add:y,remove:z,clone:C,fire:A},I=function(a){var b=z(a).__uid;b&&(delete d[b],delete c[b])};return a[i]&&y(a,"unload",function(){for(var b in d)d.hasOwnProperty(b)&&I(d[b]);a.CollectGarbage&&CollectGarbage()}),H.noConflict=function(){return context.bean=old,this},H}),provide("bean",a.exports),!function(a){var b=require("bean"),c=function(c,d,e){var f=d?[d]:[];return function(){for(var e,g=0,h=this.length;g<h;g++)e=[this[g]].concat(f,Array.prototype.slice.call(arguments,0)),e.length==4&&e.push(a),!arguments.length&&c=="add"&&d&&(c="fire"),b[c].apply(this,e);return this}},d=c("add"),e=c("remove"),f=c("fire"),g={on:d,addListener:d,bind:d,listen:d,delegate:d,unbind:e,unlisten:e,removeListener:e,undelegate:e,emit:f,trigger:f,cloneEvents:c("clone"),hover:function(a,c,d){for(d=this.length;d--;)b.add.call(this,this[d],"mouseenter",a),b.add.call(this,this[d],"mouseleave",c);return this}},h,i=["blur","change","click","dblclick","error","focus","focusin","focusout","keydown","keypress","keyup","load","mousedown","mouseenter","mouseleave","mouseout","mouseover","mouseup","mousemove","resize","scroll","select","submit","unload"];for(h=i.length;h--;)g[i[h]]=c("add",i[h]);a.ender(g,!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;
/*!
* Bonzo: DOM Utility (c) Dustin Diaz 2011
* https://github.com/ded/bonzo
* License MIT
*/
-!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=c()}("bonzo",function(){function N(a,b){return new I(a,b)}function M(){return{x:b.pageXOffset||d.scrollLeft,y:b.pageYOffset||d.scrollTop}}function L(a){return a===b||/^(?:body|html)$/i.test(a.tagName)}function K(a,c,d){var e=this[0];if(a==null&&c==null)return(L(e)?M():{x:e.scrollLeft,y:e.scrollTop})[d];L(e)?b.scrollTo(a,c):(a!=null&&(e.scrollLeft=a),c!=null&&(e.scrollTop=c));return this}function J(a){return typeof a=="string"?N.create(a):A(a)?[a]:a}function I(a){this.length=0;if(a){a=typeof a!="string"&&!a.nodeType&&typeof a.length!="undefined"?a:[a],this.length=a.length;for(var b=0;b<a.length;b++)this[b]=a[b]}}function H(a,b){a.className=w(a.className.replace(x(b)," "))}function G(a,b){a.className=w(a.className+" "+b)}function F(a,b){return x(b).test(a.className)}function E(a,b,c){var d=N(a),e=d.css("position"),f=d.offset(),g="relative",h=e==g,i=[parseInt(d.css("left"),10),parseInt(d.css("top"),10)];e=="static"&&(d.css("position",g),e=g),isNaN(i[0])&&(i[0]=h?0:a.offsetLeft),isNaN(i[1])&&(i[1]=h?0:a.offsetTop),b!=null&&(a.style.left=b-f.left+i[0]+q),c!=null&&(a.style.top=c-f.top+i[1]+q)}function D(a,b,c){var d=0,g=b||this,h=[],i=f&&typeof a=="string"&&a.charAt(0)!="<"?function(b){return(b=f(a))&&(b.selected=1)&&b}():a;y(J(i),function(a){y(g,function(b){var f=!b[e]||b[e]&&!b[e][e]?function(){var a=b.cloneNode(!0);g.$&&g.cloneEvents&&g.$(a).cloneEvents(b);return a}():b;c(a,f),h[d]=f,d++})},this),y(h,function(a,b){g[b]=a}),g.length=d;return g}function B(a,b,c,d){for(d=0,j=a.length;d<j;++d)if(b.call(c,a[d],d,a))return!0;return!1}function A(a){return a&&a.nodeName&&a.nodeType==1}function z(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}function y(a,b,c){for(var d=0,e=a.length;d<e;d++)b.call(c||a[d],a[d],d,a);return a}function x(a){return new RegExp("(^|\\s+)"+a+"(\\s+|$)")}var a=this,b=window,c=b.document,d=c.documentElement,e="parentNode",f=null,g=/^checked|value|selected$/,h=/select|fieldset|table|tbody|tfoot|td|tr|colgroup/i,i="table",k={thead:i,tbody:i,tfoot:i,tr:"tbody",th:"tr",td:"tr",fieldset:"form",option:"select"},l=/^checked|selected$/,m=/msie/i.test(navigator.userAgent),n=[],o=0,p=/^-?[\d\.]+$/,q="px",r="setAttribute",s="getAttribute",t=/(^\s*|\s*$)/g,u={lineHeight:1,zoom:1,zIndex:1,opacity:1},v=function(){var a=["webkitTransform","MozTransform","OTransform","msTransform","Transform"],b;for(b=0;b<a.length;b++)if(a[b]in c.createElement("a").style)return a[b]}(),w=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(t,"")},C=c.defaultView&&c.defaultView.getComputedStyle?function(a,b){b=b=="transform"?v:b,b=b=="transform-origin"?v+"Origin":b;var d=null;b=="float"&&(b="cssFloat");var e=c.defaultView.getComputedStyle(a,"");e&&(d=e[z(b)]);return a.style[b]||d}:m&&d.currentStyle?function(a,b){b=z(b),b=b=="float"?"styleFloat":b;if(b=="opacity"){var c=100;try{c=a.filters["DXImageTransform.Microsoft.Alpha"].opacity}catch(d){try{c=a.filters("alpha").opacity}catch(e){}}return c/100}var f=a.currentStyle?a.currentStyle[b]:null;return a.style[b]||f}:function(a,b){return a.style[z(b)]};I.prototype={get:function(a){return this[a]},each:function(a,b){return y(this,a,b)},map:function(a,b){var c=[],d,e;for(e=0;e<this.length;e++)d=a.call(this,this[e],e),b?b(d)&&c.push(d):c.push(d);return c},first:function(){return N(this[0])},last:function(){return N(this[this.length-1])},html:function(a,b){function f(b){while(b.firstChild)b.removeChild(b.firstChild);y(J(a),function(a){b.appendChild(a)})}var c=b?d.textContent===null?"innerText":"textContent":"innerHTML",e;return typeof a!="undefined"?this.each(function(b){(e=b.tagName.match(h))?f(b,e[0]):b[c]=a}):this[0]?this[0][c]:""},text:function(a){return this.html(a,1)},addClass:function(a){return this.each(function(b){F(b,a)||G(b,a)})},removeClass:function(a){return this.each(function(b){F(b,a)&&H(b,a)})},hasClass:function(a){return B(this,function(b){return F(b,a)})},toggleClass:function(a,b){return this.each(function(c){typeof b!="undefined"?b?G(c,a):H(c,a):F(c,a)?H(c,a):G(c,a)})},show:function(a){return this.each(function(b){b.style.display=a||""})},hide:function(a){return this.each(function(a){a.style.display="none"})},append:function(a){return this.each(function(b){y(J(a),function(a){b.appendChild(a)})})},prepend:function(a){return this.each(function(b){var c=b.firstChild;y(J(a),function(a){b.insertBefore(a,c)})})},appendTo:function(a,b){return D.call(this,a,b,function(a,b){a.appendChild(b)})},prependTo:function(a,b){return D.call(this,a,b,function(a,b){a.insertBefore(b,a.firstChild)})},next:function(){return this.related("nextSibling")},previous:function(){return this.related("previousSibling")},related:function(a){return this.map(function(b){b=b[a];while(b&&b.nodeType!==1)b=b[a];return b||0},function(a){return a})},before:function(a){return this.each(function(b){y(N.create(a),function(a){b[e].insertBefore(a,b)})})},after:function(a){return this.each(function(b){y(N.create(a),function(a){b[e].insertBefore(a,b.nextSibling)})})},insertBefore:function(a,b){return D.call(this,a,b,function(a,b){a[e].insertBefore(b,a)})},insertAfter:function(a,b){return D.call(this,a,b,function(a,b){var c=a.nextSibling;c?a[e].insertBefore(b,c):a[e].appendChild(b)})},css:function(a,d,e){function g(a,b,c){for(var d in f)f.hasOwnProperty(d)&&(c=f[d],(b=z(d))&&p.test(c)&&!(b in u)&&(c+=q),b=b=="transform"?v:b,b=b=="transformOrigin"?v+"Origin":b,a.style[b]=c)}if(d===undefined&&typeof a=="string"){d=this[0];if(!d)return null;if(d==c||d==b){e=d==c?N.doc():N.viewport();return a=="width"?e.width:a=="height"?e.height:""}return C(d,a)}var f=a;typeof a=="string"&&(f={},f[a]=d),m&&f.opacity&&(f.filter="alpha(opacity="+f.opacity*100+")",f.zoom=a.zoom||1,delete f.opacity);if(d=f["float"])m?f.styleFloat=d:f.cssFloat=d,delete f["float"];return this.each(g)},offset:function(a,b){if(typeof a=="number"||typeof b=="number")return this.each(function(c){E(c,a,b)});var c=this[0],d=c.offsetWidth,e=c.offsetHeight,f=c.offsetTop,g=c.offsetLeft;while(c=c.offsetParent)f=f+c.offsetTop,g=g+c.offsetLeft;return{top:f,left:g,height:e,width:d}},attr:function(a,b){var c=this[0];if(typeof a=="string"||a instanceof String)return typeof b=="undefined"?g.test(a)?l.test(a)&&typeof c[a]=="string"?!0:c[a]:c[s](a):this.each(function(c){g.test(a)?c[a]=b:c[r](a,b)});for(var d in a)a.hasOwnProperty(d)&&this.attr(d,a[d]);return this},val:function(a){return typeof a=="string"?this.attr("value",a):this[0].value},removeAttr:function(a){return this.each(function(b){l.test(a)?b[a]=!1:b.removeAttribute(a)})},data:function(a,b){var c=this[0];if(typeof b=="undefined"){c[s]("data-node-uid")||c[r]("data-node-uid",++o);var d=c[s]("data-node-uid");n[d]||(n[d]={});return n[d][a]}return this.each(function(c){c[s]("data-node-uid")||c[r]("data-node-uid",++o);var d=c[s]("data-node-uid"),e=n[d]||(n[d]={});e[a]=b})},remove:function(){return this.each(function(a){a[e]&&a[e].removeChild(a)})},empty:function(){return this.each(function(a){while(a.firstChild)a.removeChild(a.firstChild)})},detach:function(){return this.map(function(a){return a[e].removeChild(a)})},scrollTop:function(a){return K.call(this,null,a,"y")},scrollLeft:function(a){return K.call(this,a,null,"x")},toggle:function(a){this.each(function(a){a.style.display=a.offsetWidth||a.offsetHeight?"none":"block"}),a&&a();return this}},N.setQueryEngine=function(a){f=a,delete N.setQueryEngine},N.aug=function(a,b){for(var c in a)a.hasOwnProperty(c)&&((b||I.prototype)[c]=a[c])},N.create=function(a){return typeof a=="string"?function(){var b=/^<([^\s>]+)/.exec(a),d=c.createElement(b&&k[b[1].toLowerCase()]||"div"),e=[];d.innerHTML=a;var f=d.childNodes;d=d.firstChild,e.push(d);while(d=d.nextSibling)d.nodeType==1&&e.push(d);return e}():A(a)?[a.cloneNode(!0)]:[]},N.doc=function(){var a=this.viewport();return{width:Math.max(c.body.scrollWidth,d.scrollWidth,a.width),height:Math.max(c.body.scrollHeight,d.scrollHeight,a.height)}},N.firstChild=function(a){for(var b=a.childNodes,c=0,d=b&&b.length||0,e;c<d;c++)b[c].nodeType===1&&(e=b[d=c]);return e},N.viewport=function(){return{width:m?d.clientWidth:self.innerWidth,height:m?d.clientHeight:self.innerHeight}},N.isAncestor="compareDocumentPosition"in d?function(a,b){return(a.compareDocumentPosition(b)&16)==16}:"contains"in d?function(a,b){return a!==b&&a.contains(b)}:function(a,b){while(b=b[e])if(b===a)return!0;return!1};var O=a.bonzo;N.noConflict=function(){a.bonzo=O;return this};return N}),provide("bonzo",a.exports),!function(a){function e(a,b,c){return a?b.css(c,a):function(a){a=parseInt(b.css(c),10);return isNaN(a)?b[0]["offset"+c.replace(/^\w/,function(a){return a.toUpperCase()})]:a}()}function d(a){var b=[],c,d;label:for(c=0;c<a.length;c++){for(d=0;d<b.length;d++)if(b[d]==a[c])continue label;b[b.length]=a[c]}return b}function c(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return c;return-1}var b=require("bonzo");b.setQueryEngine(a),a.ender(b),a.ender(b(),!0),a.ender({create:function(c){return a(b.create(c))}}),a.id=function(b){return a([document.getElementById(b)])},a.ender({parents:function(b,e){var f=a(b),g,h,i,j=[];for(g=0,h=this.length;g<h;g++){i=this[g];while(i=i.parentNode)if(c(f,i)!==-1){j.push(i);if(e)break}}return a(d(j))},closest:function(a){return this.parents(a,!0)},first:function(){return a(this[0])},last:function(){return a(this[this.length-1])},next:function(){return a(b(this).next())},previous:function(){return a(b(this).previous())},appendTo:function(a){return b(this.selector).appendTo(a,this)},prependTo:function(a){return b(this.selector).prependTo(a,this)},insertAfter:function(a){return b(this.selector).insertAfter(a,this)},insertBefore:function(a){return b(this.selector).insertBefore(a,this)},siblings:function(){var b,c,d,e=[];for(b=0,c=this.length;b<c;b++){d=this[b];while(d=d.previousSibling)d.nodeType==1&&e.push(d);d=this[b];while(d=d.nextSibling)d.nodeType==1&&e.push(d)}return a(e)},children:function(){var c,e,f=[];for(c=0,l=this.length;c<l;c++){if(!(e=b.firstChild(this[c])))continue;f.push(e);while(e=e.nextSibling)e.nodeType==1&&f.push(e)}return a(d(f))},height:function(a){return e(a,this,"height")},width:function(a){return e(a,this,"width")}},!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=this.domReady=c()}("domready",function(a){function l(a){k=1;while(a=b.shift())a()}var b=[],c,d=!1,e=document,f=e.documentElement,g=f.doScroll,h="DOMContentLoaded",i="addEventListener",j="onreadystatechange",k=/^loade|c/.test(e.readyState);e[i]&&e[i](h,c=function(){e.removeEventListener(h,c,d),l()},d),g&&e.attachEvent(j,c=function(){/^c/.test(e.readyState)&&(e.detachEvent(j,c),l())});return a=g?function(c){self!=top?k?c():b.push(c):function(){try{f.doScroll("left")}catch(b){return setTimeout(function(){a(c)},50)}c()}()}:function(a){k?a():b.push(a)}}),provide("domready",a.exports),!function(a){var b=require("domready");a.ender({domReady:b}),a.ender({ready:function(a){b(a);return this}},!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;
+!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=c()}("bonzo",function(){function x(a){return new RegExp("(^|\\s+)"+a+"(\\s+|$)")}function y(a,b,c){for(var d=0,e=a.length;d<e;d++)b.call(c||a[d],a[d],d,a);return a}function z(a){return a.replace(/-(.)/g,function(a,b){return b.toUpperCase()})}function A(a){return a&&a.nodeName&&a.nodeType==1}function B(a,b,c,d){for(d=0,j=a.length;d<j;++d)if(b.call(c,a[d],d,a))return!0;return!1}function D(a,b,c){var d=0,g=b||this,h=[],i=f&&typeof a=="string"&&a.charAt(0)!="<"?f(a):a;return y(J(i),function(a){y(g,function(b){var f=!b[e]||b[e]&&!b[e][e]?function(){var a=b.cloneNode(!0);return g.$&&g.cloneEvents&&g.$(a).cloneEvents(b),a}():b;c(a,f),h[d]=f,d++})},this),y(h,function(a,b){g[b]=a}),g.length=d,g}function E(a,b,c){var d=N(a),e=d.css("position"),f=d.offset(),g="relative",h=e==g,i=[parseInt(d.css("left"),10),parseInt(d.css("top"),10)];e=="static"&&(d.css("position",g),e=g),isNaN(i[0])&&(i[0]=h?0:a.offsetLeft),isNaN(i[1])&&(i[1]=h?0:a.offsetTop),b!=null&&(a.style.left=b-f.left+i[0]+q),c!=null&&(a.style.top=c-f.top+i[1]+q)}function F(a,b){return x(b).test(a.className)}function G(a,b){a.className=w(a.className+" "+b)}function H(a,b){a.className=w(a.className.replace(x(b)," "))}function I(a){this.length=0;if(a){a=typeof a!="string"&&!a.nodeType&&typeof a.length!="undefined"?a:[a],this.length=a.length;for(var b=0;b<a.length;b++)this[b]=a[b]}}function J(a){return typeof a=="string"?N.create(a):A(a)?[a]:a}function K(a,c,d){var e=this[0];return a==null&&c==null?(L(e)?M():{x:e.scrollLeft,y:e.scrollTop})[d]:(L(e)?b.scrollTo(a,c):(a!=null&&(e.scrollLeft=a),c!=null&&(e.scrollTop=c)),this)}function L(a){return a===b||/^(?:body|html)$/i.test(a.tagName)}function M(){return{x:b.pageXOffset||d.scrollLeft,y:b.pageYOffset||d.scrollTop}}function N(a,b){return new I(a,b)}var a=this,b=window,c=b.document,d=c.documentElement,e="parentNode",f=null,g=/^checked|value|selected$/,h=/select|fieldset|table|tbody|tfoot|td|tr|colgroup/i,i="table",k={thead:i,tbody:i,tfoot:i,tr:"tbody",th:"tr",td:"tr",fieldset:"form",option:"select"},l=/^checked|selected$/,m=/msie/i.test(navigator.userAgent),n=[],o=0,p=/^-?[\d\.]+$/,q="px",r="setAttribute",s="getAttribute",t=/(^\s*|\s*$)/g,u={lineHeight:1,zoom:1,zIndex:1,opacity:1},v=function(){var a=["webkitTransform","MozTransform","OTransform","msTransform","Transform"],b;for(b=0;b<a.length;b++)if(a[b]in c.createElement("a").style)return a[b]}(),w=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(t,"")},C=c.defaultView&&c.defaultView.getComputedStyle?function(a,b){b=b=="transform"?v:b,b=b=="transform-origin"?v+"Origin":b;var d=null;b=="float"&&(b="cssFloat");var e=c.defaultView.getComputedStyle(a,"");return e&&(d=e[z(b)]),a.style[b]||d}:m&&d.currentStyle?function(a,b){b=z(b),b=b=="float"?"styleFloat":b;if(b=="opacity"){var c=100;try{c=a.filters["DXImageTransform.Microsoft.Alpha"].opacity}catch(d){try{c=a.filters("alpha").opacity}catch(e){}}return c/100}var f=a.currentStyle?a.currentStyle[b]:null;return a.style[b]||f}:function(a,b){return a.style[z(b)]};I.prototype={get:function(a){return this[a]},each:function(a,b){return y(this,a,b)},map:function(a,b){var c=[],d,e;for(e=0;e<this.length;e++)d=a.call(this,this[e],e),b?b(d)&&c.push(d):c.push(d);return c},first:function(){return N(this[0])},last:function(){return N(this[this.length-1])},html:function(a,b){function f(b){while(b.firstChild)b.removeChild(b.firstChild);y(J(a),function(a){b.appendChild(a)})}var c=b?d.textContent===null?"innerText":"textContent":"innerHTML",e;return typeof a!="undefined"?this.each(function(b){(e=b.tagName.match(h))?f(b,e[0]):b[c]=a}):this[0]?this[0][c]:""},text:function(a){return this.html(a,1)},addClass:function(a){return this.each(function(b){F(b,a)||G(b,a)})},removeClass:function(a){return this.each(function(b){F(b,a)&&H(b,a)})},hasClass:function(a){return B(this,function(b){return F(b,a)})},toggleClass:function(a,b){return this.each(function(c){typeof b!="undefined"?b?G(c,a):H(c,a):F(c,a)?H(c,a):G(c,a)})},show:function(a){return this.each(function(b){b.style.display=a||""})},hide:function(a){return this.each(function(a){a.style.display="none"})},append:function(a){return this.each(function(b){y(J(a),function(a){b.appendChild(a)})})},prepend:function(a){return this.each(function(b){var c=b.firstChild;y(J(a),function(a){b.insertBefore(a,c)})})},appendTo:function(a,b){return D.call(this,a,b,function(a,b){a.appendChild(b)})},prependTo:function(a,b){return D.call(this,a,b,function(a,b){a.insertBefore(b,a.firstChild)})},next:function(){return this.related("nextSibling")},previous:function(){return this.related("previousSibling")},related:function(a){return this.map(function(b){b=b[a];while(b&&b.nodeType!==1)b=b[a];return b||0},function(a){return a})},before:function(a){return this.each(function(b){y(N.create(a),function(a){b[e].insertBefore(a,b)})})},after:function(a){return this.each(function(b){y(N.create(a),function(a){b[e].insertBefore(a,b.nextSibling)})})},insertBefore:function(a,b){return D.call(this,a,b,function(a,b){a[e].insertBefore(b,a)})},insertAfter:function(a,b){return D.call(this,a,b,function(a,b){var c=a.nextSibling;c?a[e].insertBefore(b,c):a[e].appendChild(b)})},replaceWith:function(a){return this.each(function(b){b.parentNode.replaceChild(N.create(a)[0],b)})},css:function(a,d,e){function g(a,b,c){for(var d in f)f.hasOwnProperty(d)&&(c=f[d],(b=z(d))&&p.test(c)&&!(b in u)&&(c+=q),b=b=="transform"?v:b,b=b=="transformOrigin"?v+"Origin":b,a.style[b]=c)}if(d===undefined&&typeof a=="string")return d=this[0],d?d==c||d==b?(e=d==c?N.doc():N.viewport(),a=="width"?e.width:a=="height"?e.height:""):C(d,a):null;var f=a;typeof a=="string"&&(f={},f[a]=d),m&&f.opacity&&(f.filter="alpha(opacity="+f.opacity*100+")",f.zoom=a.zoom||1,delete f.opacity);if(d=f["float"])m?f.styleFloat=d:f.cssFloat=d,delete f["float"];return this.each(g)},offset:function(a,b){if(typeof a=="number"||typeof b=="number")return this.each(function(c){E(c,a,b)});var c=this[0],d=c.offsetWidth,e=c.offsetHeight,f=c.offsetTop,g=c.offsetLeft;while(c=c.offsetParent)f+=c.offsetTop,g+=c.offsetLeft;return{top:f,left:g,height:e,width:d}},attr:function(a,b){var c=this[0];if(typeof a=="string"||a instanceof String)return typeof b=="undefined"?g.test(a)?l.test(a)&&typeof c[a]=="string"?!0:c[a]:c[s](a):this.each(function(c){g.test(a)?c[a]=b:c[r](a,b)});for(var d in a)a.hasOwnProperty(d)&&this.attr(d,a[d]);return this},val:function(a){return typeof a=="string"?this.attr("value",a):this[0].value},removeAttr:function(a){return this.each(function(b){l.test(a)?b[a]=!1:b.removeAttribute(a)})},data:function(a,b){var c=this[0];if(typeof b=="undefined"){c[s]("data-node-uid")||c[r]("data-node-uid",++o);var d=c[s]("data-node-uid");return n[d]||(n[d]={}),n[d][a]}return this.each(function(c){c[s]("data-node-uid")||c[r]("data-node-uid",++o);var d=c[s]("data-node-uid"),e=n[d]||(n[d]={});e[a]=b})},remove:function(){return this.each(function(a){a[e]&&a[e].removeChild(a)})},empty:function(){return this.each(function(a){while(a.firstChild)a.removeChild(a.firstChild)})},detach:function(){return this.map(function(a){return a[e].removeChild(a)})},scrollTop:function(a){return K.call(this,null,a,"y")},scrollLeft:function(a){return K.call(this,a,null,"x")},toggle:function(a){return this.each(function(a){a.style.display=a.offsetWidth||a.offsetHeight?"none":"block"}),a&&a(),this}},N.setQueryEngine=function(a){f=a,delete N.setQueryEngine},N.aug=function(a,b){for(var c in a)a.hasOwnProperty(c)&&((b||I.prototype)[c]=a[c])},N.create=function(a){return typeof a=="string"?function(){var b=/^<([^\s>]+)/.exec(a),d=c.createElement(b&&k[b[1].toLowerCase()]||"div"),e=[];d.innerHTML=a;var f=d.childNodes;d=d.firstChild,e.push(d);while(d=d.nextSibling)d.nodeType==1&&e.push(d);return e}():A(a)?[a.cloneNode(!0)]:[]},N.doc=function(){var a=this.viewport();return{width:Math.max(c.body.scrollWidth,d.scrollWidth,a.width),height:Math.max(c.body.scrollHeight,d.scrollHeight,a.height)}},N.firstChild=function(a){for(var b=a.childNodes,c=0,d=b&&b.length||0,e;c<d;c++)b[c].nodeType===1&&(e=b[d=c]);return e},N.viewport=function(){return{width:m?d.clientWidth:self.innerWidth,height:m?d.clientHeight:self.innerHeight}},N.isAncestor="compareDocumentPosition"in d?function(a,b){return(a.compareDocumentPosition(b)&16)==16}:"contains"in d?function(a,b){return a!==b&&a.contains(b)}:function(a,b){while(b=b[e])if(b===a)return!0;return!1};var O=a.bonzo;return N.noConflict=function(){return a.bonzo=O,this},N}),provide("bonzo",a.exports),!function(a){function c(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return c;return-1}function d(a){var b=[],c,d;e:for(c=0;c<a.length;c++){for(d=0;d<b.length;d++)if(b[d]==a[c])continue e;b[b.length]=a[c]}return b}function e(a,b,c){return a?b.css(c,a):function(a){return a=parseInt(b.css(c),10),isNaN(a)?b[0]["offset"+c.replace(/^\w/,function(a){return a.toUpperCase()})]:a}()}var b=require("bonzo");b.setQueryEngine(a),a.ender(b),a.ender(b(),!0),a.ender({create:function(c){return a(b.create(c))}}),a.id=function(b){return a([document.getElementById(b)])},a.ender({parents:function(b,e){var f=a(b),g,h,i,j=[];for(g=0,h=this.length;g<h;g++){i=this[g];while(i=i.parentNode)if(~c(f,i)){j.push(i);if(e)break}}return a(d(j))},closest:function(a){return this.parents(a,!0)},first:function(){return a(this[0])},last:function(){return a(this[this.length-1])},next:function(){return a(b(this).next())},previous:function(){return a(b(this).previous())},appendTo:function(a){return b(this.selector).appendTo(a,this)},prependTo:function(a){return b(this.selector).prependTo(a,this)},insertAfter:function(a){return b(this.selector).insertAfter(a,this)},insertBefore:function(a){return b(this.selector).insertBefore(a,this)},siblings:function(){var b,c,d,e=[];for(b=0,c=this.length;b<c;b++){d=this[b];while(d=d.previousSibling)d.nodeType==1&&e.push(d);d=this[b];while(d=d.nextSibling)d.nodeType==1&&e.push(d)}return a(e)},children:function(){var c,e,f=[];for(c=0,l=this.length;c<l;c++){if(!(e=b.firstChild(this[c])))continue;f.push(e);while(e=e.nextSibling)e.nodeType==1&&f.push(e)}return a(d(f))},height:function(a){return e(a,this,"height")},width:function(a){return e(a,this,"width")}},!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=this.domReady=c()}("domready",function(a){function l(a){k=1;while(a=b.shift())a()}var b=[],c,d=!1,e=document,f=e.documentElement,g=f.doScroll,h="DOMContentLoaded",i="addEventListener",j="onreadystatechange",k=/^loade|c/.test(e.readyState);return e[i]&&e[i](h,c=function(){e.removeEventListener(h,c,d),l()},d),g&&e.attachEvent(j,c=function(){/^c/.test(e.readyState)&&(e.detachEvent(j,c),l())}),a=g?function(c){self!=top?k?c():b.push(c):function(){try{f.doScroll("left")}catch(b){return setTimeout(function(){a(c)},50)}c()}()}:function(a){k?a():b.push(a)}}),provide("domready",a.exports),!function(a){var b=require("domready");a.ender({domReady:b}),a.ender({ready:function(a){return b(a),this}},!0)}(ender)}(),!function(){var a={exports:{}},b=a.exports;
/*!
* Qwery - A Blazing Fast query selector engine
* https://github.com/ded/qwery
* copyright Dustin Diaz & Jacob Thornton 2011
* MIT License
*/
-!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=c()}("qwery",function(){function _(a,c){var d=$(c);return!d||!a?[]:a===window||X(a)?!c||a!==window&&X(d)&&ba(a,d)?[a]:[]:a&&Z(a)?Q(a):(h=a.match(w))?(m=b.getElementById(h[1]))?[m]:[]:(h=a.match(y))?Q(d.getElementsByTagName(h[1])):bc(a,d)}function $(a){return a?typeof a=="string"?_(a)[0]:Z(a)?a[0]:a:b}function Z(a){return typeof a=="object"&&isFinite(a.length)}function Y(a){var b=[],c,d;label:for(c=0;c<a.length;c++){for(d=0;d<b.length;d++)if(b[d]==a[c])continue label;b[b.length]=a[c]}return b}function X(a){return a&&a.nodeType&&(a.nodeType==1||a.nodeType==9)}function W(a){var c=[],d=[],e,f=0,g,h,i,j,k,l,m,n,p,q,r,s=P.g(a)||P.s(a,a.split(I)),t=a.match(H),u;s=s.slice(0);if(!s.length)return c;k=s.pop(),n=s.length&&(i=s[s.length-1].match(w))?b.getElementById(i[1]):b;if(!n)return c;p=S(k),m=t&&/^[+~]$/.test(t[t.length-1])?function(a){while(n=n.nextSibling)n.nodeType==1&&(p[1]?p[1]==n.tagName.toLowerCase():1)&&a.push(n);return a}([]):n.getElementsByTagName(p[1]||"*");for(e=0,h=m.length;e<h;e++)if(q=T.apply(m[e],p))c[f++]=q;if(!s.length)return c;for(f=0,h=c.length,g=0;f<h;f++){j=c[f];for(e=s.length;e--;)while(j=K[t[e]](j,c[f]))if(o=T.apply(j,S(s[e])))break;o&&(d[g++]=c[f])}return d}function V(a,b,c){switch(a){case"=":return b==c;case"^=":return b.match(O.g("^="+c)||O.s("^="+c,new RegExp("^"+U(c))));case"$=":return b.match(O.g("$="+c)||O.s("$="+c,new RegExp(U(c)+"$")));case"*=":return b.match(O.g(c)||O.s(c,new RegExp(U(c))));case"~=":return b.match(O.g("~="+c)||O.s("~="+c,new RegExp("(?:^|\\s+)"+U(c)+"(?:\\s+|$)")));case"|=":return b.match(O.g("|="+c)||O.s("|="+c,new RegExp("^"+U(c)+"(-|$)")))}return 0}function U(a){return N.g(a)||N.s(a,a.replace(D,"\\$1"))}function T(a,b,c,e,f,g,h,j,k,l,m){var n,o,q;if(b&&this.tagName.toLowerCase()!==b)return!1;if(c&&(n=c.match(u))&&n[1]!==this.id)return!1;if(c&&(p=c.match(v)))for(d=p.length;d--;){o=p[d].slice(1);if(!(M.g(o)||M.s(o,new RegExp("(^|\\s+)"+o+"(\\s+|$)"))).test(this.className))return!1}if(k&&_.pseudos[k]&&!_.pseudos[k](this,m))return!1;if(e&&!h){i=this.attributes;for(q in i)if(Object.prototype.hasOwnProperty.call(i,q)&&(i[q].name||q)==f)return this}return e&&!V(g,this.getAttribute(f)||"",h)?!1:this}function S(a){return a.match(J)}function R(a){while(a=a.previousSibling)if(a.nodeType==1)break;return a}function Q(a){k=[];for(d=0,g=a.length;d<g;d++)Z(a[d])?k=k.concat(a[d]):k.push(a[d]);return k}function L(){this.c={}}var a=this,b=document,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t=b.documentElement,u=/#([\w\-]+)/,v=/\.[\w\-]+/g,w=/^#([\w\-]+$)/,x=/^\.([\w\-]+)$/,y=/^([\w\-]+)$/,z=/^([\w]+)?\.([\w\-]+)$/,A=/\s*([\s\+\~>])\s*/g,B=/[\s\>\+\~]/,C=/(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\]|[\s\w\+\-]*\))/,D=/([.*+?\^=!:${}()|\[\]\/\\])/g,E=/^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/,F=/\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/,G=/:([\w\-]+)(\(['"]?([\s\w\+\-]+)['"]?\))?/,H=new RegExp("("+B.source+")"+C.source,"g"),I=new RegExp(B.source+C.source),J=new RegExp(E.source+"("+F.source+")?"+"("+G.source+")?"),K={" ":function(a){return a&&a!==t&&a.parentNode},">":function(a,b){return a&&a.parentNode==b.parentNode&&a.parentNode},"~":function(a){return a&&a.previousSibling},"+":function(a,b,c,d){if(!a)return!1;c=R(a),d=R(b);return c&&d&&c==d&&c}};L.prototype={g:function(a){return this.c[a]||undefined},s:function(a,b){this.c[a]=b;return b}};var M=new L,N=new L,O=new L,P=new L,ba="compareDocumentPosition"in t?function(a,b){return(b.compareDocumentPosition(a)&16)==16}:"contains"in t?function(a,c){c=c==b||c==window?t:c;return c!==a&&c.contains(a)}:function(a,b){while(a=a.parentNode)if(a===b)return 1;return 0},bb=function(){if(!b.querySelector||!b.querySelectorAll)return!1;try{return b.querySelectorAll(":nth-of-type(1)").length>0}catch(a){return!1}}(),bc=bb?function(a,c){return b.getElementsByClassName&&(h=a.match(x))?Q(c.getElementsByClassName(h[1])):Q(c.querySelectorAll(a))}:function(a,c){a=a.replace(A,"$1");var d=[],f,i,j=[],l;if(h=a.match(z)){r=c.getElementsByTagName(h[1]||"*"),k=M.g(h[2])||M.s(h[2],new RegExp("(^|\\s+)"+h[2]+"(\\s+|$)"));for(l=0,g=r.length,e=0;l<g;l++)k.test(r[l].className)&&(d[e++]=r[l]);return d}for(l=0,r=a.split(","),g=r.length;l<g;l++)j[l]=W(r[l]);for(l=0,g=j.length;l<g&&(i=j[l]);l++){var m=i;if(c!==b){m=[];for(e=0,h=i.length;e<h&&(f=i[e]);e++)ba(f,c)&&m.push(f)}d=d.concat(m)}return Y(d)};_.uniq=Y,_.pseudos={};var bd=a.qwery;_.noConflict=function(){a.qwery=bd;return this};return _}),provide("qwery",a.exports),!function(a,b){function f(b,c){var d=/^<([^\s>]+)/.exec(b)[1],f=(c||a).createElement(e[d]||"div"),g=[];f.innerHTML=b;var h=f.childNodes;f=f.firstChild,g.push(f);while(f=f.nextSibling)f.nodeType==1&&g.push(f);return g}var c=require("qwery"),d="table",e={thead:d,tbody:d,tfoot:d,tr:"tbody",th:"tr",td:"tr",fieldset:"form",option:"select"};b._select=function(a,b){return/^\s*</.test(a)?f(a,b):c(a,b)},b.pseudos=c.pseudos,b.ender({find:function(a){var d=[],e,f,g,h,i;for(e=0,f=this.length;e<f;e++){i=c(a,this[e]);for(g=0,h=i.length;g<h;g++)d.push(i[g])}return b(c.uniq(d))},and:function(a){var c=b(a);for(var d=this.length,e=0,f=this.length+c.length;d<f;d++,e++)this[d]=c[e];return this}},!0)}(document,ender)}()
+!function(b,c){typeof define=="function"?define(c):typeof a!="undefined"?a.exports=c():this[b]=c()}("qwery",function(){function M(){this.c={}}function R(a){l=[];for(e=0,h=a.length;e<h;e++)$(a[e])?l=l.concat(a[e]):l.push(a[e]);return l}function S(a){while(a=a.previousSibling)if(a.nodeType==1)break;return a}function T(a){return a.match(K)}function U(a,b,c,d,f,g,h,i,k,l,m){var n,o,p;if(b&&this.tagName.toLowerCase()!==b)return!1;if(c&&(n=c.match(v))&&n[1]!==this.id)return!1;if(c&&(q=c.match(w)))for(e=q.length;e--;){o=q[e].slice(1);if(!(N.g(o)||N.s(o,new RegExp("(^|\\s+)"+o+"(\\s+|$)"))).test(this.className))return!1}if(k&&ba.pseudos[k]&&!ba.pseudos[k](this,m))return!1;if(d&&!h){j=this.attributes;for(p in j)if(Object.prototype.hasOwnProperty.call(j,p)&&(j[p].name||p)==f)return this}return d&&!W(g,this.getAttribute(f)||"",h)?!1:this}function V(a){return O.g(a)||O.s(a,a.replace(E,"\\$1"))}function W(a,b,c){switch(a){case"=":return b==c;case"^=":return b.match(P.g("^="+c)||P.s("^="+c,new RegExp("^"+V(c))));case"$=":return b.match(P.g("$="+c)||P.s("$="+c,new RegExp(V(c)+"$")));case"*=":return b.match(P.g(c)||P.s(c,new RegExp(V(c))));case"~=":return b.match(P.g("~="+c)||P.s("~="+c,new RegExp("(?:^|\\s+)"+V(c)+"(?:\\s+|$)")));case"|=":return b.match(P.g("|="+c)||P.s("|="+c,new RegExp("^"+V(c)+"(-|$)")))}return 0}function X(a){var c=[],d=[],e,f=0,g,h,i,j,k,l,m,n,o,q,r,s=Q.g(a)||Q.s(a,a.split(J)),t=a.match(I),u;s=s.slice(0);if(!s.length)return c;k=s.pop(),n=s.length&&(i=s[s.length-1].match(x))?b.getElementById(i[1]):b;if(!n)return c;o=T(k),m=t&&/^[+~]$/.test(t[t.length-1])?function(a){while(n=n.nextSibling)n.nodeType==1&&(o[1]?o[1]==n.tagName.toLowerCase():1)&&a.push(n);return a}([]):n.getElementsByTagName(o[1]||"*");for(e=0,h=m.length;e<h;e++)if(q=U.apply(m[e],o))c[f++]=q;if(!s.length)return c;for(f=0,h=c.length,g=0;f<h;f++){j=c[f];for(e=s.length;e--;)while(j=L[t[e]](j,c[f]))if(p=U.apply(j,T(s[e])))break;p&&(d[g++]=c[f])}return d}function Y(a){return a&&a.nodeType&&(a.nodeType==1||a.nodeType==9)}function Z(a){var b=[],c,d;e:for(c=0;c<a.length;c++){for(d=0;d<b.length;d++)if(b[d]==a[c])continue e;b[b.length]=a[c]}return b}function $(a){return typeof a=="object"&&isFinite(a.length)}function _(a){return a?typeof a=="string"?ba(a)[0]:$(a)?a[0]:a:b}function ba(a,c){var d=_(c);return!d||!a?[]:a===window||Y(a)?!c||a!==window&&Y(d)&&bb(a,d)?[a]:[]:a&&$(a)?R(a):(i=a.match(x))?(n=b.getElementById(i[1]))?[n]:[]:(i=a.match(z))?R(d.getElementsByTagName(i[1])):bd(a,d)}var a=this,b=document,c=a.qwery,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u=b.documentElement,v=/#([\w\-]+)/,w=/\.[\w\-]+/g,x=/^#([\w\-]+$)/,y=/^\.([\w\-]+)$/,z=/^([\w\-]+)$/,A=/^([\w]+)?\.([\w\-]+)$/,B=/\s*([\s\+\~>])\s*/g,C=/[\s\>\+\~]/,D=/(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\]|[\s\w\+\-]*\))/,E=/([.*+?\^=!:${}()|\[\]\/\\])/g,F=/^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/,G=/\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/,H=/:([\w\-]+)(\(['"]?([\s\w\+\-]+)['"]?\))?/,I=new RegExp("("+C.source+")"+D.source,"g"),J=new RegExp(C.source+D.source),K=new RegExp(F.source+"("+G.source+")?"+"("+H.source+")?"),L={" ":function(a){return a&&a!==u&&a.parentNode},">":function(a,b){return a&&a.parentNode==b.parentNode&&a.parentNode},"~":function(a){return a&&a.previousSibling},"+":function(a,b,c,d){return a?(c=S(a),d=S(b),c&&d&&c==d&&c):!1}};M.prototype={g:function(a){return this.c[a]||undefined},s:function(a,b){return this.c[a]=b,b}};var N=new M,O=new M,P=new M,Q=new M,bb="compareDocumentPosition"in u?function(a,b){return(b.compareDocumentPosition(a)&16)==16}:"contains"in u?function(a,c){return c=c==b||c==window?u:c,c!==a&&c.contains(a)}:function(a,b){while(a=a.parentNode)if(a===b)return 1;return 0},bc=function(){if(!b.querySelector||!b.querySelectorAll)return!1;try{return b.querySelectorAll(":nth-of-type(1)").length}catch(a){return!1}}(),bd=bc?function(a,c){return b.getElementsByClassName&&(i=a.match(y))?R(c.getElementsByClassName(i[1])):R(c.querySelectorAll(a))}:function(a,c){a=a.replace(B,"$1");var d=[],e,g,j=[],k;if(i=a.match(A)){s=c.getElementsByTagName(i[1]||"*"),l=N.g(i[2])||N.s(i[2],new RegExp("(^|\\s+)"+i[2]+"(\\s+|$)"));for(k=0,h=s.length,f=0;k<h;k++)l.test(s[k].className)&&(d[f++]=s[k]);return d}for(k=0,s=a.split(","),h=s.length;k<h;k++)j[k]=X(s[k]);for(k=0,h=j.length;k<h&&(g=j[k]);k++){var m=g;if(c!==b){m=[];for(f=0,i=g.length;f<i&&(e=g[f]);f++)bb(e,c)&&m.push(e)}d=d.concat(m)}return Z(d)};return ba.uniq=Z,ba.pseudos={},ba.noConflict=function(){return a.qwery=c,this},ba}),provide("qwery",a.exports),!function(a,b){function f(b,c){var d=/^\s*<([^\s>]+)\s*/.exec(b)[1],f=(c||a).createElement(e[d]||"div"),g=[];f.innerHTML=b;var h=f.childNodes;f=f.firstChild,f.nodeType==1&&g.push(f);while(f=f.nextSibling)f.nodeType==1&&g.push(f);return g}var c=require("qwery"),d="table",e={thead:d,tbody:d,tfoot:d,tr:"tbody",th:"tr",td:"tr",fieldset:"form",option:"select"};b._select=function(a,b){return/^\s*</.test(a)?f(a,b):c(a,b)},b.pseudos=c.pseudos,b.ender({find:function(a){var d=[],e,f,g,h,i;for(e=0,f=this.length;e<f;e++){i=c(a,this[e]);for(g=0,h=i.length;g<h;g++)d.push(i[g])}return b(c.uniq(d))},and:function(a){var c=b(a);for(var d=this.length,e=0,f=this.length+c.length;d<f;d++,e++)this[d]=c[e];return this}},!0)}(document,ender)}()
View
20 .themes/classic/source/javascripts/github.js
@@ -9,14 +9,14 @@ var github = (function(){
}
return {
showRepos: function(options){
- var feed = new jXHR();
- feed.onerror = function (msg,url) {
- $(options.target + ' li.loading').addClass('error').text("Error loading feed");
- };
- feed.onreadystatechange = function(data) {
- if (feed.readyState === 4) {
+ $.ajax({
+ url: "http://github.com/api/v2/json/repos/show/"+options.user+"?callback=?"
+ , type: 'jsonp'
+ , error: function (err) { $(options.target + ' li.loading').addClass('error').text("Error loading feed"); }
+ , success: function(data) {
var repos = [];
- for (var i = 0; i < data.repositories.length; i++){
+ if (!data || !data.repositories) { return; }
+ for (var i = 0; i < data.repositories.length; i++) {
if (options.skip_forks && data.repositories[i].fork) { continue; }
repos.push(data.repositories[i]);
}
@@ -31,9 +31,7 @@ var github = (function(){
if (options.count) { repos.splice(options.count); }
render(options.target, repos);
}
- };
- feed.open("GET","http://github.com/api/v2/json/repos/show/"+options.user+"?callback=?");
- feed.send();
+ });
}
};
-})();
+})();
View
10 .themes/classic/source/javascripts/octopress.js
@@ -3,7 +3,10 @@ function getNav() {
mobileNav.children('select').append('<option value="">Navigate&hellip;</option>');
$('ul[role=main-navigation]').addClass('main-navigation');
$('ul.main-navigation a').each(function(link) {
- mobileNav.children('select').append('<option value="'+link.href+'">&bull; '+link.text+'</option>');
+ mobileNav.children('select').append('<option value="'+link.href+'">&raquo; '+link.text+'</option>');
+ });
+ $('ul.subscription a').each(function(link) {
+ mobileNav.children('select').append('<option value="'+link.href+'">&raquo; '+link.text+'</option>');
});
mobileNav.children('select').bind('change', function(event) {
if (event.target.value) { window.location.href = event.target.value; }
@@ -58,7 +61,7 @@ function addCodeLineNumbers() {
lineNumbers = '<pre class="line-numbers">',
tableMiddle = '</pre></td><td class="code">',
tableEnd = '</td></tr></tbody></table>',
- count = $('span.line', code).length;
+ count = $('.line', code).length;
for (var i=1;i<=count; i++) {
lineNumbers += '<span class="line-number">'+i+'</span>\n';
}
@@ -107,7 +110,7 @@ function wrapFlashVideos() {
function renderDeliciousLinks(items) {
var output = "<ul>";
for (var i=0,l=items.length; i<l; i++) {
- output += '<li><a href="' + items[i].u + '" title="Tags: ' + items[i].t.join(', ') + '">' + items[i].d + '</a></li>';
+ output += '<li><a href="' + items[i].u + '" title="Tags: ' + (items[i].t == "" ? "" : items[i].t.join(', ')) + '">' + items[i].d + '</a></li>';
}
output += "</ul>";
$('#delicious').html(output);
@@ -155,3 +158,4 @@ b=j.userAgent.toLowerCase(),d=j.platform.toLowerCase(),g=d?/win/.test(d):/win/.t
10),e[1]=parseInt(c.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(c)?parseInt(c.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof v.ActiveXObject!=l)try{var f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(f&&(c=f.GetVariable("$version")))k=!0,c=c.split(" ")[1].split(","),e=[parseInt(c[0],10),parseInt(c[1],10),parseInt(c[2],10)]}catch(h){}return{w3:a,pv:e,wk:b,ie:k,win:g,mac:d}}();return{embedSWF:function(a,b,d,i,k,e,c,f,h){var j={success:!1,id:b};if(g.w3&&!(g.wk&&g.wk<312)&&
a&&b&&d&&i&&k){d+="";i+="";var p={};if(f&&typeof f===o)for(var m in f)p[m]=f[m];p.data=a;p.width=d;p.height=i;a={};if(c&&typeof c===o)for(var n in c)a[n]=c[n];if(e&&typeof e===o)for(var r in e)typeof a.flashvars!=l?a.flashvars+="&"+r+"="+e[r]:a.flashvars=r+"="+e[r];if(t(k))b=s(p,a,b),j.success=!0,j.ref=b}h&&h(j)},ua:g,getFlashPlayerVersion:function(){return{major:g.pv[0],minor:g.pv[1],release:g.pv[2]}},hasFlashPlayerVersion:t,createSWF:function(a,b,d){if(g.w3)return s(a,b,d)},getQueryParamValue:function(a){var b=
i.location.search||i.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(a==null)return u(b);for(var b=b.split("&"),d=0;d<b.length;d++)if(b[d].substring(0,b[d].indexOf("="))==a)return u(b[d].substring(b[d].indexOf("=")+1))}return""}}}();
+
View
47 .themes/classic/source/javascripts/twitter.js
@@ -1,17 +1,11 @@
// JSON-P Twitter fetcher for Octopress
-// (c) Brandon Mathis // MIT Lisence
-
-// jXHR.js (JSON-P XHR) | v0.1 (c) Kyle Simpson | MIT License | http://mulletxhr.com/
-// uncompressed version available in source/javascripts/libs/jXHR.js
-(function(c){var b=c.setTimeout,d=c.document,a=0;c.jXHR=function(){var e,g,n,h,m=null;function l(){try{h.parentNode.removeChild(h)}catch(o){}}function k(){g=false;e="";l();h=null;i(0)}function f(p){try{m.onerror.call(m,p,e)}catch(o){throw new Error(p)}}function j(){if((this.readyState&&this.readyState!=="complete"&&this.readyState!=="loaded")||g){return}this.onload=this.onreadystatechange=null;g=true;if(m.readyState!==4){f("Script failed to load ["+e+"].")}l()}function i(o,p){p=p||[];m.readyState=o;if(typeof m.onreadystatechange==="function"){m.onreadystatechange.apply(m,p)}}m={onerror:null,onreadystatechange:null,readyState:0,open:function(p,o){k();internal_callback="cb"+(a++);(function(q){c.jXHR[q]=function(){try{i.call(m,4,arguments)}catch(r){m.readyState=-1;f("Script failed to run ["+e+"].")}c.jXHR[q]=null}})(internal_callback);e=o.replace(/=\?/,"=jXHR."+internal_callback);i(1)},send:function(){b(function(){h=d.createElement("script");h.setAttribute("type","text/javascript");h.onload=h.onreadystatechange=function(){j.call(h)};h.setAttribute("src",e);d.getElementsByTagName("head")[0].appendChild(h)},0);i(2)},setRequestHeader:function(){},getResponseHeader:function(){return""},getAllResponseHeaders:function(){return[]}};k();return m}})(window);
-
+// (c) Brandon Mathis // MIT License
/* Sky Slavin, Ludopoli. MIT license. * based on JavaScript Pretty Date * Copyright (c) 2008 John Resig (jquery.com) * Licensed under the MIT license. */
function prettyDate(time) {
if (navigator.appName === 'Microsoft Internet Explorer') {
return "<span>&infin;</span>"; // because IE date parsing isn't fun.
}
-
var say = {
just_now: " now",
minute_ago: "1m",
@@ -20,6 +14,7 @@ function prettyDate(time) {
hours_ago: "h",
yesterday: "1d",
days_ago: "d",
+ last_week: "1w",
weeks_ago: "w"
};
@@ -40,16 +35,26 @@ function prettyDate(time) {
diff < 86400 && Math.floor(diff / 3600) + say.hours_ago) ||
day_diff === 1 && say.yesterday ||
day_diff < 7 && day_diff + say.days_ago ||
+ day_diff === 7 && say.last_week ||
day_diff > 7 && Math.ceil(day_diff / 7) + say.weeks_ago;
}
function linkifyTweet(text, url) {
+ // Linkify urls, usernames, hashtags
+ text = text.replace(/(https?:\/\/)([\w\-:;?&=+.%#\/]+)/gi, '<a href="$1$2">$2</a>')
+ .replace(/(^|\W)@(\w+)/g, '$1<a href="http://twitter.com/$2">@$2</a>')
+ .replace(/(^|\W)#(\w+)/g, '$1<a href="http://search.twitter.com/search?q=%23$2">#$2</a>');
+
+ // Use twitter's api to replace t.co shortened urls with expanded ones.
for (var u in url) {
- var shortUrl = new RegExp(url[u].url, 'g');
- text = text.replace(shortUrl, '<a href="' + url[u].expanded_url + '">' + url[u].expanded_url.replace(/https?:\/\//, '') + '</a>');
+ if(url[u].expanded_url != null){
+ var shortUrl = new RegExp(url[u].url, 'g');
+ text = text.replace(shortUrl, url[u].expanded_url);
+ var shortUrl = new RegExp(">"+(url[u].url.replace(/https?:\/\//, '')), 'g');
+ text = text.replace(shortUrl, ">"+url[u].display_url);
+ }
}
- return text.replace(/(^|\W)@(\w+)/g, '$1<a href="http://twitter.com/$2">@$2</a>')
- .replace(/(^|\W)#(\w+)/g, '$1<a href="http://search.twitter.com/search?q=%23$2">#$2</a>');
+ return text
}
function showTwitterFeed(tweets, twitter_user) {
@@ -63,15 +68,11 @@ function showTwitterFeed(tweets, twitter_user) {
}
function getTwitterFeed(user, count, replies) {
- var feed = new jXHR();
- feed.onerror = function (msg,url) {
- $('#tweets li.loading').addClass('error').text("Twitter's busted");
- };
- feed.onreadystatechange = function(data){
- if (feed.readyState === 4) { showTwitterFeed(data, user); }
- };
-
- // Documentation: https://dev.twitter.com/docs/api/1/get/statuses/user_timeline
- feed.open("GET","http://api.twitter.com/1/statuses/user_timeline/" + user + ".json?trim_user=true&count=" + (parseInt(count, 10)) + "&include_entities=1&exclude_replies=" + (replies ? "0" : "1") + "&callback=?");
- feed.send();
-}
+ count = parseInt(count, 10);
+ $.ajax({
+ url: "http://api.twitter.com/1/statuses/user_timeline/" + user + ".json?trim_user=true&count=" + (count + 20) + "&include_entities=1&exclude_replies=" + (replies ? "0" : "1") + "&callback=?"
+ , type: 'jsonp'
+ , error: function (err) { $('#tweets li.loading').addClass('error').text("Twitter's busted"); }
+ , success: function(data) { showTwitterFeed(data.slice(0, count), user); }
+ })
+}
View
25 Gemfile
@@ -1,17 +1,18 @@
source "http://rubygems.org"
group :development do
- gem 'rake'
- gem 'rack'
- gem 'jekyll'
- gem 'rdiscount'
- gem 'pygments.rb'
- gem 'RedCloth'
- gem 'haml', '>= 3.1'
- gem 'compass', '>= 0.11'
- gem 'rubypants'
- gem 'rb-fsevent'
- gem 'stringex'
+ gem 'rake', '~> 0.9.2'
+ gem 'rack', '~> 1.4.1'
+ gem 'jekyll', '~> 0.11.2'
+ gem 'rdiscount', '~> 1.6.8'
+ gem 'pygments.rb', '~> 0.2.12'
+ gem 'RedCloth', '~> 4.2.9'
+ gem 'haml', '~> 3.1.6'
+ gem 'compass', '~> 0.12.1'
+ gem 'rubypants', '~> 0.2.0'
+ gem 'rb-fsevent', '~> 0.9'
+ gem 'stringex', '~> 1.4.0'
+ gem 'liquid', '~> 2.3.0'
end
-gem 'sinatra', '1.2.6'
+gem 'sinatra', '~> 1.3.2'
View
86 Gemfile.lock
@@ -1,65 +1,69 @@
GEM
remote: http://rubygems.org/
specs:
- RedCloth (4.2.8)
+ RedCloth (4.2.9)
albino (1.3.3)
posix-spawn (>= 0.3.6)
blankslate (2.1.2.4)
- chunky_png (1.2.1)
+ chunky_png (1.2.5)
classifier (1.3.3)
fast-stemmer (>= 1.0.0)
- compass (0.11.5)
+ compass (0.12.2)
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.1)
- directory_watcher (1.4.0)
- fast-stemmer (1.0.0)
- ffi (1.0.9)
- fssm (0.2.7)
- haml (3.1.2)
- jekyll (0.11.0)
- albino (>= 1.3.2)
- classifier (>= 1.3.1)
- directory_watcher (>= 1.1.1)
- kramdown (>= 0.13.2)
- liquid (>= 1.9.0)
- maruku (>= 0.5.9)
- kramdown (0.13.3)
- liquid (2.2.2)
+ directory_watcher (1.4.1)
+ fast-stemmer (1.0.1)
+ ffi (1.0.11)
+ fssm (0.2.9)
+ haml (3.1.6)
+ jekyll (0.11.2)
+ albino (~> 1.3)
+ classifier (~> 1.3)
+ directory_watcher (~> 1.1)
+ kramdown (~> 0.13)
+ liquid (~> 2.3)
+ maruku (~> 0.5)
+ kramdown (0.13.7)
+ liquid (2.3.0)
maruku (0.6.0)
syntax (>= 1.0.0)
posix-spawn (0.3.6)
- pygments.rb (0.1.3)
- rubypython (>= 0.5.1)
- rack (1.3.2)
- rake (0.9.2)
- rb-fsevent (0.4.3.1)
+ pygments.rb (0.2.13)
+ rubypython (~> 0.5.3)
+ rack (1.4.1)
+ rack-protection (1.2.0)
+ rack
+ rake (0.9.2.2)
+ rb-fsevent (0.9.1)
rdiscount (1.6.8)
rubypants (0.2.0)
- rubypython (0.5.1)
+ rubypython (0.5.3)
blankslate (>= 2.1.2.3)
ffi (~> 1.0.7)
- sass (3.1.5)
- sinatra (1.2.6)
- rack (~> 1.1)
- tilt (>= 1.2.2, < 2.0)
- stringex (1.3.0)
+ sass (3.1.20)
+ sinatra (1.3.2)
+ rack (~> 1.3, >= 1.3.6)
+ rack-protection (~> 1.2)
+ tilt (~> 1.3, >= 1.3.3)
+ stringex (1.4.0)
syntax (1.0.0)
- tilt (1.3.2)
+ tilt (1.3.3)
PLATFORMS
ruby
DEPENDENCIES
- RedCloth
- compass (>= 0.11)
- haml (>= 3.1)
- jekyll
- pygments.rb
- rack
- rake
- rb-fsevent
- rdiscount
- rubypants
- sinatra (= 1.2.6)
- stringex
+ RedCloth (~> 4.2.9)
+ compass (~> 0.12.1)
+ haml (~> 3.1.6)
+ jekyll (~> 0.11.2)
+ liquid (~> 2.3.0)
+ pygments.rb (~> 0.2.12)
+ rack (~> 1.4.1)
+ rake (~> 0.9.2)
+ rb-fsevent (~> 0.9)
+ rdiscount (~> 1.6.8)
+ rubypants (~> 0.2.0)
+ sinatra (~> 1.3.2)
+ stringex (~> 1.4.0)
View
16 README.markdown
@@ -3,15 +3,22 @@
Octopress is [Jekyll](https://github.com/mojombo/jekyll) blogging at its finest.
1. **Octopress sports a clean responsive theme** written in semantic HTML5, focused on readability and friendliness toward mobile devices.
-2. **Code blogging is easy and beautiful.** Embed code (with [Solarized](http://ethanschoonover.com/solarized) styling) in your posts from gists or from your filesystem.
-3. **Third party integration is simple** with built-in support for Twitter, Pinboard, Delicious, Disqus Comments, and Google Analytics.
+2. **Code blogging is easy and beautiful.** Embed code (with [Solarized](http://ethanschoonover.com/solarized) styling) in your posts from gists, jsFiddle or from your filesystem.
+3. **Third party integration is simple** with built-in support for Twitter, Pinboard, Delicious, GitHub Repositories, Disqus Comments and Google Analytics.
4. **It's easy to use.** A collection of rake tasks simplifies development and makes deploying a cinch.
-5. **Ships with great plugins** some original and others from the Jekyll community &mdash; tested and improved.
+5. **Ships with great plug-ins** some original and others from the Jekyll community &mdash; tested and improved.
+
## Documentation
Check out [Octopress.org](http://octopress.org/docs) for guides and documentation.
+
+## Contributing
+
+We love to see people contributing to Octopress, whether it's a bug report, feature suggestion or a pull request. At the moment, we try to keep the core slick and lean, focusing on basic blogging needs, so some of your suggestions might not find their way into Octopress. For those ideas, we started a [list of 3rd party plug-ins](https://github.com/imathis/octopress/wiki/3rd-party-plugins), where you can link your own Octopress plug-in repositories. For the future, we're thinking about ways to easier add them them into our main releases.
+
+
## License
(The MIT License)
@@ -23,6 +30,7 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
#### If you want to be awesome.
- Proudly display the 'Powered by Octopress' credit in the footer.
-- Add your site to the wiki so we can watch the community grow.
+- Add your site to the Wiki so we can watch the community grow.
View
74 Rakefile
@@ -7,6 +7,7 @@ require "stringex"
ssh_user = "asf@care"
ssh_port = "22"
document_root = "~/www/boinkor.net/"
+rsync_delete = true
deploy_default = "rsync"
# This will be configured for you when you run config_deploy
@@ -50,14 +51,16 @@ desc "Generate jekyll site"
task :generate do
raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
puts "## Generating Site with Jekyll"
+ system "compass compile --css-dir #{source_dir}/stylesheets"
system "jekyll"
end
desc "Watch the site and regenerate when it changes"
task :watch do
raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
puts "Starting to watch source with Jekyll and Compass."
- jekyllPid = Process.spawn("jekyll --auto")
+ system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css")
+ jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll --auto")
compassPid = Process.spawn("compass watch")
trap("INT") {
@@ -72,7 +75,8 @@ desc "preview the site in a web browser"
task :preview do
raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
puts "Starting to watch source with Jekyll and Compass. Starting Rack on port #{server_port}"
- jekyllPid = Process.spawn("jekyll --auto")
+ system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css")
+ jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll --auto")
compassPid = Process.spawn("compass watch")
rackupPid = Process.spawn("rackup --port #{server_port}")
@@ -88,7 +92,6 @@ end
desc "Begin a new post in #{source_dir}/#{posts_dir}"
task :new_post, :title do |t, args|
raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)