Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

initial pages

  • Loading branch information...
commit c83be2481b84b0e7626f0de87327f1a66c198317 1 parent d93dddd
@xerial authored
Showing with 40,253 additions and 2,192 deletions.
  1. +127 −0 _config.yml
  2. +14 −0 _includes/JB/analytics
  3. +12 −0 _includes/JB/analytics-providers/getclicky
  4. +11 −0 _includes/JB/analytics-providers/google
  5. +11 −0 _includes/JB/analytics-providers/mixpanel
  6. +37 −0 _includes/JB/categories_list
  7. +16 −0 _includes/JB/comments
  8. +14 −0 _includes/JB/comments-providers/disqus
  9. +9 −0 _includes/JB/comments-providers/facebook
  10. +6 −0 _includes/JB/comments-providers/intensedebate
  11. +6 −0 _includes/JB/comments-providers/livefyre
  12. +32 −0 _includes/JB/liquid_raw
  13. +39 −0 _includes/JB/pages_list
  14. +55 −0 _includes/JB/posts_collate
  15. +22 −0 _includes/JB/setup
  16. +8 −0 _includes/JB/sharing
  17. +33 −0 _includes/JB/tags_list
  18. +11 −0 _includes/sidenav.html
  19. +108 −0 _includes/themes/twitter/default.html
  20. +5 −0 _includes/themes/twitter/page.html
  21. +40 −0 _includes/themes/twitter/post.html
  22. +2 −0  _includes/themes/twitter/settings.yml
  23. +6 −0 _layouts/default.html
  24. +5 −0 _layouts/page.html
  25. +5 −0 _layouts/post.html
  26. +38 −0 _plugins/debug.rb
  27. +411 −0 _posts/core-samples/2011-12-29-jekyll-introduction.md
  28. +686 −0 _site/assets/css/bootstrap-responsive.css
  29. +4,647 −0 _site/assets/css/bootstrap.css
  30. +706 −0 _site/assets/css/bootstrap.min.css
  31. +318 −0 _site/assets/css/docs.css
  32. BIN  _site/assets/img/glyphicons-halflings-white.png
  33. BIN  _site/assets/img/glyphicons-halflings.png
  34. +180 −0 _site/assets/js/application.js
  35. +94 −0 _site/assets/js/bootstrap-alert.js
  36. +100 −0 _site/assets/js/bootstrap-button.js
  37. +157 −0 _site/assets/js/bootstrap-carousel.js
  38. +136 −0 _site/assets/js/bootstrap-collapse.js
  39. +92 −0 _site/assets/js/bootstrap-dropdown.js
  40. +210 −0 _site/assets/js/bootstrap-modal.js
  41. +95 −0 _site/assets/js/bootstrap-popover.js
  42. +125 −0 _site/assets/js/bootstrap-scrollspy.js
  43. +130 −0 _site/assets/js/bootstrap-tab.js
  44. +270 −0 _site/assets/js/bootstrap-tooltip.js
  45. +51 −0 _site/assets/js/bootstrap-transition.js
  46. +271 −0 _site/assets/js/bootstrap-typeahead.js
  47. +2 −0  _site/assets/js/google-code-prettify/lang-apollo.js
  48. +18 −0 _site/assets/js/google-code-prettify/lang-clj.js
  49. +2 −0  _site/assets/js/google-code-prettify/lang-css.js
  50. +1 −0  _site/assets/js/google-code-prettify/lang-go.js
  51. +2 −0  _site/assets/js/google-code-prettify/lang-hs.js
  52. +3 −0  _site/assets/js/google-code-prettify/lang-lisp.js
  53. +2 −0  _site/assets/js/google-code-prettify/lang-lua.js
  54. +2 −0  _site/assets/js/google-code-prettify/lang-ml.js
  55. +4 −0 _site/assets/js/google-code-prettify/lang-n.js
  56. +1 −0  _site/assets/js/google-code-prettify/lang-proto.js
  57. +2 −0  _site/assets/js/google-code-prettify/lang-scala.js
  58. +2 −0  _site/assets/js/google-code-prettify/lang-sql.js
  59. +1 −0  _site/assets/js/google-code-prettify/lang-tex.js
  60. +2 −0  _site/assets/js/google-code-prettify/lang-vb.js
  61. +3 −0  _site/assets/js/google-code-prettify/lang-vhdl.js
  62. +2 −0  _site/assets/js/google-code-prettify/lang-wiki.js
  63. +3 −0  _site/assets/js/google-code-prettify/lang-xq.js
  64. +2 −0  _site/assets/js/google-code-prettify/lang-yaml.js
  65. +1 −0  _site/assets/js/google-code-prettify/prettify.css
  66. +28 −0 _site/assets/js/google-code-prettify/prettify.js
  67. +9,252 −0 _site/assets/js/jquery.js
  68. +632 −0 _site/assets/themes/twitter/bootstrap/css/bootstrap.min.css
  69. BIN  _site/assets/themes/twitter/bootstrap/img/glyphicons-halflings-white.png
  70. BIN  _site/assets/themes/twitter/bootstrap/img/glyphicons-halflings.png
  71. +74 −0 _site/assets/themes/twitter/css/style.css
  72. BIN  _site/fonts/OpenSans-Bold-webfont.eot
  73. +146 −0 _site/fonts/OpenSans-Bold-webfont.svg
  74. BIN  _site/fonts/OpenSans-Bold-webfont.ttf
  75. BIN  _site/fonts/OpenSans-Bold-webfont.woff
  76. BIN  _site/fonts/OpenSans-BoldItalic-webfont.eot
  77. +146 −0 _site/fonts/OpenSans-BoldItalic-webfont.svg
  78. BIN  _site/fonts/OpenSans-BoldItalic-webfont.ttf
  79. BIN  _site/fonts/OpenSans-BoldItalic-webfont.woff
  80. BIN  _site/fonts/OpenSans-Italic-webfont.eot
  81. +146 −0 _site/fonts/OpenSans-Italic-webfont.svg
  82. BIN  _site/fonts/OpenSans-Italic-webfont.ttf
  83. BIN  _site/fonts/OpenSans-Italic-webfont.woff
  84. BIN  _site/fonts/OpenSans-Light-webfont.eot
  85. +146 −0 _site/fonts/OpenSans-Light-webfont.svg
  86. BIN  _site/fonts/OpenSans-Light-webfont.ttf
  87. BIN  _site/fonts/OpenSans-Light-webfont.woff
  88. BIN  _site/fonts/OpenSans-LightItalic-webfont.eot
  89. +146 −0 _site/fonts/OpenSans-LightItalic-webfont.svg
  90. BIN  _site/fonts/OpenSans-LightItalic-webfont.ttf
  91. BIN  _site/fonts/OpenSans-LightItalic-webfont.woff
  92. BIN  _site/fonts/OpenSans-Regular-webfont.eot
  93. +146 −0 _site/fonts/OpenSans-Regular-webfont.svg
  94. BIN  _site/fonts/OpenSans-Regular-webfont.ttf
  95. BIN  _site/fonts/OpenSans-Regular-webfont.woff
  96. BIN  _site/fonts/OpenSans-Semibold-webfont.eot
  97. +146 −0 _site/fonts/OpenSans-Semibold-webfont.svg
  98. BIN  _site/fonts/OpenSans-Semibold-webfont.ttf
  99. BIN  _site/fonts/OpenSans-Semibold-webfont.woff
  100. BIN  _site/fonts/OpenSans-SemiboldItalic-webfont.eot
  101. +146 −0 _site/fonts/OpenSans-SemiboldItalic-webfont.svg
  102. BIN  _site/fonts/OpenSans-SemiboldItalic-webfont.ttf
  103. BIN  _site/fonts/OpenSans-SemiboldItalic-webfont.woff
  104. BIN  _site/images/bullet.png
  105. BIN  _site/images/hr.gif
  106. BIN  _site/images/nav-bg.gif
  107. +121 −0 _site/index.html
  108. +512 −0 _site/lessons/2011/12/29/jekyll-introduction/index.html
  109. +164 −0 _site/pages.html
  110. +121 −0 _site/quickstart.html
  111. +69 −0 _site/stylesheets/pygment_trac.css
  112. +115 −0 _site/stylesheets/styles.css
  113. +686 −0 assets/css/bootstrap-responsive.css
  114. +4,647 −0 assets/css/bootstrap.css
  115. +706 −0 assets/css/bootstrap.min.css
  116. +318 −0 assets/css/docs.css
  117. BIN  assets/img/glyphicons-halflings-white.png
  118. BIN  assets/img/glyphicons-halflings.png
  119. +106 −0 assets/js/README.md
  120. +180 −0 assets/js/application.js
  121. +94 −0 assets/js/bootstrap-alert.js
  122. +100 −0 assets/js/bootstrap-button.js
  123. +157 −0 assets/js/bootstrap-carousel.js
  124. +136 −0 assets/js/bootstrap-collapse.js
  125. +92 −0 assets/js/bootstrap-dropdown.js
  126. +210 −0 assets/js/bootstrap-modal.js
  127. +95 −0 assets/js/bootstrap-popover.js
  128. +125 −0 assets/js/bootstrap-scrollspy.js
  129. +130 −0 assets/js/bootstrap-tab.js
  130. +270 −0 assets/js/bootstrap-tooltip.js
  131. +51 −0 assets/js/bootstrap-transition.js
  132. +271 −0 assets/js/bootstrap-typeahead.js
  133. +2 −0  assets/js/google-code-prettify/lang-apollo.js
  134. +18 −0 assets/js/google-code-prettify/lang-clj.js
  135. +2 −0  assets/js/google-code-prettify/lang-css.js
  136. +1 −0  assets/js/google-code-prettify/lang-go.js
  137. +2 −0  assets/js/google-code-prettify/lang-hs.js
  138. +3 −0  assets/js/google-code-prettify/lang-lisp.js
  139. +2 −0  assets/js/google-code-prettify/lang-lua.js
  140. +2 −0  assets/js/google-code-prettify/lang-ml.js
  141. +4 −0 assets/js/google-code-prettify/lang-n.js
  142. +1 −0  assets/js/google-code-prettify/lang-proto.js
  143. +2 −0  assets/js/google-code-prettify/lang-scala.js
  144. +2 −0  assets/js/google-code-prettify/lang-sql.js
  145. +1 −0  assets/js/google-code-prettify/lang-tex.js
  146. +2 −0  assets/js/google-code-prettify/lang-vb.js
  147. +3 −0  assets/js/google-code-prettify/lang-vhdl.js
  148. +2 −0  assets/js/google-code-prettify/lang-wiki.js
  149. +3 −0  assets/js/google-code-prettify/lang-xq.js
  150. +2 −0  assets/js/google-code-prettify/lang-yaml.js
  151. +1 −0  assets/js/google-code-prettify/prettify.css
  152. +28 −0 assets/js/google-code-prettify/prettify.js
  153. +9,252 −0 assets/js/jquery.js
  154. +632 −0 assets/themes/twitter/bootstrap/css/bootstrap.min.css
  155. BIN  assets/themes/twitter/bootstrap/img/glyphicons-halflings-white.png
  156. BIN  assets/themes/twitter/bootstrap/img/glyphicons-halflings.png
  157. +74 −0 assets/themes/twitter/css/style.css
  158. +0 −73 index.html
  159. +11 −0 index.md
  160. +0 −779 javascripts/respond.js
  161. +12 −0 pages.html
  162. +0 −1  params.json
  163. +13 −0 quickstart.md
  164. +0 −3  stylesheets/ie.css
  165. +0 −459 stylesheets/normalize.css
  166. +68 −69 stylesheets/pygment_trac.css
  167. +72 −808 stylesheets/styles.css
View
127 _config.yml
@@ -0,0 +1,127 @@
+# This is the default format.
+# For more see: https://github.com/mojombo/jekyll/wiki/Permalinks
+permalink: /:categories/:year/:month/:day/:title
+
+exclude: [".rvmrc", ".rbenv-version", "README.md", "Rakefile", "changelog.md"]
+auto: true
+pygments: true
+markdown: maruku
+
+# Themes are encouraged to use these universal variables
+# so be sure to set them if your theme uses them.
+#
+title : Scala Cookbook
+tagline: Tutorial of the Scala Programming Language
+author :
+ name : Taro L. Saito
+ email : leo@xerial.org
+ github : xerial
+ twitter : taroleo
+ feedburner : feedname
+
+# The production_url is only used when full-domain names are needed
+# such as sitemap.txt
+# Most places will/should use BASE_PATH to make the urls
+#
+# If you have set a CNAME (pages.github.com) set your custom domain here.
+# Else if you are pushing to username.github.com, replace with your username.
+# Finally if you are pushing to a GitHub project page, include the project name at the end.
+#
+production_url : http://xerial.org/scala-cookbook
+
+# All Jekyll-Bootstrap specific configurations are namespaced into this hash
+#
+JB :
+ version : 0.2.13
+
+ # All links will be namespaced by BASE_PATH if defined.
+ # Links in your website should always be prefixed with {{BASE_PATH}}
+ # however this value will be dynamically changed depending on your deployment situation.
+ #
+ # CNAME (http://yourcustomdomain.com)
+ # DO NOT SET BASE_PATH
+ # (urls will be prefixed with "/" and work relatively)
+ #
+ # GitHub Pages (http://username.github.com)
+ # DO NOT SET BASE_PATH
+ # (urls will be prefixed with "/" and work relatively)
+ #
+ # GitHub Project Pages (http://username.github.com/project-name)
+ #
+ # A GitHub Project site exists in the `gh-pages` branch of one of your repositories.
+ # REQUIRED! Set BASE_PATH to: http://username.github.com/project-name
+ #
+ # CAUTION:
+ # - When in Localhost, your site will run from root "/" regardless of BASE_PATH
+ # - Only the following values are falsy: ["", null, false]
+ # - When setting BASE_PATH it must be a valid url.
+ # This means always setting the protocol (http|https) or prefixing with "/"
+ BASE_PATH : http://xerial.org/silk
+
+ # By default, the asset_path is automatically defined relative to BASE_PATH plus the enabled theme.
+ # ex: [BASE_PATH]/assets/themes/[THEME-NAME]
+ #
+ # Override this by defining an absolute path to assets here.
+ # ex:
+ # http://s3.amazonaws.com/yoursite/themes/watermelon
+ # assets
+ #
+ ASSET_PATH : /scala-cookbook/assets
+
+ # These paths are to the main pages Jekyll-Bootstrap ships with.
+ # Some JB helpers refer to these paths; change theme here if needed.
+ #
+ archive_path: /archive.html
+ categories_path : /categories.html
+ tags_path : /tags.html
+
+ # Settings for comments helper
+ # Set 'provider' to the comment provider you want to use.
+ # Set 'provider' to false to turn commenting off globally.
+ #
+ comments :
+ provider : disqus
+ disqus :
+ short_name : jekyllbootstrap
+ livefyre :
+ site_id : 123
+ intensedebate :
+ account : 123abc
+ facebook :
+ appid : 123
+ num_posts: 5
+ width: 580
+ colorscheme: light
+
+ # Settings for analytics helper
+ # Set 'provider' to the analytics provider you want to use.
+ # Set 'provider' to false to turn analytics off globally.
+ #
+ analytics :
+ provider : google
+ google :
+ tracking_id : 'UA-59666-12'
+ getclicky :
+ site_id :
+ mixpanel :
+ token : '_MIXPANEL_TOKEN_'
+
+ # Settings for sharing helper.
+ # Sharing is for things like tweet, plusone, like, reddit buttons etc.
+ # Set 'provider' to the sharing provider you want to use.
+ # Set 'provider' to false to turn sharing off globally.
+ #
+ sharing :
+ provider : false
+
+ # Settings for all other include helpers can be defined by creating
+ # a hash with key named for the given helper. ex:
+ #
+ # pages_list :
+ # provider : "custom"
+ #
+ # Setting any helper's provider to 'custom' will bypass the helper code
+ # and include your custom code. Your custom file must be defined at:
+ # ./_includes/custom/[HELPER]
+ # where [HELPER] is the name of the helper you are overriding.
+
View
14 _includes/JB/analytics
@@ -0,0 +1,14 @@
+{% if site.safe and site.JB.analytics.provider and page.JB.analytics != false %}
+
+{% case site.JB.analytics.provider %}
+{% when "google" %}
+ {% include JB/analytics-providers/google %}
+{% when "getclicky" %}
+ {% include JB/analytics-providers/getclicky %}
+{% when "mixpanel" %}
+ {% include JB/analytics-providers/mixpanel %}
+{% when "custom" %}
+ {% include custom/analytics %}
+{% endcase %}
+
+{% endif %}
View
12 _includes/JB/analytics-providers/getclicky
@@ -0,0 +1,12 @@
+<script type="text/javascript">
+var clicky_site_ids = clicky_site_ids || [];
+clicky_site_ids.push({{ site.JB.analytics.getclicky.site_id }});
+(function() {
+ var s = document.createElement('script');
+ s.type = 'text/javascript';
+ s.async = true;
+ s.src = '//static.getclicky.com/js';
+ ( document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0] ).appendChild( s );
+})();
+</script>
+<noscript><p><img alt="Clicky" width="1" height="1" src="//in.getclicky.com/{{ site.JB.analytics.getclicky.site_id }}ns.gif" /></p></noscript>
View
11 _includes/JB/analytics-providers/google
@@ -0,0 +1,11 @@
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', '{{ site.JB.analytics.google.tracking_id }}']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
View
11 _includes/JB/analytics-providers/mixpanel
@@ -0,0 +1,11 @@
+<script type="text/javascript">
+ var mpq = [];
+ mpq.push(["init", "{{ site.JB.analytics.mixpanel.token}}"]);
+ (function(){var b,a,e,d,c;b=document.createElement("script");b.type="text/javascript";
+ b.async=true;b.src=(document.location.protocol==="https:"?"https:":"http:")+
+ "//api.mixpanel.com/site_media/js/api/mixpanel.js";a=document.getElementsByTagName("script")[0];
+ a.parentNode.insertBefore(b,a);e=function(f){return function(){mpq.push(
+ [f].concat(Array.prototype.slice.call(arguments,0)))}};d=["init","track","track_links",
+ "track_forms","register","register_once","identify","name_tag","set_config"];for(c=0;c<
+ d.length;c++){mpq[d[c]]=e(d[c])}})();
+</script>
View
37 _includes/JB/categories_list
@@ -0,0 +1,37 @@
+{% comment %}<!--
+The categories_list include is a listing helper for categories.
+Usage:
+ 1) assign the 'categories_list' variable to a valid array of tags.
+ 2) include JB/categories_list
+ example:
+ <ul>
+ {% assign categories_list = site.categories %}
+ {% include JB/categories_list %}
+ </ul>
+
+ Notes:
+ Categories can be either a Hash of Category objects (hashes) or an Array of category-names (strings).
+ The encapsulating 'if' statement checks whether categories_list is a Hash or Array.
+ site.categories is a Hash while page.categories is an array.
+
+ This helper can be seen in use at: ../_layouts/default.html
+-->{% endcomment %}
+
+{% if site.JB.categories_list.provider == "custom" %}
+ {% include custom/categories_list %}
+{% else %}
+ {% if categories_list.first[0] == null %}
+ {% for category in categories_list %}
+ <li><a href="{{ BASE_PATH }}{{ site.JB.categories_path }}#{{ category }}-ref">
+ {{ category | join: "/" }} <span>{{ site.categories[category].size }}</span>
+ </a></li>
+ {% endfor %}
+ {% else %}
+ {% for category in categories_list %}
+ <li><a href="{{ BASE_PATH }}{{ site.JB.categories_path }}#{{ category[0] }}-ref">
+ {{ category[0] | join: "/" }} <span>{{ category[1].size }}</span>
+ </a></li>
+ {% endfor %}
+ {% endif %}
+{% endif %}
+{% assign categories_list = nil %}
View
16 _includes/JB/comments
@@ -0,0 +1,16 @@
+{% if site.JB.comments.provider and page.comments != false %}
+
+{% case site.JB.comments.provider %}
+{% when "disqus" %}
+ {% include JB/comments-providers/disqus %}
+{% when "livefyre" %}
+ {% include JB/comments-providers/livefyre %}
+{% when "intensedebate" %}
+ {% include JB/comments-providers/intensedebate %}
+{% when "facebook" %}
+ {% include JB/comments-providers/facebook %}
+{% when "custom" %}
+ {% include custom/comments %}
+{% endcase %}
+
+{% endif %}
View
14 _includes/JB/comments-providers/disqus
@@ -0,0 +1,14 @@
+<div id="disqus_thread"></div>
+<script type="text/javascript">
+ {% if site.safe == false %}var disqus_developer = 1;{% endif %}
+ var disqus_shortname = '{{ site.JB.comments.disqus.short_name }}'; // required: replace example with your forum shortname
+ {% if page.wordpress_id %}var disqus_identifier = '{{page.wordpress_id}} {{site.production_url}}/?p={{page.wordpress_id}}';{% endif %}
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
View
9 _includes/JB/comments-providers/facebook
@@ -0,0 +1,9 @@
+<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#xfbml=1&appId={{ site.JB.comments.facebook.appid }}";
+ fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<div class="fb-comments" data-href="{{ site.production_url }}" data-num-posts="{{ site.JB.comments.facebook.num_posts }}" data-width="{{ site.JB.comments.facebook.width }}" data-colorscheme="{{ site.JB.comments.facebook.colorscheme }}"></div>
View
6 _includes/JB/comments-providers/intensedebate
@@ -0,0 +1,6 @@
+<script>
+var idcomments_acct = '{{ site.JB.comments.intensedebate.account }}';
+var idcomments_post_id;
+var idcomments_post_url;
+</script>
+<script type="text/javascript" src="http://www.intensedebate.com/js/genericLinkWrapperV2.js"></script>
View
6 _includes/JB/comments-providers/livefyre
@@ -0,0 +1,6 @@
+<script type='text/javascript' src='http://zor.livefyre.com/wjs/v1.0/javascripts/livefyre_init.js'></script>
+<script type='text/javascript'>
+ var fyre = LF({
+ site_id: {{ site.JB.comments.livefyre.site_id }}
+ });
+</script>
View
32 _includes/JB/liquid_raw
@@ -0,0 +1,32 @@
+{% comment%}<!--
+The liquid_raw helper is a way to display raw liquid code, as opposed to parsing it.
+Normally you'd use Liquid's built in 'raw' tag.
+The problem is GitHub Jekyll does not support the current Liquid release.
+GitHub Jekyll supports the deprecated 'literal' tag.
+Using one will break the other if you plan to deploy to GitHub pages.
+ see: https://github.com/mojombo/jekyll/issues/425
+
+Since I don't want to mess with Liquid versions, I'll just rewrite the way I
+intend to give liquid examples. It's not an elegant by any means:
+
+Usage:
+ 1) Define a 'text' variable with the block of liquid code you intend to display.
+ 2) Pass the text variable to include JB/liquid_raw
+
+ example:
+ {% capture text %}|.% for tag in tags_list %.|
+ <li><a href="|.{ site.var.tags_path }.||.{ tag[0] }.|-ref">|.{ tag[0] }.| <span>|.{tag[1].size}.|</span></a></li>
+ |.% endfor %.|
+
+ |.% assign tags_list = null %.|{% endcapture %}
+ {% include JB/liquid_raw %}
+
+ As seen here, you must use "|." and ".|" as opening and closing brackets.
+-->{% endcomment%}
+
+{% if site.JB.liquid_raw.provider == "custom" %}
+ {% include custom/liquid_raw %}
+{% else %}
+ <pre><code>{{text | replace:"|.", "&#123;" | replace:".|", "&#125;" | replace:">", "&gt;" | replace:"<", "&lt;" }}</code></pre>
+{% endif %}
+{% assign text = nil %}
View
39 _includes/JB/pages_list
@@ -0,0 +1,39 @@
+{% comment %}<!--
+The pages_list include is a listing helper.
+Usage:
+ 1) assign the 'pages_list' variable to a valid array of pages or posts.
+ 2) include JB/pages_list
+ example:
+ <ul>
+ {% assign pages_list = site.pages %}
+ {% include JB/pages_list %}
+ </ul>
+
+ Grouping: (optional):
+ assign the 'group' variable to constrain the list to only pages/posts
+ in the given group. Note you must define the group manually in the page/post
+ meta-data to use this feature.
+ Grouping is mainly helpful for non-post pages.
+ If you want to group posts, it's easier/better to tag them, then pass the tagged posts array.
+ i.e. site.tags.cool_tag (this returns an array of posts tagged: cool_tag)
+
+ This helper can be seen in use at: ../_layouts/default.html
+-->{% endcomment %}
+
+{% if site.JB.pages_list.provider == "custom" %}
+ {% include custom/pages_list %}
+{% else %}
+ {% for node in pages_list %}
+ {% if node.title != null %}
+ {% if group == null or group == node.group %}
+ {% if page.url == node.url %}
+ <li class="active"><a href="{{ BASE_PATH }}{{node.url}}" class="active">{{node.title}}</a></li>
+ {% else %}
+ <li><a href="{{ BASE_PATH }}{{node.url}}">{{node.title}}</a></li>
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+{% endif %}
+{% assign pages_list = nil %}
+{% assign group = nil %}
View
55 _includes/JB/posts_collate
@@ -0,0 +1,55 @@
+{% comment %}<!--
+Collate_posts helper. Collated posts by year and month.
+Usage:
+ 1) assign the 'posts_collate' variable to a valid array of posts.
+ 2) include JB/posts_collate
+ example:
+ {% assign posts_collate = site.posts %}
+ {% include JB/posts_collate %}
+
+ Ordering:
+ Posts are displayed in reverse chronological order.
+ For normal chronological order:
+ 1) Change the for loop to this:
+ => 'for post in site.posts reversed'
+ 2) Next make sure to change 'post.previous.date' to:
+ => 'post.next.date'
+
+-->{% endcomment %}
+
+{% if site.JB.posts_collate.provider == "custom" %}
+ {% include custom/posts_collate %}
+{% else %}
+ {% for post in posts_collate %}
+ {% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
+ {% capture this_month %}{{ post.date | date: "%B" }}{% endcapture %}
+ {% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %}
+ {% capture next_month %}{{ post.previous.date | date: "%B" }}{% endcapture %}
+
+ {% if forloop.first %}
+ <h2>{{this_year}}</h2>
+ <h3>{{this_month}}</h3>
+ <ul>
+ {% endif %}
+
+ <li><span>{{ post.date | date: "%B %e, %Y" }}</span> &raquo; <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></li>
+
+ {% if forloop.last %}
+ </ul>
+ {% else %}
+ {% if this_year != next_year %}
+ </ul>
+ <h2>{{next_year}}</h2>
+ <h3>{{next_month}}</h3>
+ <ul>
+ {% else %}
+ {% if this_month != next_month %}
+ </ul>
+ <h3>{{next_month}}</h3>
+ <ul>
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+{% endif %}
+{% assign posts_collate = nil %}
View
22 _includes/JB/setup
@@ -0,0 +1,22 @@
+{% capture jbcache %}
+ <!--
+ - Dynamically set liquid variables for working with URLs/paths
+ -->
+ {% if site.JB.setup.provider == "custom" %}
+ {% include custom/setup %}
+ {% else %}
+ {% if site.safe and site.JB.BASE_PATH and site.JB.BASE_PATH != '' %}
+ {% assign BASE_PATH = site.JB.BASE_PATH %}
+ {% assign HOME_PATH = site.JB.BASE_PATH %}
+ {% else %}
+ {% assign BASE_PATH = nil %}
+ {% assign HOME_PATH = "/" %}
+ {% endif %}
+
+ {% if site.JB.ASSET_PATH %}
+ {% assign ASSET_PATH = site.JB.ASSET_PATH %}
+ {% else %}
+ {% capture ASSET_PATH %}{{ BASE_PATH }}/assets/themes/{{ page.theme.name }}{% endcapture %}
+ {% endif %}
+ {% endif %}
+{% endcapture %}{% assign jbcache = nil %}
View
8 _includes/JB/sharing
@@ -0,0 +1,8 @@
+{% if site.safe and site.JB.sharing.provider and page.JB.sharing != false %}
+
+{% case site.JB.sharing.provider %}
+{% when "custom" %}
+ {% include custom/sharing %}
+{% endcase %}
+
+{% endif %}
View
33 _includes/JB/tags_list
@@ -0,0 +1,33 @@
+{% comment %}<!--
+The tags_list include is a listing helper for tags.
+Usage:
+ 1) assign the 'tags_list' variable to a valid array of tags.
+ 2) include JB/tags_list
+ example:
+ <ul>
+ {% assign tags_list = site.tags %}
+ {% include JB/tags_list %}
+ </ul>
+
+ Notes:
+ Tags can be either a Hash of tag objects (hashes) or an Array of tag-names (strings).
+ The encapsulating 'if' statement checks whether tags_list is a Hash or Array.
+ site.tags is a Hash while page.tags is an array.
+
+ This helper can be seen in use at: ../_layouts/default.html
+-->{% endcomment %}
+
+{% if site.JB.tags_list.provider == "custom" %}
+ {% include custom/tags_list %}
+{% else %}
+ {% if tags_list.first[0] == null %}
+ {% for tag in tags_list %}
+ <li><a href="{{ BASE_PATH }}{{ site.JB.tags_path }}#{{ tag }}-ref">{{ tag }} <span>{{ site.tags[tag].size }}</span></a></li>
+ {% endfor %}
+ {% else %}
+ {% for tag in tags_list %}
+ <li><a href="{{ BASE_PATH }}{{ site.JB.tags_path }}#{{ tag[0] }}-ref">{{ tag[0] }} <span>{{ tag[1].size }}</span></a></li>
+ {% endfor %}
+ {% endif %}
+{% endif %}
+{% assign tags_list = nil %}
View
11 _includes/sidenav.html
@@ -0,0 +1,11 @@
+
+<div class="well sidebar-nav">
+<ul class="nav nav-list">
+ <li class="nav-header">Lessons</li>
+ <li><a href="{{ BASE_PATH }}/quickstart.html">Quick Start</a></li>
+ <li class="divider"></li>
+ <li class="nav-header">For Developers</li>
+ <li><a href="{{ BASE_PATH }}/development.html">Development Note</a></li>
+
+</ul>
+</div>
View
108 _includes/themes/twitter/default.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>{{ page.title }} | Silk Weaver</title>
+ {% if page.description %}<meta name="description" content="{{ page.description }}">{% endif %}
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="">
+ <meta name="author" content="{{ site.author.name }}">
+
+ <!-- Le styles -->
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ padding-bottom: 40px;
+ }
+ .sidebar-nav {
+ padding: 9px 0;
+ }
+ </style>
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="{{ BASE_PATH }}/assets/css/bootstrap.css" rel="stylesheet">
+ <link href="{{ BASE_PATH }}/assets/css/bootstrap-responsive.css" rel="stylesheet">
+ <link href="{{ BASE_PATH }}/assets/css/docs.css" rel="stylesheet">
+ <link href="{{ BASE_PATH }}/assets/js/google-code-prettify/prettify.css" type="text/css" rel="stylesheet" />
+
+
+ <link rel="stylesheet" href="{{ BASE_PATH }}/stylesheets/styles.css">
+<!--
+ <link rel="stylesheet" href="{{ BASE_PATH }}/stylesheets/pygment_trac.css">
+-->
+
+ <!-- Le fav and touch icons -->
+ <!-- Update these with your own images
+ <link rel="shortcut icon" href="images/favicon.ico">
+ <link rel="apple-touch-icon" href="images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
+ -->
+ </head>
+
+ <body>
+
+ <div class="navbar navbar-fixed-top">
+ <div class="navbar-inner">
+ <div class="container-fluid">
+ <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </a>
+ <a class="brand" href="{{ HOME_PATH }}">{{ site.title }}</a>
+ <div class="nav-collapse">
+ <ul class="nav">
+<!-- <li><a><i class="icon-book icon-white"></i> Lessons </a></li>-->
+ <li><a href="{{ BASE_PATH }}/pages.html"><i class="icon-th-list icon-white"></i> Pages </a></li>
+<!-- <li><a><i class="icon-arrow-down icon-white"></i> Download</a></li>-->
+ <li><a href="http://github.com/xerial/scala-cookbook"><i class="icon-leaf icon-white"></i> GitHub</a></li>
+ <li><a><i class="icon-user icon-white"></i> About</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="row">
+ <div class="span3">
+ {% include sidenav.html %}
+ </div>
+ <div class="span9">
+ {{ content }}
+ </div>
+ </div>
+
+
+ <footer>
+ <p>This site is maintained by <a href="http://www.xerial.org/leo">Taro L. Saito</a> (Twitter <a href="http://twitter.com/#!/taroleo">@taroleo</a>) </p>
+ </footer>
+ </div>
+
+ <!-- Le javascript
+ ================================================== -->
+ <!-- Placed at the end of the document so the pages load faster -->
+ <script src="{{ BASE_PATH}}/assets/js/jquery.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-transition.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-alert.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-modal.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-dropdown.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-scrollspy.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-tab.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-tooltip.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-popover.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-button.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-collapse.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-carousel.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/bootstrap-typeahead.js"></script>
+ <script src="{{ BASE_PATH}}/assets/js/google-code-prettify/prettify.js"></script>
+ <script>$(function () { prettyPrint() })</script>
+ {% include JB/analytics %}
+ </body>
+</html>
View
5 _includes/themes/twitter/page.html
@@ -0,0 +1,5 @@
+<div class="page-header">
+ <h3>{{ page.title }} {% if page.tagline %} <small>{{ page.tagline }}</small>{% endif %}</h3>
+</div>
+
+{{ content }}
View
40 _includes/themes/twitter/post.html
@@ -0,0 +1,40 @@
+<div class="page-header">
+ <h1>{{ page.title }} <small>Supporting tagline</small></h1>
+</div>
+
+<div class="row">
+ <div class="span8">
+ {{ content }}
+ <hr>
+ <div class="pagination">
+ <ul>
+ {% if page.previous %}
+ <li class="prev"><a href="{{ BASE_PATH }}{{ page.previous.url }}" title="{{ page.previous.title }}">&larr; Previous</a></li>
+ {% else %}
+ <li class="prev disabled"><a>&larr; Previous</a></li>
+ {% endif %}
+ <li><a href="{{ BASE_PATH }}{{ site.JB.archive_path }}">Archive</a></li>
+ {% if page.next %}
+ <li class="next"><a href="{{ BASE_PATH }}{{ page.next.url }}" title="{{ page.next.title }}">Next &rarr;</a></li>
+ {% else %}
+ <li class="next disabled"><a>Next &rarr;</a>
+ {% endif %}
+ </ul>
+ </div>
+ <hr>
+ {% include JB/comments %}
+ </div>
+
+ <div class="span4">
+ <h4>Published</h4>
+ <div class="date"><span>{{ page.date | date_to_long_string }}</span></div>
+
+ {% unless page.tags == empty %}
+ <h4>Tags</h4>
+ <ul class="tag_box">
+ {% assign tags_list = page.tags %}
+ {% include JB/tags_list %}
+ </ul>
+ {% endunless %}
+ </div>
+</div>
View
2  _includes/themes/twitter/settings.yml
@@ -0,0 +1,2 @@
+theme :
+ name : twitter
View
6 _layouts/default.html
@@ -0,0 +1,6 @@
+---
+theme :
+ name : twitter
+---
+{% include JB/setup %}
+{% include themes/twitter/default.html %}
View
5 _layouts/page.html
@@ -0,0 +1,5 @@
+---
+layout: default
+---
+{% include JB/setup %}
+{% include themes/twitter/page.html %}
View
5 _layouts/post.html
@@ -0,0 +1,5 @@
+---
+layout: default
+---
+{% include JB/setup %}
+{% include themes/twitter/post.html %}
View
38 _plugins/debug.rb
@@ -0,0 +1,38 @@
+# A simple way to inspect liquid template variables.
+# Usage:
+# Can be used anywhere liquid syntax is parsed (templates, includes, posts/pages)
+# {{ site | debug }}
+# {{ site.posts | debug }}
+#
+require 'pp'
+module Jekyll
+ # Need to overwrite the inspect method here because the original
+ # uses < > to encapsulate the psuedo post/page objects in which case
+ # the output is taken for HTML tags and hidden from view.
+ #
+ class Post
+ def inspect
+ "#Jekyll:Post @id=#{self.id.inspect}"
+ end
+ end
+
+ class Page
+ def inspect
+ "#Jekyll:Page @name=#{self.name.inspect}"
+ end
+ end
+
+end # Jekyll
+
+module Jekyll
+ module DebugFilter
+
+ def debug(obj, stdout=false)
+ puts obj.pretty_inspect if stdout
+ "<pre>#{obj.class}\n#{obj.pretty_inspect}</pre>"
+ end
+
+ end # DebugFilter
+end # Jekyll
+
+Liquid::Template.register_filter(Jekyll::DebugFilter)
View
411 _posts/core-samples/2011-12-29-jekyll-introduction.md
@@ -0,0 +1,411 @@
+---
+layout: post
+category : lessons
+tags : [intro, beginner, jekyll, tutorial]
+---
+{% include JB/setup %}
+
+This Jekyll introduction will outline specifically what Jekyll is and why you would want to use it.
+Directly following the intro we'll learn exactly _how_ Jekyll does what it does.
+
+## Overview
+
+### What is Jekyll?
+
+Jekyll is a parsing engine bundled as a ruby gem used to build static websites from
+dynamic components such as templates, partials, liquid code, markdown, etc. Jekyll is known as "a simple, blog aware, static site generator".
+
+### Examples
+
+This website is created with Jekyll. [Other Jekyll websites](https://github.com/mojombo/jekyll/wiki/Sites).
+
+
+
+### What does Jekyll Do?
+
+Jekyll is a ruby gem you install on your local system.
+Once there you can call `jekyll --server` on a directory and provided that directory
+is setup in a way jekyll expects, it will do magic stuff like parse markdown/textile files,
+compute categories, tags, permalinks, and construct your pages from layout templates and partials.
+
+Once parsed, Jekyll stores the result in a self-contained static `_site` folder.
+The intention here is that you can serve all contents in this folder statically from a plain static web-server.
+
+You can think of Jekyll as a normalish dynamic blog but rather than parsing content, templates, and tags
+on each request, Jekyll does this once _beforehand_ and caches the _entire website_ in a folder for serving statically.
+
+### Jekyll is Not Blogging Software
+
+**Jekyll is a parsing engine.**
+
+Jekyll does not come with any content nor does it have any templates or design elements.
+This is a common source of confusion when getting started.
+Jekyll does not come with anything you actually use or see on your website - you have to make it.
+
+### Why Should I Care?
+
+Jekyll is very minimalistic and very efficient.
+The most important thing to realize about Jekyll is that it creates a static representation of your website requiring only a static web-server.
+Traditional dynamic blogs like Wordpress require a database and server-side code.
+Heavily trafficked dynamic blogs must employ a caching layer that ultimately performs the same job Jekyll sets out to do; serve static content.
+
+Therefore if you like to keep things simple and you prefer the command-line over an admin panel UI then give Jekyll a try.
+
+**Developers like Jekyll because we can write content like we write code:**
+
+- Ability to write content in markdown or textile in your favorite text-editor.
+- Ability to write and preview your content via localhost.
+- No internet connection required.
+- Ability to publish via git.
+- Ability to host your blog on a static web-server.
+- Ability to host freely on GitHub Pages.
+- No database required.
+
+# How Jekyll Works
+
+The following is a complete but concise outline of exactly how Jekyll works.
+
+Be aware that core concepts are introduced in rapid succession without code examples.
+This information is not intended to specifically teach you how to do anything, rather it
+is intended to give you the _full picture_ relative to what is going on in Jekyll-world.
+
+Learning these core concepts should help you avoid common frustrations and ultimately
+help you better understand the code examples contained throughout Jekyll-Bootstrap.
+
+
+## Initial Setup
+
+After [installing jekyll](/index.html#start-now) you'll need to format your website directory in a way jekyll expects.
+Jekyll-bootstrap conveniently provides the base directory format.
+
+### The Jekyll Application Base Format
+
+Jekyll expects your website directory to be laid out like so:
+
+ .
+ |-- _config.yml
+ |-- _includes
+ |-- _layouts
+ | |-- default.html
+ | |-- post.html
+ |-- _posts
+ | |-- 20011-10-25-open-source-is-good.markdown
+ | |-- 20011-04-26-hello-world.markdown
+ |-- _site
+ |-- index.html
+ |-- assets
+ |-- css
+ |-- style.css
+ |-- javascripts
+
+
+- **\_config.yml**
+ Stores configuration data.
+
+- **\_includes**
+ This folder is for partial views.
+
+- **\_layouts**
+ This folder is for the main templates your content will be inserted into.
+ You can have different layouts for different pages or page sections.
+
+- **\_posts**
+ This folder contains your dynamic content/posts.
+ the naming format is required to be `@YEAR-MONTH-DATE-title.MARKUP@`.
+
+- **\_site**
+ This is where the generated site will be placed once Jekyll is done transforming it.
+
+- **assets**
+ This folder is not part of the standard jekyll structure.
+ The assets folder represents _any generic_ folder you happen to create in your root directory.
+ Directories and files not properly formatted for jekyll will be left untouched for you to serve normally.
+
+(read more: <https://github.com/mojombo/jekyll/wiki/Usage>)
+
+
+### Jekyll Configuration
+
+Jekyll supports various configuration options that are fully outlined here:
+<https://github.com/mojombo/jekyll/wiki/Configuration>
+
+
+
+
+## Content in Jekyll
+
+Content in Jekyll is either a post or a page.
+These content "objects" get inserted into one or more templates to build the final output for its respective static-page.
+
+### Posts and Pages
+
+Both posts and pages should be written in markdown, textile, or HTML and may also contain Liquid templating syntax.
+Both posts and pages can have meta-data assigned on a per-page basis such as title, url path, as well as arbitrary custom meta-data.
+
+### Working With Posts
+
+**Creating a Post**
+Posts are created by properly formatting a file and placing it the `_posts` folder.
+
+**Formatting**
+A post must have a valid filename in the form `YEAR-MONTH-DATE-title.MARKUP` and be placed in the `_posts` directory.
+If the data format is invalid Jekyll will not recognize the file as a post. The date and title are automatically parsed from the filename of the post file.
+Additionally, each file must have [YAML Front-Matter](https://github.com/mojombo/jekyll/wiki/YAML-Front-Matter) prepended to its content.
+YAML Front-Matter is a valid YAML syntax specifying meta-data for the given file.
+
+**Order**
+Ordering is an important part of Jekyll but it is hard to specify a custom ordering strategy.
+Only reverse chronological and chronological ordering is supported in Jekyll.
+
+Since the date is hard-coded into the filename format, to change the order, you must change the dates in the filenames.
+
+**Tags**
+Posts can have tags associated with them as part of their meta-data.
+Tags may be placed on posts by providing them in the post's YAML front matter.
+You have access to the post-specific tags in the templates. These tags also get added to the sitewide collection.
+
+**Categories**
+Posts may be categorized by providing one or more categories in the YAML front matter.
+Categories offer more significance over tags in that they can be reflected in the URL path to the given post.
+Note categories in Jekyll work in a specific way.
+If you define more than one category you are defining a category hierarchy "set".
+Example:
+
+ ---
+ title : Hello World
+ categories : [lessons, beginner]
+ ---
+
+This defines the category hierarchy "lessons/beginner". Note this is _one category_ node in Jekyll.
+You won't find "lessons" and "beginner" as two separate categories unless you define them elsewhere as singular categories.
+
+### Working With Pages
+
+**Creating a Page**
+Pages are created by properly formatting a file and placing it anywhere in the root directory or subdirectories that do _not_ start with an underscore.
+
+**Formatting**
+In order to register as a Jekyll page the file must contain [YAML Front-Matter](https://github.com/mojombo/jekyll/wiki/YAML-Front-Matter).
+Registering a page means 1) that Jekyll will process the page and 2) that the page object will be available in the `site.pages` array for inclusion into your templates.
+
+**Categories and Tags**
+Pages do not compute categories nor tags so defining them will have no effect.
+
+**Sub-Directories**
+If pages are defined in sub-directories, the path to the page will be reflected in the url.
+Example:
+
+ .
+ |-- people
+ |-- bob
+ |-- essay.html
+
+This page will be available at `http://yourdomain.com/people/bob/essay.html`
+
+
+**Recommended Pages**
+
+- **index.html**
+ You will always want to define the root index.html page as this will display on your root URL.
+- **404.html**
+ Create a root 404.html page and GitHub Pages will serve it as your 404 response.
+- **sitemap.html**
+ Generating a sitemap is good practice for SEO.
+- **about.html**
+ A nice about page is easy to do and gives the human perspective to your website.
+
+
+## Templates in Jekyll
+
+Templates are used to contain a page's or post's content.
+All templates have access to a global site object variable: `site` as well as a page object variable: `page`.
+The site variable holds all accessible content and metadata relative to the site.
+The page variable holds accessible data for the given page or post being rendered at that point.
+
+**Create a Template**
+Templates are created by properly formatting a file and placing it in the `_layouts` directory.
+
+**Formatting**
+Templates should be coded in HTML and contain YAML Front Matter.
+All templates can contain Liquid code to work with your site's data.
+
+**Rending Page/Post Content in a Template**
+There is a special variable in all templates named : `content`.
+The `content` variable holds the page/post content including any sub-template content previously defined.
+Render the content variable wherever you want your main content to be injected into your template:
+
+{% capture text %}...
+<body>
+ <div id="sidebar"> ... </div>
+ <div id="main">
+ |.{content}.|
+ </div>
+</body>
+...{% endcapture %}
+{% include JB/liquid_raw %}
+
+### Sub-Templates
+
+Sub-templates are exactly templates with the only difference being they
+define another "root" layout/template within their YAML Front Matter.
+This essentially means a template will render inside of another template.
+
+### Includes
+In Jekyll you can define include files by placing them in the `_includes` folder.
+Includes are NOT templates, rather they are just code snippets that get included into templates.
+In this way, you can treat the code inside includes as if it was native to the parent template.
+
+Any valid template code may be used in includes.
+
+
+## Using Liquid for Templating
+
+Templating is perhaps the most confusing and frustrating part of Jekyll.
+This is mainly due to the fact that Jekyll templates must use the Liquid Templating Language.
+
+### What is Liquid?
+
+[Liquid](https://github.com/Shopify/liquid) is a secure templating language developed by [Shopify](http://shopify.com).
+Liquid is designed for end-users to be able to execute logic within template files
+without imposing any security risk on the hosting server.
+
+Jekyll uses Liquid to generate the post content within the final page layout structure and as the primary interface for working with
+your site and post/page data.
+
+### Why Do We Have to Use Liquid?
+
+GitHub uses Jekyll to power [GitHub Pages](http://pages.github.com/).
+GitHub cannot afford to run arbitrary code on their servers so they lock developers down via Liquid.
+
+### Liquid is Not Programmer-Friendly.
+
+The short story is liquid is not real code and its not intended to execute real code.
+The point being you can't do jackshit in liquid that hasn't been allowed explicitly by the implementation.
+What's more you can only access data-structures that have been explicitly passed to the template.
+
+In Jekyll's case it is not possible to alter what is passed to Liquid without hacking the gem or running custom plugins.
+Both of which cannot be supported by GitHub Pages.
+
+As a programmer - this is very frustrating.
+
+But rather than look a gift horse in the mouth we are going to
+suck it up and view it as an opportunity to work around limitations and adopt client-side solutions when possible.
+
+**Aside**
+My personal stance is to not invest time trying to hack liquid. It's really unnecessary
+_from a programmer's_ perspective. That is to say if you have the ability to run custom plugins (i.e. run arbitrary ruby code)
+you are better off sticking with ruby. Toward that end I've built [Mustache-with-Jekyll](http://github.com/plusjade/mustache-with-jekyll)
+
+
+## Static Assets
+
+Static assets are any file in the root or non-underscored subfolders that are not pages.
+That is they have no valid YAML Front Matter and are thus not treated as Jekyll Pages.
+
+Static assets should be used for images, css, and javascript files.
+
+
+
+
+## How Jekyll Parses Files
+
+Remember Jekyll is a processing engine. There are two main types of parsing in Jekyll.
+
+- **Content parsing.**
+ This is done with textile or markdown.
+- **Template parsing.**
+ This is done with the liquid templating language.
+
+And thus there are two main types of file formats needed for this parsing.
+
+- **Post and Page files.**
+ All content in Jekyll is either a post or a page so valid posts and pages are parsed with markdown or textile.
+- **Template files.**
+ These files go in `_layouts` folder and contain your blogs **templates**. They should be made in HTML with the help of Liquid syntax.
+ Since include files are simply injected into templates they are essentially parsed as if they were native to the template.
+
+**Arbitrary files and folders.**
+Files that _are not_ valid pages are treated as static content and pass through
+Jekyll untouched and reside on your blog in the exact structure and format they originally existed in.
+
+### Formatting Files for Parsing.
+
+We've outlined the need for valid formatting using **YAML Front Matter**.
+Templates, posts, and pages all need to provide valid YAML Front Matter even if the Matter is empty.
+This is the only way Jekyll knows you want the file processed.
+
+YAML Front Matter must be prepended to the top of template/post/page files:
+
+ ---
+ layout: post
+ category : pages
+ tags : [how-to, jekyll]
+ ---
+
+ ... contents ...
+
+Three hyphens on a new line start the Front-Matter block and three hyphens on a new line end the block.
+The data inside the block must be valid YAML.
+
+Configuration parameters for YAML Front-Matter is outlined here:
+[A comprehensive explanation of YAML Front Matter](https://github.com/mojombo/jekyll/wiki/YAML-Front-Matter)
+
+#### Defining Layouts for Posts and Templates Parsing.
+
+The `layout` parameter in the YAML Front Matter defines the template file for which the given post or template should be injected into.
+If a template file specifies its own layout, it is effectively being used as a `sub-template.`
+That is to say loading a post file into a template file that refers to another template file with work in the way you'd expect; as a nested sub-template.
+
+
+
+
+
+## How Jekyll Generates the Final Static Files.
+
+Ultimately, Jekyll's job is to generate a static representation of your website.
+The following is an outline of how that's done:
+
+1. **Jekyll collects data.**
+ Jekyll scans the posts directory and collects all posts files as post objects. It then scans the layout assets and collects those and finally scans other directories in search of pages.
+
+2. **Jekyll computes data.**
+ Jekyll takes these objects, computes metadata (permalinks, tags, categories, titles, dates) from them and constructs one
+ big `site` object that holds all the posts, pages, layouts, and respective metadata.
+ At this stage your site is one big computed ruby object.
+
+3. **Jekyll liquifies posts and templates.**
+ Next jekyll loops through each post file and converts (through markdown or textile) and **liquifies** the post inside of its respective layout(s).
+ Once the post is parsed and liquified inside the the proper layout structure, the layout itself is "liquified".
+ **Liquification** is defined as follows: Jekyll initiates a Liquid template, and passes a simpler hash representation of the ruby site object as well as a simpler
+ hash representation of the ruby post object. These simplified data structures are what you have access to in the templates.
+
+3. **Jekyll generates output.**
+ Finally the liquid templates are "rendered", thereby processing any liquid syntax provided in the templates
+ and saving the final, static representation of the file.
+
+**Notes.**
+Because Jekyll computes the entire site in one fell swoop, each template is given access to
+a global `site` hash that contains useful data. It is this data that you'll iterate through and format
+using the Liquid tags and filters in order to render it onto a given page.
+
+Remember, in Jekyll you are an end-user. Your API has only two components:
+
+1. The manner in which you setup your directory.
+2. The liquid syntax and variables passed into the liquid templates.
+
+All the data objects available to you in the templates via Liquid are outlined in the **API Section** of Jekyll-Bootstrap.
+You can also read the original documentation here: <https://github.com/mojombo/jekyll/wiki/Template-Data>
+
+## Conclusion
+
+I hope this paints a clearer picture of what Jekyll is doing and why it works the way it does.
+As noted, our main programming constraint is the fact that our API is limited to what is accessible via Liquid and Liquid only.
+
+Jekyll-bootstrap is intended to provide helper methods and strategies aimed at making it more intuitive and easier to work with Jekyll =)
+
+**Thank you** for reading this far.
+
+## Next Steps
+
+Please take a look at [{{ site.categories.api.first.title }}]({{ BASE_PATH }}{{ site.categories.api.first.url }})
+or jump right into [Usage]({{ BASE_PATH }}{{ site.categories.usage.first.url }}) if you'd like.
View
686 _site/assets/css/bootstrap-responsive.css
@@ -0,0 +1,686 @@
+/*!
+ * Bootstrap Responsive v2.0.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix {
+ *zoom: 1;
+}
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ content: "";
+}
+.clearfix:after {
+ clear: both;
+}
+.hide-text {
+ overflow: hidden;
+ text-indent: 100%;
+ white-space: nowrap;
+}
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: 28px;
+ /* Make inputs at least the height of their button counterpart */
+
+ /* Makes inputs behave like true block-level elements */
+
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+.visible-phone {
+ display: none;
+}
+.visible-tablet {
+ display: none;
+}
+.visible-desktop {
+ display: block;
+}
+.hidden-phone {
+ display: block;
+}
+.hidden-tablet {
+ display: block;
+}
+.hidden-desktop {
+ display: none;
+}
+@media (max-width: 767px) {
+ .visible-phone {
+ display: block;
+ }
+ .hidden-phone {
+ display: none;
+ }
+ .hidden-desktop {
+ display: block;
+ }
+ .visible-desktop {
+ display: none;
+ }
+}
+@media (min-width: 768px) and (max-width: 979px) {
+ .visible-tablet {
+ display: block;
+ }
+ .hidden-tablet {
+ display: none;
+ }
+ .hidden-desktop {
+ display: block;
+ }
+ .visible-desktop {
+ display: none;
+ }
+}
+@media (max-width: 480px) {
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0);
+ }
+ .page-header h1 small {
+ display: block;
+ line-height: 18px;
+ }
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+ .form-horizontal .control-group > label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ .form-horizontal .controls {
+ margin-left: 0;
+ }
+ .form-horizontal .control-list {
+ padding-top: 0;
+ }
+ .form-horizontal .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ .modal {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ width: auto;
+ margin: 0;
+ }
+ .modal.fade.in {
+ top: auto;
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+ .carousel-caption {
+ position: static;
+ }
+}
+@media (max-width: 767px) {
+ body {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+ .navbar-fixed-top {
+ margin-left: -20px;
+ margin-right: -20px;
+ }
+ .container {
+ width: auto;
+ }
+ .row-fluid {
+ width: 100%;
+ }
+ .row {
+ margin-left: 0;
+ }
+ .row > [class*="span"],
+ .row-fluid > [class*="span"] {
+ float: none;
+ display: block;
+ width: auto;
+ margin: 0;
+ }
+ .thumbnails [class*="span"] {
+ width: auto;
+ }
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ display: block;
+ width: 100%;
+ min-height: 28px;
+ /* Make inputs at least the height of their button counterpart */
+
+ /* Makes inputs behave like true block-level elements */
+
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ width: auto;
+ }
+}
+@media (min-width: 768px) and (max-width: 979px) {
+ .row {
+ margin-left: -20px;
+ *zoom: 1;
+ }
+ .row:before,
+ .row:after {
+ display: table;
+ content: "";
+ }
+ .row:after {
+ clear: both;
+ }
+ [class*="span"] {
+ float: left;
+ margin-left: 20px;
+ }
+ .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container {
+ width: 724px;
+ }
+ .span12 {
+ width: 724px;
+ }
+ .span11 {
+ width: 662px;
+ }
+ .span10 {
+ width: 600px;
+ }
+ .span9 {
+ width: 538px;
+ }
+ .span8 {
+ width: 476px;
+ }
+ .span7 {
+ width: 414px;
+ }
+ .span6 {
+ width: 352px;
+ }
+ .span5 {
+ width: 290px;
+ }
+ .span4 {
+ width: 228px;
+ }
+ .span3 {
+ width: 166px;
+ }
+ .span2 {
+ width: 104px;
+ }
+ .span1 {
+ width: 42px;
+ }
+ .offset12 {
+ margin-left: 764px;
+ }
+ .offset11 {
+ margin-left: 702px;
+ }
+ .offset10 {
+ margin-left: 640px;
+ }
+ .offset9 {
+ margin-left: 578px;
+ }
+ .offset8 {
+ margin-left: 516px;
+ }
+ .offset7 {
+ margin-left: 454px;
+ }
+ .offset6 {
+ margin-left: 392px;
+ }
+ .offset5 {
+ margin-left: 330px;
+ }
+ .offset4 {
+ margin-left: 268px;
+ }
+ .offset3 {
+ margin-left: 206px;
+ }
+ .offset2 {
+ margin-left: 144px;
+ }
+ .offset1 {
+ margin-left: 82px;
+ }
+ .row-fluid {
+ width: 100%;
+ *zoom: 1;
+ }
+ .row-fluid:before,
+ .row-fluid:after {
+ display: table;
+ content: "";
+ }
+ .row-fluid:after {
+ clear: both;
+ }
+ .row-fluid > [class*="span"] {
+ float: left;
+ margin-left: 2.762430939%;
+ }
+ .row-fluid > [class*="span"]:first-child {
+ margin-left: 0;
+ }
+ .row-fluid > .span12 {
+ width: 99.999999993%;
+ }
+ .row-fluid > .span11 {
+ width: 91.436464082%;
+ }
+ .row-fluid > .span10 {
+ width: 82.87292817100001%;
+ }
+ .row-fluid > .span9 {
+ width: 74.30939226%;
+ }
+ .row-fluid > .span8 {
+ width: 65.74585634900001%;
+ }
+ .row-fluid > .span7 {
+ width: 57.182320438000005%;
+ }
+ .row-fluid > .span6 {
+ width: 48.618784527%;
+ }
+ .row-fluid > .span5 {
+ width: 40.055248616%;
+ }
+ .row-fluid > .span4 {
+ width: 31.491712705%;
+ }
+ .row-fluid > .span3 {
+ width: 22.928176794%;
+ }
+ .row-fluid > .span2 {
+ width: 14.364640883%;
+ }
+ .row-fluid > .span1 {
+ width: 5.801104972%;
+ }
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0;
+ }
+ input.span12, textarea.span12, .uneditable-input.span12 {
+ width: 714px;
+ }
+ input.span11, textarea.span11, .uneditable-input.span11 {
+ width: 652px;
+ }
+ input.span10, textarea.span10, .uneditable-input.span10 {
+ width: 590px;
+ }
+ input.span9, textarea.span9, .uneditable-input.span9 {
+ width: 528px;
+ }
+ input.span8, textarea.span8, .uneditable-input.span8 {
+ width: 466px;
+ }
+ input.span7, textarea.span7, .uneditable-input.span7 {
+ width: 404px;
+ }
+ input.span6, textarea.span6, .uneditable-input.span6 {
+ width: 342px;
+ }
+ input.span5, textarea.span5, .uneditable-input.span5 {
+ width: 280px;
+ }
+ input.span4, textarea.span4, .uneditable-input.span4 {
+ width: 218px;
+ }
+ input.span3, textarea.span3, .uneditable-input.span3 {
+ width: 156px;
+ }
+ input.span2, textarea.span2, .uneditable-input.span2 {
+ width: 94px;
+ }
+ input.span1, textarea.span1, .uneditable-input.span1 {
+ width: 32px;
+ }
+}
+@media (max-width: 979px) {
+ body {
+ padding-top: 0;
+ }
+ .navbar-fixed-top {
+ position: static;
+ margin-bottom: 18px;
+ }
+ .navbar-fixed-top .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+ .navbar .nav-collapse {
+ clear: left;
+ }
+ .navbar .nav {
+ float: none;
+ margin: 0 0 9px;
+ }
+ .navbar .nav > li {
+ float: none;
+ }
+ .navbar .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .navbar .nav > .divider-vertical {
+ display: none;
+ }
+ .navbar .nav .nav-header {
+ color: #999999;
+ text-shadow: none;
+ }
+ .navbar .nav > li > a,
+ .navbar .dropdown-menu a {
+ padding: 6px 15px;
+ font-weight: bold;
+ color: #999999;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ }
+ .navbar .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .navbar .nav > li > a:hover,
+ .navbar .dropdown-menu a:hover {
+ background-color: #222222;
+ }
+ .navbar .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: block;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar .dropdown-menu:before,
+ .navbar .dropdown-menu:after {
+ display: none;
+ }
+ .navbar .dropdown-menu .divider {
+ display: none;
+ }
+ .navbar-form,
+ .navbar-search {
+ float: none;
+ padding: 9px 15px;
+ margin: 9px 0;
+ border-top: 1px solid #222222;
+ border-bottom: 1px solid #222222;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ }
+ .navbar .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ .btn-navbar {
+ display: block;
+ }
+ .nav-collapse {
+ overflow: hidden;
+ height: 0;
+ }
+}
+@media (min-width: 980px) {
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+}
+@media (min-width: 1200px) {
+ .row {
+ margin-left: -30px;
+ *zoom: 1;
+ }
+ .row:before,
+ .row:after {
+ display: table;
+ content: "";
+ }
+ .row:after {
+ clear: both;
+ }
+ [class*="span"] {
+ float: left;
+ margin-left: 30px;
+ }
+ .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container {
+ width: 1170px;
+ }
+ .span12 {
+ width: 1170px;
+ }
+ .span11 {
+ width: 1070px;
+ }
+ .span10 {
+ width: 970px;
+ }
+ .span9 {
+ width: 870px;
+ }
+ .span8 {
+ width: 770px;
+ }
+ .span7 {
+ width: 670px;
+ }
+ .span6 {
+ width: 570px;
+ }
+ .span5 {
+ width: 470px;
+ }
+ .span4 {
+ width: 370px;
+ }
+ .span3 {
+ width: 270px;
+ }
+ .span2 {
+ width: 170px;
+ }
+ .span1 {
+ width: 70px;
+ }
+ .offset12 {
+ margin-left: 1230px;
+ }
+ .offset11 {
+ margin-left: 1130px;
+ }
+ .offset10 {
+ margin-left: 1030px;
+ }
+ .offset9 {
+ margin-left: 930px;
+ }
+ .offset8 {
+ margin-left: 830px;
+ }
+ .offset7 {
+ margin-left: 730px;
+ }
+ .offset6 {
+ margin-left: 630px;
+ }
+ .offset5 {
+ margin-left: 530px;
+ }
+ .offset4 {
+ margin-left: 430px;
+ }
+ .offset3 {
+ margin-left: 330px;
+ }
+ .offset2 {
+ margin-left: 230px;
+ }
+ .offset1 {
+ margin-left: 130px;
+ }
+ .row-fluid {
+ width: 100%;
+ *zoom: 1;
+ }
+ .row-fluid:before,
+ .row-fluid:after {
+ display: table;
+ content: "";
+ }
+ .row-fluid:after {
+ clear: both;
+ }
+ .row-fluid > [class*="span"] {
+ float: left;
+ margin-left: 2.564102564%;
+ }
+ .row-fluid > [class*="span"]:first-child {
+ margin-left: 0;
+ }
+ .row-fluid > .span12 {
+ width: 100%;
+ }
+ .row-fluid > .span11 {
+ width: 91.45299145300001%;
+ }
+ .row-fluid > .span10 {
+ width: 82.905982906%;
+ }
+ .row-fluid > .span9 {
+ width: 74.358974359%;
+ }
+ .row-fluid > .span8 {
+ width: 65.81196581200001%;
+ }
+ .row-fluid > .span7 {
+ width: 57.264957265%;
+ }
+ .row-fluid > .span6 {
+ width: 48.717948718%;
+ }
+ .row-fluid > .span5 {
+ width: 40.170940171000005%;
+ }
+ .row-fluid > .span4 {
+ width: 31.623931624%;
+ }
+ .row-fluid > .span3 {
+ width: 23.076923077%;
+ }
+ .row-fluid > .span2 {
+ width: 14.529914530000001%;
+ }
+ .row-fluid > .span1 {
+ width: 5.982905983%;
+ }
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0;
+ }
+ input.span12, textarea.span12, .uneditable-input.span12 {
+ width: 1160px;
+ }
+ input.span11, textarea.span11, .uneditable-input.span11 {
+ width: 1060px;
+ }
+ input.span10, textarea.span10, .uneditable-input.span10 {
+ width: 960px;
+ }
+ input.span9, textarea.span9, .uneditable-input.span9 {
+ width: 860px;
+ }
+ input.span8, textarea.span8, .uneditable-input.span8 {
+ width: 760px;
+ }
+ input.span7, textarea.span7, .uneditable-input.span7 {
+ width: 660px;
+ }
+ input.span6, textarea.span6, .uneditable-input.span6 {
+ width: 560px;
+ }
+ input.span5, textarea.span5, .uneditable-input.span5 {
+ width: 460px;
+ }
+ input.span4, textarea.span4, .uneditable-input.span4 {
+ width: 360px;
+ }
+ input.span3, textarea.span3, .uneditable-input.span3 {
+ width: 260px;
+ }
+ input.span2, textarea.span2, .uneditable-input.span2 {
+ width: 160px;
+ }
+ input.span1, textarea.span1, .uneditable-input.span1 {
+ width: 60px;
+ }
+ .thumbnails {
+ margin-left: -30px;
+ }
+ .thumbnails > li {
+ margin-left: 30px;
+ }
+}
View
4,647 _site/assets/css/bootstrap.css
4,647 additions, 0 deletions not shown
View
706 _site/assets/css/bootstrap.min.css
@@ -0,0 +1,706 @@
+/*!
+ * Bootstrap v2.0.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hide-text{overflow:hidden;text-indent:100%;white-space:nowrap;}
+.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
+article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
+audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
+audio:not([controls]){display:none;}
+html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:hover,a:active{outline:0;}
+sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
+sup{top:-0.5em;}
+sub{bottom:-0.25em;}
+img{height:auto;border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;}
+button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
+button,input{*overflow:visible;line-height:normal;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
+button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
+input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}
+input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
+textarea{overflow:auto;vertical-align:top;}
+body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;}
+a{color:#0088cc;text-decoration:none;}
+a:hover{color:#005580;text-decoration:underline;}
+.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";}
+.row:after{clear:both;}
+[class*="span"]{float:left;margin-left:20px;}
+.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.span12{width:940px;}
+.span11{width:860px;}
+.span10{width:780px;}
+.span9{width:700px;}
+.span8{width:620px;}
+.span7{width:540px;}
+.span6{width:460px;}
+.span5{width:380px;}
+.span4{width:300px;}
+.span3{width:220px;}
+.span2{width:140px;}
+.span1{width:60px;}
+.offset12{margin-left:980px;}
+.offset11{margin-left:900px;}
+.offset10{margin-left:820px;}
+.offset9{margin-left:740px;}
+.offset8{margin-left:660px;}
+.offset7{margin-left:580px;}
+.offset6{margin-left:500px;}
+.offset5{margin-left:420px;}
+.offset4{margin-left:340px;}
+.offset3{margin-left:260px;}
+.offset2{margin-left:180px;}
+.offset1{margin-left:100px;}
+.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";}
+.row-fluid:after{clear:both;}
+.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;}
+.row-fluid>[class*="span"]:first-child{margin-left:0;}
+.row-fluid > .span12{width:99.99999998999999%;}
+.row-fluid > .span11{width:91.489361693%;}
+.row-fluid > .span10{width:82.97872339599999%;}
+.row-fluid > .span9{width:74.468085099%;}
+.row-fluid > .span8{width:65.95744680199999%;}
+.row-fluid > .span7{width:57.446808505%;}
+.row-fluid > .span6{width:48.93617020799999%;}
+.row-fluid > .span5{width:40.425531911%;}
+.row-fluid > .span4{width:31.914893614%;}
+.row-fluid > .span3{width:23.404255317%;}
+.row-fluid > .span2{width:14.89361702%;}
+.row-fluid > .span1{width:6.382978723%;}
+.container{margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";}
+.container:after{clear:both;}
+.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
+.container-fluid:after{clear:both;}
+p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;}
+.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;}
+h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
+h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;}
+h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;}
+h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;}
+h4,h5,h6{line-height:18px;}
+h4{font-size:14px;}h4 small{font-size:12px;}
+h5{font-size:12px;}
+h6{font-size:11px;color:#999999;text-transform:uppercase;}
+.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;}
+.page-header h1{line-height:1;}
+ul,ol{padding:0;margin:0 0 9px 25px;}
+ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
+ul{list-style:disc;}
+ol{list-style:decimal;}
+li{line-height:18px;}
+ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
+dl{margin-bottom:18px;}
+dt,dd{line-height:18px;}
+dt{font-weight:bold;line-height:17px;}
+dd{margin-left:9px;}
+.dl-horizontal dt{float:left;clear:left;width:120px;text-align:right;}
+.dl-horizontal dd{margin-left:130px;}
+hr{margin:18px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
+strong{font-weight:bold;}
+em{font-style:italic;}
+.muted{color:#999999;}
+abbr[title]{border-bottom:1px dotted #ddd;cursor:help;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
+blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;}
+blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
+blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+q:before,q:after,blockquote:before,blockquote:after{content:"";}
+address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;}
+small{font-size:100%;}
+cite{font-style:normal;}
+code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;}
+pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;}pre.prettyprint{margin-bottom:18px;}
+pre code{padding:0;color:inherit;background-color:transparent;border:0;}
+.pre-scrollable{max-height:340px;overflow-y:scroll;}
+.label{padding:1px 4px 2px;font-size:10.998px;font-weight:bold;line-height:13px;color:#ffffff;vertical-align:middle;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.label:hover{color:#ffffff;text-decoration:none;}
+.label-important{background-color:#b94a48;}
+.label-important:hover{background-color:#953b39;}
+.label-warning{background-color:#f89406;}
+.label-warning:hover{background-color:#c67605;}
+.label-success{background-color:#468847;}
+.label-success:hover{background-color:#356635;}
+.label-info{background-color:#3a87ad;}
+.label-info:hover{background-color:#2d6987;}
+.label-inverse{background-color:#333333;}
+.label-inverse:hover{background-color:#1a1a1a;}
+.badge{padding:1px 9px 2px;font-size:12.025px;font-weight:bold;white-space:nowrap;color:#ffffff;background-color:#999999;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
+.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;}
+.badge-error{background-color:#b94a48;}
+.badge-error:hover{background-color:#953b39;}
+.badge-warning{background-color:#f89406;}
+.badge-warning:hover{background-color:#c67605;}
+.badge-success{background-color:#468847;}
+.badge-success:hover{background-color:#356635;}
+.badge-info{background-color:#3a87ad;}
+.badge-info:hover{background-color:#2d6987;}
+.badge-inverse{background-color:#333333;}
+.badge-inverse:hover{background-color:#1a1a1a;}
+table{max-width:100%;border-collapse:collapse;border-spacing:0;background-color:transparent;}
+.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
+.table th{font-weight:bold;}
+.table thead th{vertical-align:bottom;}
+.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #dddddd;}
+.table-condensed th,.table-condensed td{padding:4px 5px;}
+.table-bordered{border:1px solid #dddddd;border-left:0;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
+.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
+.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
+.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
+.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
+.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
+.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
+.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;}
+table .span1{float:none;width:44px;margin-left:0;}
+table .span2{float:none;width:124px;margin-left:0;}
+table .span3{float:none;width:204px;margin-left:0;}
+table .span4{float:none;width:284px;margin-left:0;}
+table .span5{float:none;width:364px;margin-left:0;}
+table .span6{float:none;width:444px;margin-left:0;}
+table .span7{float:none;width:524px;margin-left:0;}
+table .span8{float:none;width:604px;margin-left:0;}
+table .span9{float:none;width:684px;margin-left:0;}
+table .span10{float:none;width:764px;margin-left:0;}
+table .span11{float:none;width:844px;margin-left:0;}
+table .span12{float:none;width:924px;margin-left:0;}
+table .span13{float:none;width:1004px;margin-left:0;}
+table .span14{float:none;width:1084px;margin-left:0;}
+table .span15{float:none;width:1164px;margin-left:0;}
+table .span16{float:none;width:1244px;margin-left:0;}
+table .span17{float:none;width:1324px;margin-left:0;}
+table .span18{float:none;width:1404px;margin-left:0;}
+table .span19{float:none;width:1484px;margin-left:0;}
+table .span20{float:none;width:1564px;margin-left:0;}
+table .span21{float:none;width:1644px;margin-left:0;}
+table .span22{float:none;width:1724px;margin-left:0;}
+table .span23{float:none;width:1804px;margin-left:0;}
+table .span24{float:none;width:1884px;margin-left:0;}
+form{margin:0 0 18px;}
+fieldset{padding:0;margin:0;border:0;}
+legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;}legend small{font-size:13.5px;color:#999999;}
+label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px;}
+input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
+label{display:block;margin-bottom:5px;color:#333333;}
+input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.uneditable-textarea{width:auto;height:auto;}
+label input,label textarea,label select{display:block;}
+input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0 \9;}
+input[type="image"]{border:0;}
+input[type="file"]{width:auto;padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;}
+select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;}
+input[type="file"]{line-height:18px \9;}
+select{width:220px;background-color:#ffffff;}
+select[multiple],select[size]{height:auto;}
+input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
+textarea{height:auto;}
+input[type="hidden"]{display:none;}
+.radio,.checkbox{padding-left:18px;}
+.radio