├── static ├── img │ └── .gitkeep ├── css │ ├── alt-fonts.css │ ├── pygment │ │ ├── vs.css │ │ ├── bw.css │ │ ├── borland.css │ │ ├── monokai.css │ │ ├── autumn.css │ │ ├── perldoc.css │ │ ├── trac.css │ │ ├── default.css │ │ ├── emacs.css │ │ ├── friendly.css │ │ ├── manni.css │ │ ├── colorful.css │ │ ├── murphy.css │ │ ├── pastie.css │ │ ├── native.css │ │ ├── fruity.css │ │ └── tango.css │ ├── custom.css │ ├── pygment.css │ └── normalize.css └── js │ ├── foundation │ ├── foundation.alert.js │ ├── foundation.tab.js │ ├── foundation.offcanvas.js │ ├── foundation.accordion.js │ ├── foundation.magellan.js │ ├── foundation.dropdown.js │ ├── foundation.tooltip.js │ ├── foundation.abide.js │ ├── foundation.interchange.js │ ├── foundation.reveal.js │ ├── foundation.topbar.js │ └── foundation.clearing.js │ ├── vendor │ ├── jquery.cookie.js │ ├── custom.modernizr.js │ └── modernizr.js │ └── modernizr.js ├── screenshot.png ├── templates ├── category.html ├── tag.html ├── page.html ├── tags.html ├── categories.html ├── analytics.html ├── archives.html ├── article.html ├── index.html └── base.html ├── LICENSE └── README.md /static/img/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamaluik/foundation-default-colours/master/screenshot.png -------------------------------------------------------------------------------- /templates/category.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% set pagetitle = 'Category: ' ~ category %} -------------------------------------------------------------------------------- /templates/tag.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% set pagetitle = "Posts Tagged With '" ~ tag ~ "'" %} -------------------------------------------------------------------------------- /templates/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |
5 |
6 | {{ page.content }} 7 |
8 |
9 | {% endblock %} 10 | 11 | {% set pagetitle = page.title %} -------------------------------------------------------------------------------- /templates/tags.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}{{ SITENAME }} [tags]{% endblock %} 4 | 5 | {% block content %} 6 | 11 | {% endblock %} -------------------------------------------------------------------------------- /templates/categories.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}{{ SITENAME }} [categories]{% endblock %} 4 | 5 | {% block content %} 6 | 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /static/css/alt-fonts.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: 'Droid Serif', serif; 3 | } 4 | 5 | h1, h2, h3, h4, h5, h6, .side-nav, .top-bar-section ul li > a, ul.off-canvas-list li { 6 | font-family: 'Droid Sans', sans-serif; 7 | } 8 | 9 | h1, h2, h3 { 10 | font-weight: bold; 11 | } 12 | 13 | pre, code { 14 | font-family: 'Droid Sans Mono', monospace; 15 | } 16 | 17 | code { 18 | font-size: 0.7em ; 19 | } -------------------------------------------------------------------------------- /templates/analytics.html: -------------------------------------------------------------------------------- 1 | {% if GOOGLE_ANALYTICS %} 2 | {% if FOUNDATION_NEW_ANALYTICS %} 3 | 11 | {% else %} 12 | 13 | {% endif %} 14 | {% endif %} -------------------------------------------------------------------------------- /templates/archives.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |
5 |
6 | {% for year, date_year in dates|groupby( 'date.year' )|sort(reverse=True) %} 7 |
8 |
9 |

{{ year }}

10 |
11 |
12 | {% for month, articles in date_year|groupby('date.month') %} 13 | {% for article in articles %} 14 |
15 |
16 |
{{ article.date.strftime('%b %d') }}
17 |
18 | 21 |
22 | {% endfor %} 23 | {% endfor %} 24 | {% endfor %} 25 |
26 |
27 | {% endblock %} 28 | 29 | {% set pagetitle = 'Archives' %} 30 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.alert.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.alert = { 5 | name : 'alert', 6 | 7 | version : '5.0.0', 8 | 9 | settings : { 10 | animation: 'fadeOut', 11 | speed: 300, // fade out speed 12 | callback: function (){} 13 | }, 14 | 15 | init : function (scope, method, options) { 16 | this.bindings(method, options); 17 | }, 18 | 19 | events : function () { 20 | $(this.scope).off('.alert').on('click.fndtn.alert', '[data-alert] a.close', function (e) { 21 | var alertBox = $(this).closest("[data-alert]"), 22 | settings = alertBox.data('alert-init'); 23 | 24 | e.preventDefault(); 25 | alertBox[settings.animation](settings.speed, function () { 26 | $(this).trigger('closed').remove(); 27 | settings.callback(); 28 | }); 29 | }); 30 | }, 31 | 32 | reflow : function () {} 33 | }; 34 | }(jQuery, this, this.document)); 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Kenton Hamaluik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.tab.js: -------------------------------------------------------------------------------- 1 | /*jslint unparam: true, browser: true, indent: 2 */ 2 | ;(function ($, window, document, undefined) { 3 | 'use strict'; 4 | 5 | Foundation.libs.tab = { 6 | name : 'tab', 7 | 8 | version : '5.0.1', 9 | 10 | settings : { 11 | active_class: 'active' 12 | }, 13 | 14 | init : function (scope, method, options) { 15 | this.bindings(method, options); 16 | }, 17 | 18 | events : function () { 19 | $(this.scope).off('.tab').on('click.fndtn.tab', '[data-tab] > dd > a', function (e) { 20 | e.preventDefault(); 21 | 22 | var tab = $(this).parent(), 23 | target = $('#' + this.href.split('#')[1]), 24 | siblings = tab.siblings(), 25 | settings = tab.closest('[data-tab]').data('tab-init'); 26 | 27 | tab.addClass(settings.active_class); 28 | siblings.removeClass(settings.active_class); 29 | target.siblings().removeClass(settings.active_class).end().addClass(settings.active_class); 30 | }); 31 | }, 32 | 33 | off : function () {}, 34 | 35 | reflow : function () {} 36 | }; 37 | }(jQuery, this, this.document)); 38 | -------------------------------------------------------------------------------- /templates/article.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 |
5 |

{{ article.title }}

6 | {{ article.content }} 7 |
Written by {{ article.author }} on {{ article.locale_date }}.
8 |
9 | 10 | {% if DISQUS_SITENAME %} 11 |
12 |
13 |
14 |

Comments

15 |
16 | 24 | 25 | comments powered by Disqus 26 |
27 |
28 | {% endif %} 29 | {% endblock %} 30 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.offcanvas.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.offcanvas = { 5 | name : 'offcanvas', 6 | 7 | version : '5.0.0', 8 | 9 | settings : {}, 10 | 11 | init : function (scope, method, options) { 12 | this.events(); 13 | }, 14 | 15 | events : function () { 16 | $(this.scope).off('.offcanvas') 17 | .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) { 18 | e.preventDefault(); 19 | $(this).closest('.off-canvas-wrap').toggleClass('move-right'); 20 | }) 21 | .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { 22 | e.preventDefault(); 23 | $(".off-canvas-wrap").removeClass("move-right"); 24 | }) 25 | .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) { 26 | e.preventDefault(); 27 | $(this).closest(".off-canvas-wrap").toggleClass("move-left"); 28 | }) 29 | .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) { 30 | e.preventDefault(); 31 | $(".off-canvas-wrap").removeClass("move-left"); 32 | }); 33 | }, 34 | 35 | reflow : function () {} 36 | }; 37 | }(jQuery, this, this.document)); 38 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.accordion.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.accordion = { 5 | name : 'accordion', 6 | 7 | version : '5.0.1', 8 | 9 | settings : { 10 | active_class: 'active', 11 | toggleable: true 12 | }, 13 | 14 | init : function (scope, method, options) { 15 | this.bindings(method, options); 16 | }, 17 | 18 | events : function () { 19 | $(this.scope).off('.accordion').on('click.fndtn.accordion', '[data-accordion] > dd > a', function (e) { 20 | var accordion = $(this).parent(), 21 | target = $('#' + this.href.split('#')[1]), 22 | siblings = $('> dd > .content', target.closest('[data-accordion]')), 23 | settings = accordion.parent().data('accordion-init'), 24 | active = $('> dd > .content.' + settings.active_class, accordion.parent()); 25 | 26 | e.preventDefault(); 27 | 28 | if (active[0] == target[0] && settings.toggleable) { 29 | return target.toggleClass(settings.active_class); 30 | } 31 | 32 | siblings.removeClass(settings.active_class); 33 | target.addClass(settings.active_class); 34 | }); 35 | }, 36 | 37 | off : function () {}, 38 | 39 | reflow : function () {} 40 | }; 41 | }(jQuery, this, this.document)); 42 | -------------------------------------------------------------------------------- /static/css/pygment/vs.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #008000 } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #0000ff } /* Keyword */ 6 | .highlight .cm { color: #008000 } /* Comment.Multiline */ 7 | .highlight .cp { color: #0000ff } /* Comment.Preproc */ 8 | .highlight .c1 { color: #008000 } /* Comment.Single */ 9 | .highlight .cs { color: #008000 } /* Comment.Special */ 10 | .highlight .ge { font-style: italic } /* Generic.Emph */ 11 | .highlight .gh { font-weight: bold } /* Generic.Heading */ 12 | .highlight .gp { font-weight: bold } /* Generic.Prompt */ 13 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 14 | .highlight .gu { font-weight: bold } /* Generic.Subheading */ 15 | .highlight .kc { color: #0000ff } /* Keyword.Constant */ 16 | .highlight .kd { color: #0000ff } /* Keyword.Declaration */ 17 | .highlight .kn { color: #0000ff } /* Keyword.Namespace */ 18 | .highlight .kp { color: #0000ff } /* Keyword.Pseudo */ 19 | .highlight .kr { color: #0000ff } /* Keyword.Reserved */ 20 | .highlight .kt { color: #2b91af } /* Keyword.Type */ 21 | .highlight .s { color: #a31515 } /* Literal.String */ 22 | .highlight .nc { color: #2b91af } /* Name.Class */ 23 | .highlight .ow { color: #0000ff } /* Operator.Word */ 24 | .highlight .sb { color: #a31515 } /* Literal.String.Backtick */ 25 | .highlight .sc { color: #a31515 } /* Literal.String.Char */ 26 | .highlight .sd { color: #a31515 } /* Literal.String.Doc */ 27 | .highlight .s2 { color: #a31515 } /* Literal.String.Double */ 28 | .highlight .se { color: #a31515 } /* Literal.String.Escape */ 29 | .highlight .sh { color: #a31515 } /* Literal.String.Heredoc */ 30 | .highlight .si { color: #a31515 } /* Literal.String.Interpol */ 31 | .highlight .sx { color: #a31515 } /* Literal.String.Other */ 32 | .highlight .sr { color: #a31515 } /* Literal.String.Regex */ 33 | .highlight .s1 { color: #a31515 } /* Literal.String.Single */ 34 | .highlight .ss { color: #a31515 } /* Literal.String.Symbol */ 35 | -------------------------------------------------------------------------------- /static/css/custom.css: -------------------------------------------------------------------------------- 1 | .tag-cloud { 2 | padding: 2px; 3 | margin: 0; 4 | margin-top: -0.25em; 5 | } 6 | 7 | .tag-cloud a { 8 | padding: 0px; 9 | } 10 | 11 | .tag-cloud li { 12 | display: inline; 13 | } 14 | 15 | .tag-cloud a.tag-1 { 16 | font-size: 1.0em; 17 | font-weight: 400; 18 | } 19 | 20 | .tag-cloud a.tag-2 { 21 | font-size: 0.9em; 22 | font-weight: 300; 23 | } 24 | 25 | .tag-cloud a.tag-3 { 26 | font-size: 0.8em; 27 | font-weight: 200; 28 | } 29 | 30 | .tag-cloud a.tag-4 { 31 | font-size: 0.7em; 32 | font-weight: 100; 33 | } 34 | 35 | .img-center { 36 | width: 100%; 37 | background: red; 38 | border: 1px solid green; 39 | } 40 | 41 | .image-caption { 42 | padding-top: 0.5em; 43 | font-size: 0.7em; 44 | } 45 | 46 | .image-container { 47 | padding-bottom: 1em; 48 | } 49 | 50 | .highlighttable { 51 | background: #272822; 52 | border: 1px solid #8f908a; 53 | /* uncomment to center the code blocks */ 54 | /*margin-left: auto; 55 | margin-right: auto;*/ 56 | width: 100%; 57 | } 58 | 59 | .linenos { 60 | color: #8f908a; 61 | border-right: 1px dotted #464741; 62 | } 63 | 64 | .panel h5 { 65 | border-bottom: 2px solid; 66 | padding: 0; 67 | margin: 0; 68 | margin-bottom: 0.25em; 69 | } 70 | 71 | .side-nav { 72 | margin: 0; 73 | padding: 0; 74 | } 75 | 76 | .side-nav li { 77 | margin: 0; 78 | padding: 0; 79 | } 80 | 81 | .side-nav a { 82 | color: black; 83 | } 84 | 85 | .side-nav li a:before { 86 | content: "- "; 87 | } 88 | 89 | code { 90 | color: #222222; 91 | background: #f8f8f8; 92 | border: 1px solid #dddddd; 93 | margin: 0 2px; 94 | padding: 0 5px; 95 | -webkit-border-radius: 3px; 96 | -moz-border-radius: 3px; 97 | border-radius: 3px; 98 | font-weight: normal; 99 | font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif; 100 | } 101 | 102 | p { 103 | text-align: justify; 104 | } 105 | 106 | .continue { 107 | width: 100%; 108 | text-align: right; 109 | } 110 | 111 | .archive-year { 112 | border-top: 1px solid; 113 | } 114 | 115 | .archive-entry { 116 | border-top: 1px dotted; 117 | } -------------------------------------------------------------------------------- /static/css/pygment/bw.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { font-weight: bold } /* Keyword */ 6 | .highlight .cm { font-style: italic } /* Comment.Multiline */ 7 | .highlight .c1 { font-style: italic } /* Comment.Single */ 8 | .highlight .cs { font-style: italic } /* Comment.Special */ 9 | .highlight .ge { font-style: italic } /* Generic.Emph */ 10 | .highlight .gh { font-weight: bold } /* Generic.Heading */ 11 | .highlight .gp { font-weight: bold } /* Generic.Prompt */ 12 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 13 | .highlight .gu { font-weight: bold } /* Generic.Subheading */ 14 | .highlight .kc { font-weight: bold } /* Keyword.Constant */ 15 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */ 16 | .highlight .kn { font-weight: bold } /* Keyword.Namespace */ 17 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */ 18 | .highlight .s { font-style: italic } /* Literal.String */ 19 | .highlight .nc { font-weight: bold } /* Name.Class */ 20 | .highlight .ni { font-weight: bold } /* Name.Entity */ 21 | .highlight .ne { font-weight: bold } /* Name.Exception */ 22 | .highlight .nn { font-weight: bold } /* Name.Namespace */ 23 | .highlight .nt { font-weight: bold } /* Name.Tag */ 24 | .highlight .ow { font-weight: bold } /* Operator.Word */ 25 | .highlight .sb { font-style: italic } /* Literal.String.Backtick */ 26 | .highlight .sc { font-style: italic } /* Literal.String.Char */ 27 | .highlight .sd { font-style: italic } /* Literal.String.Doc */ 28 | .highlight .s2 { font-style: italic } /* Literal.String.Double */ 29 | .highlight .se { font-weight: bold; font-style: italic } /* Literal.String.Escape */ 30 | .highlight .sh { font-style: italic } /* Literal.String.Heredoc */ 31 | .highlight .si { font-weight: bold; font-style: italic } /* Literal.String.Interpol */ 32 | .highlight .sx { font-style: italic } /* Literal.String.Other */ 33 | .highlight .sr { font-style: italic } /* Literal.String.Regex */ 34 | .highlight .s1 { font-style: italic } /* Literal.String.Single */ 35 | .highlight .ss { font-style: italic } /* Literal.String.Symbol */ 36 | -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 | 4 | {# show summaries of the latest articles #} 5 | {% if articles %} 6 | {% for article in (articles_page.object_list if articles_page else articles) %} 7 |
8 |

{{ article.title }}

9 |
Written by {{ article.author }} {% if article.category %}in {{ article.category}} {% endif %}on {{ article.locale_date }}.{% if article.tags|count > 0 %} Tags: {% for tag in article.tags %}{{ tag }}, {% endfor %}{% endif %}
10 | {{ article.content if FOUNDATION_FRONT_PAGE_FULL_ARTICLES else article.summary }} 11 | {% if not FOUNDATION_FRONT_PAGE_FULL_ARTICLES %} 12 | {# add a 'Continue reading' link if we're displaying summaries #} 13 |

Continue reading »

14 | {% endif %} 15 |
16 |
17 | {% endfor %} 18 | {%endif%} 19 | 20 | {# deal with pagination #} 21 | {% if articles_page and articles_paginator.num_pages > 1 %} 22 |
23 |
24 |
25 |
    26 | {% if articles_page.has_previous() %} 27 | {% set num = articles_page.previous_page_number() %} 28 |
  • ← Previous
  • 29 | {% else %} 30 |
  • ← Previous
  • 31 | {% endif %} 32 | {% for num in range( 1, 1 + articles_paginator.num_pages ) %} 33 |
  • {{ num }}
  • 34 | {% endfor %} 35 | {% if articles_page.has_next() %} 36 |
  • Next →
  • 37 | {% else %} 38 |
  • → Next
  • 39 | {% endif %} 40 |
41 |
42 |
43 |
44 | {% endif %} 45 | 46 | {% endblock %} 47 | 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | foundation-default-colours 2 | ========================== 3 | 4 | A pelican theme using Zurb Foundation 5 with the default colour theme, including full mobile support (menus and display change when using a small screen). 5 | 6 | There are seven theme-specific settings you can set in your **pelicanconf.py** file (the settings shown are the defaults): 7 | 8 | ```python 9 | FOUNDATION_FRONT_PAGE_FULL_ARTICLES = False 10 | FOUNDATION_ALTERNATE_FONTS = False 11 | FOUNDATION_TAGS_IN_MOBILE_SIDEBAR = False 12 | FOUNDATION_NEW_ANALYTICS = False 13 | FOUNDATION_ANALYTICS_DOMAIN = '' 14 | FOUNDATION_FOOTER_TEXT = 'Powered by Pelican and Zurb Foundation. Theme by Kenton Hamaluik.' 15 | FOUNDATION_PYGMENT_THEME = 'monokai' 16 | ``` 17 | 18 | * If you enable `FOUNDATION_FRONT_PAGE_FULL_ARTICLES`, the front page will show full articles instead of summaries + links to the full articles. 19 | * If you enable `FOUNDATION_ALTERNATE_FONTS`, Google Droid fonts will be used instead of the default **Open Sans** font that ships with Foundation. 20 | * If you enable `FOUNDATION_TAGS_IN_MOBILE_SIDEBAR`, a tag list will appear in the mobile sidebar. However note that if you have a lot of tags, this list may get rather long and unweildly. 21 | * If you wish to use the newer Google Analytics embed code, enable `FOUNDATION_NEW_ANALYTICS` and set the `FOUNDATION_ANALYTICS_DOMAIN` to the Google-Analytics-supplied name for your code block. 22 | * If you wish to change the footer text, do so using the `FOUNDATION_FOOTER_TEXT` setting. 23 | * Finally, you can set `FOUNDATION_PYGMENT_THEME` to any of the themes that Pygments provides: 24 | * autumn 25 | * borland 26 | * bw 27 | * colorful 28 | * default 29 | * emacs 30 | * friendly 31 | * fruity 32 | * manny 33 | * monokai 34 | * murphy 35 | * native 36 | * pastie 37 | * perldoc 38 | * tango 39 | * trac 40 | * vs 41 | 42 | If you wish to enable a listing of monthly archives in the sidebar, do so by setting `MONTH_ARCHIVE_SAVE_AS` in **pelicanconf.py**. For example: 43 | 44 | ```python 45 | MONTH_ARCHIVE_SAVE_AS = 'posts/{date:%Y}/{date:%m}/index.html' 46 | ``` 47 | 48 | On my site, I like to include centered images with small captions below them embedded throughout my posts. To do this easily, I wrote a Pelican plugin that you can access at https://github.com/FuzzyWuzzie/foundation_images. It is designed to work with this theme, usage information can be found in it's repository's README. 49 | 50 | Enjoy! 51 | -------------------------------------------------------------------------------- /static/css/pygment/borland.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #008800; font-style: italic } /* Comment */ 4 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 5 | .highlight .k { color: #000080; font-weight: bold } /* Keyword */ 6 | .highlight .cm { color: #008800; font-style: italic } /* Comment.Multiline */ 7 | .highlight .cp { color: #008080 } /* Comment.Preproc */ 8 | .highlight .c1 { color: #008800; font-style: italic } /* Comment.Single */ 9 | .highlight .cs { color: #008800; font-weight: bold } /* Comment.Special */ 10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 11 | .highlight .ge { font-style: italic } /* Generic.Emph */ 12 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 13 | .highlight .gh { color: #999999 } /* Generic.Heading */ 14 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 15 | .highlight .go { color: #888888 } /* Generic.Output */ 16 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 17 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 18 | .highlight .gu { color: #aaaaaa } /* Generic.Subheading */ 19 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 20 | .highlight .kc { color: #000080; font-weight: bold } /* Keyword.Constant */ 21 | .highlight .kd { color: #000080; font-weight: bold } /* Keyword.Declaration */ 22 | .highlight .kn { color: #000080; font-weight: bold } /* Keyword.Namespace */ 23 | .highlight .kp { color: #000080; font-weight: bold } /* Keyword.Pseudo */ 24 | .highlight .kr { color: #000080; font-weight: bold } /* Keyword.Reserved */ 25 | .highlight .kt { color: #000080; font-weight: bold } /* Keyword.Type */ 26 | .highlight .m { color: #0000FF } /* Literal.Number */ 27 | .highlight .s { color: #0000FF } /* Literal.String */ 28 | .highlight .na { color: #FF0000 } /* Name.Attribute */ 29 | .highlight .nt { color: #000080; font-weight: bold } /* Name.Tag */ 30 | .highlight .ow { font-weight: bold } /* Operator.Word */ 31 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 32 | .highlight .mf { color: #0000FF } /* Literal.Number.Float */ 33 | .highlight .mh { color: #0000FF } /* Literal.Number.Hex */ 34 | .highlight .mi { color: #0000FF } /* Literal.Number.Integer */ 35 | .highlight .mo { color: #0000FF } /* Literal.Number.Oct */ 36 | .highlight .sb { color: #0000FF } /* Literal.String.Backtick */ 37 | .highlight .sc { color: #800080 } /* Literal.String.Char */ 38 | .highlight .sd { color: #0000FF } /* Literal.String.Doc */ 39 | .highlight .s2 { color: #0000FF } /* Literal.String.Double */ 40 | .highlight .se { color: #0000FF } /* Literal.String.Escape */ 41 | .highlight .sh { color: #0000FF } /* Literal.String.Heredoc */ 42 | .highlight .si { color: #0000FF } /* Literal.String.Interpol */ 43 | .highlight .sx { color: #0000FF } /* Literal.String.Other */ 44 | .highlight .sr { color: #0000FF } /* Literal.String.Regex */ 45 | .highlight .s1 { color: #0000FF } /* Literal.String.Single */ 46 | .highlight .ss { color: #0000FF } /* Literal.String.Symbol */ 47 | .highlight .il { color: #0000FF } /* Literal.Number.Integer.Long */ 48 | -------------------------------------------------------------------------------- /static/js/vendor/jquery.cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.3.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2013 Klaus Hartl 6 | * Released under the MIT license 7 | */ 8 | (function (factory) { 9 | if (typeof define === 'function' && define.amd) { 10 | // AMD. Register as anonymous module. 11 | define(['jquery'], factory); 12 | } else { 13 | // Browser globals. 14 | factory(jQuery); 15 | } 16 | }(function ($) { 17 | 18 | var pluses = /\+/g; 19 | 20 | function decode(s) { 21 | if (config.raw) { 22 | return s; 23 | } 24 | try { 25 | // If we can't decode the cookie, ignore it, it's unusable. 26 | return decodeURIComponent(s.replace(pluses, ' ')); 27 | } catch(e) {} 28 | } 29 | 30 | function decodeAndParse(s) { 31 | if (s.indexOf('"') === 0) { 32 | // This is a quoted cookie as according to RFC2068, unescape... 33 | s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); 34 | } 35 | 36 | s = decode(s); 37 | 38 | try { 39 | // If we can't parse the cookie, ignore it, it's unusable. 40 | return config.json ? JSON.parse(s) : s; 41 | } catch(e) {} 42 | } 43 | 44 | var config = $.cookie = function (key, value, options) { 45 | 46 | // Write 47 | if (value !== undefined) { 48 | options = $.extend({}, config.defaults, options); 49 | 50 | if (typeof options.expires === 'number') { 51 | var days = options.expires, t = options.expires = new Date(); 52 | t.setDate(t.getDate() + days); 53 | } 54 | 55 | value = config.json ? JSON.stringify(value) : String(value); 56 | 57 | return (document.cookie = [ 58 | config.raw ? key : encodeURIComponent(key), 59 | '=', 60 | config.raw ? value : encodeURIComponent(value), 61 | options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 62 | options.path ? '; path=' + options.path : '', 63 | options.domain ? '; domain=' + options.domain : '', 64 | options.secure ? '; secure' : '' 65 | ].join('')); 66 | } 67 | 68 | // Read 69 | 70 | var result = key ? undefined : {}; 71 | 72 | // To prevent the for loop in the first place assign an empty array 73 | // in case there are no cookies at all. Also prevents odd result when 74 | // calling $.cookie(). 75 | var cookies = document.cookie ? document.cookie.split('; ') : []; 76 | 77 | for (var i = 0, l = cookies.length; i < l; i++) { 78 | var parts = cookies[i].split('='); 79 | var name = decode(parts.shift()); 80 | var cookie = parts.join('='); 81 | 82 | if (key && key === name) { 83 | result = decodeAndParse(cookie); 84 | break; 85 | } 86 | 87 | // Prevent storing a cookie that we couldn't decode. 88 | if (!key && (cookie = decodeAndParse(cookie)) !== undefined) { 89 | result[name] = cookie; 90 | } 91 | } 92 | 93 | return result; 94 | }; 95 | 96 | config.defaults = {}; 97 | 98 | $.removeCookie = function (key, options) { 99 | if ($.cookie(key) !== undefined) { 100 | // Must not alter options, thus extending a fresh object... 101 | $.cookie(key, '', $.extend({}, options, { expires: -1 })); 102 | return true; 103 | } 104 | return false; 105 | }; 106 | 107 | })); 108 | -------------------------------------------------------------------------------- /static/css/pygment/monokai.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #49483e } 2 | .highlight { background: #272822; color: #f8f8f2 } 3 | .highlight .c { color: #75715e } /* Comment */ 4 | .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ 5 | .highlight .k { color: #66d9ef } /* Keyword */ 6 | .highlight .l { color: #ae81ff } /* Literal */ 7 | .highlight .n { color: #f8f8f2 } /* Name */ 8 | .highlight .o { color: #f92672 } /* Operator */ 9 | .highlight .p { color: #f8f8f2 } /* Punctuation */ 10 | .highlight .cm { color: #75715e } /* Comment.Multiline */ 11 | .highlight .cp { color: #75715e } /* Comment.Preproc */ 12 | .highlight .c1 { color: #75715e } /* Comment.Single */ 13 | .highlight .cs { color: #75715e } /* Comment.Special */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 16 | .highlight .kc { color: #66d9ef } /* Keyword.Constant */ 17 | .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ 18 | .highlight .kn { color: #f92672 } /* Keyword.Namespace */ 19 | .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ 20 | .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ 21 | .highlight .kt { color: #66d9ef } /* Keyword.Type */ 22 | .highlight .ld { color: #e6db74 } /* Literal.Date */ 23 | .highlight .m { color: #ae81ff } /* Literal.Number */ 24 | .highlight .s { color: #e6db74 } /* Literal.String */ 25 | .highlight .na { color: #a6e22e } /* Name.Attribute */ 26 | .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ 27 | .highlight .nc { color: #a6e22e } /* Name.Class */ 28 | .highlight .no { color: #66d9ef } /* Name.Constant */ 29 | .highlight .nd { color: #a6e22e } /* Name.Decorator */ 30 | .highlight .ni { color: #f8f8f2 } /* Name.Entity */ 31 | .highlight .ne { color: #a6e22e } /* Name.Exception */ 32 | .highlight .nf { color: #a6e22e } /* Name.Function */ 33 | .highlight .nl { color: #f8f8f2 } /* Name.Label */ 34 | .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ 35 | .highlight .nx { color: #a6e22e } /* Name.Other */ 36 | .highlight .py { color: #f8f8f2 } /* Name.Property */ 37 | .highlight .nt { color: #f92672 } /* Name.Tag */ 38 | .highlight .nv { color: #f8f8f2 } /* Name.Variable */ 39 | .highlight .ow { color: #f92672 } /* Operator.Word */ 40 | .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ 41 | .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ 42 | .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ 43 | .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ 44 | .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ 45 | .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ 46 | .highlight .sc { color: #e6db74 } /* Literal.String.Char */ 47 | .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ 48 | .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ 49 | .highlight .se { color: #ae81ff } /* Literal.String.Escape */ 50 | .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ 51 | .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ 52 | .highlight .sx { color: #e6db74 } /* Literal.String.Other */ 53 | .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ 54 | .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ 55 | .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ 56 | .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ 57 | .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ 58 | .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ 59 | .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ 60 | .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ 61 | -------------------------------------------------------------------------------- /static/css/pygment/autumn.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #aaaaaa; font-style: italic } /* Comment */ 4 | .highlight .err { color: #FF0000; background-color: #FFAAAA } /* Error */ 5 | .highlight .k { color: #0000aa } /* Keyword */ 6 | .highlight .cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */ 7 | .highlight .cp { color: #4c8317 } /* Comment.Preproc */ 8 | .highlight .c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */ 9 | .highlight .cs { color: #0000aa; font-style: italic } /* Comment.Special */ 10 | .highlight .gd { color: #aa0000 } /* Generic.Deleted */ 11 | .highlight .ge { font-style: italic } /* Generic.Emph */ 12 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 13 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 14 | .highlight .gi { color: #00aa00 } /* Generic.Inserted */ 15 | .highlight .go { color: #888888 } /* Generic.Output */ 16 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 17 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 18 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 19 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 20 | .highlight .kc { color: #0000aa } /* Keyword.Constant */ 21 | .highlight .kd { color: #0000aa } /* Keyword.Declaration */ 22 | .highlight .kn { color: #0000aa } /* Keyword.Namespace */ 23 | .highlight .kp { color: #0000aa } /* Keyword.Pseudo */ 24 | .highlight .kr { color: #0000aa } /* Keyword.Reserved */ 25 | .highlight .kt { color: #00aaaa } /* Keyword.Type */ 26 | .highlight .m { color: #009999 } /* Literal.Number */ 27 | .highlight .s { color: #aa5500 } /* Literal.String */ 28 | .highlight .na { color: #1e90ff } /* Name.Attribute */ 29 | .highlight .nb { color: #00aaaa } /* Name.Builtin */ 30 | .highlight .nc { color: #00aa00; text-decoration: underline } /* Name.Class */ 31 | .highlight .no { color: #aa0000 } /* Name.Constant */ 32 | .highlight .nd { color: #888888 } /* Name.Decorator */ 33 | .highlight .ni { color: #880000; font-weight: bold } /* Name.Entity */ 34 | .highlight .nf { color: #00aa00 } /* Name.Function */ 35 | .highlight .nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */ 36 | .highlight .nt { color: #1e90ff; font-weight: bold } /* Name.Tag */ 37 | .highlight .nv { color: #aa0000 } /* Name.Variable */ 38 | .highlight .ow { color: #0000aa } /* Operator.Word */ 39 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 40 | .highlight .mf { color: #009999 } /* Literal.Number.Float */ 41 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */ 42 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */ 43 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */ 44 | .highlight .sb { color: #aa5500 } /* Literal.String.Backtick */ 45 | .highlight .sc { color: #aa5500 } /* Literal.String.Char */ 46 | .highlight .sd { color: #aa5500 } /* Literal.String.Doc */ 47 | .highlight .s2 { color: #aa5500 } /* Literal.String.Double */ 48 | .highlight .se { color: #aa5500 } /* Literal.String.Escape */ 49 | .highlight .sh { color: #aa5500 } /* Literal.String.Heredoc */ 50 | .highlight .si { color: #aa5500 } /* Literal.String.Interpol */ 51 | .highlight .sx { color: #aa5500 } /* Literal.String.Other */ 52 | .highlight .sr { color: #009999 } /* Literal.String.Regex */ 53 | .highlight .s1 { color: #aa5500 } /* Literal.String.Single */ 54 | .highlight .ss { color: #0000aa } /* Literal.String.Symbol */ 55 | .highlight .bp { color: #00aaaa } /* Name.Builtin.Pseudo */ 56 | .highlight .vc { color: #aa0000 } /* Name.Variable.Class */ 57 | .highlight .vg { color: #aa0000 } /* Name.Variable.Global */ 58 | .highlight .vi { color: #aa0000 } /* Name.Variable.Instance */ 59 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ 60 | -------------------------------------------------------------------------------- /static/css/pygment/perldoc.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #eeeedd; } 3 | .highlight .c { color: #228B22 } /* Comment */ 4 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 5 | .highlight .k { color: #8B008B; font-weight: bold } /* Keyword */ 6 | .highlight .cm { color: #228B22 } /* Comment.Multiline */ 7 | .highlight .cp { color: #1e889b } /* Comment.Preproc */ 8 | .highlight .c1 { color: #228B22 } /* Comment.Single */ 9 | .highlight .cs { color: #8B008B; font-weight: bold } /* Comment.Special */ 10 | .highlight .gd { color: #aa0000 } /* Generic.Deleted */ 11 | .highlight .ge { font-style: italic } /* Generic.Emph */ 12 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 13 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 14 | .highlight .gi { color: #00aa00 } /* Generic.Inserted */ 15 | .highlight .go { color: #888888 } /* Generic.Output */ 16 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 17 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 18 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 19 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 20 | .highlight .kc { color: #8B008B; font-weight: bold } /* Keyword.Constant */ 21 | .highlight .kd { color: #8B008B; font-weight: bold } /* Keyword.Declaration */ 22 | .highlight .kn { color: #8B008B; font-weight: bold } /* Keyword.Namespace */ 23 | .highlight .kp { color: #8B008B; font-weight: bold } /* Keyword.Pseudo */ 24 | .highlight .kr { color: #8B008B; font-weight: bold } /* Keyword.Reserved */ 25 | .highlight .kt { color: #a7a7a7; font-weight: bold } /* Keyword.Type */ 26 | .highlight .m { color: #B452CD } /* Literal.Number */ 27 | .highlight .s { color: #CD5555 } /* Literal.String */ 28 | .highlight .na { color: #658b00 } /* Name.Attribute */ 29 | .highlight .nb { color: #658b00 } /* Name.Builtin */ 30 | .highlight .nc { color: #008b45; font-weight: bold } /* Name.Class */ 31 | .highlight .no { color: #00688B } /* Name.Constant */ 32 | .highlight .nd { color: #707a7c } /* Name.Decorator */ 33 | .highlight .ne { color: #008b45; font-weight: bold } /* Name.Exception */ 34 | .highlight .nf { color: #008b45 } /* Name.Function */ 35 | .highlight .nn { color: #008b45; text-decoration: underline } /* Name.Namespace */ 36 | .highlight .nt { color: #8B008B; font-weight: bold } /* Name.Tag */ 37 | .highlight .nv { color: #00688B } /* Name.Variable */ 38 | .highlight .ow { color: #8B008B } /* Operator.Word */ 39 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 40 | .highlight .mf { color: #B452CD } /* Literal.Number.Float */ 41 | .highlight .mh { color: #B452CD } /* Literal.Number.Hex */ 42 | .highlight .mi { color: #B452CD } /* Literal.Number.Integer */ 43 | .highlight .mo { color: #B452CD } /* Literal.Number.Oct */ 44 | .highlight .sb { color: #CD5555 } /* Literal.String.Backtick */ 45 | .highlight .sc { color: #CD5555 } /* Literal.String.Char */ 46 | .highlight .sd { color: #CD5555 } /* Literal.String.Doc */ 47 | .highlight .s2 { color: #CD5555 } /* Literal.String.Double */ 48 | .highlight .se { color: #CD5555 } /* Literal.String.Escape */ 49 | .highlight .sh { color: #1c7e71; font-style: italic } /* Literal.String.Heredoc */ 50 | .highlight .si { color: #CD5555 } /* Literal.String.Interpol */ 51 | .highlight .sx { color: #cb6c20 } /* Literal.String.Other */ 52 | .highlight .sr { color: #1c7e71 } /* Literal.String.Regex */ 53 | .highlight .s1 { color: #CD5555 } /* Literal.String.Single */ 54 | .highlight .ss { color: #CD5555 } /* Literal.String.Symbol */ 55 | .highlight .bp { color: #658b00 } /* Name.Builtin.Pseudo */ 56 | .highlight .vc { color: #00688B } /* Name.Variable.Class */ 57 | .highlight .vg { color: #00688B } /* Name.Variable.Global */ 58 | .highlight .vi { color: #00688B } /* Name.Variable.Instance */ 59 | .highlight .il { color: #B452CD } /* Literal.Number.Integer.Long */ 60 | -------------------------------------------------------------------------------- /static/css/pygment/trac.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #999988; font-style: italic } /* Comment */ 4 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 5 | .highlight .k { font-weight: bold } /* Keyword */ 6 | .highlight .o { font-weight: bold } /* Operator */ 7 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ 9 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ 11 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 14 | .highlight .gh { color: #999999 } /* Generic.Heading */ 15 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 16 | .highlight .go { color: #888888 } /* Generic.Output */ 17 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #aaaaaa } /* Generic.Subheading */ 20 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 21 | .highlight .kc { font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ 25 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #009999 } /* Literal.Number */ 28 | .highlight .s { color: #bb8844 } /* Literal.String */ 29 | .highlight .na { color: #008080 } /* Name.Attribute */ 30 | .highlight .nb { color: #999999 } /* Name.Builtin */ 31 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #008080 } /* Name.Constant */ 33 | .highlight .ni { color: #800080 } /* Name.Entity */ 34 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ 35 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ 36 | .highlight .nn { color: #555555 } /* Name.Namespace */ 37 | .highlight .nt { color: #000080 } /* Name.Tag */ 38 | .highlight .nv { color: #008080 } /* Name.Variable */ 39 | .highlight .ow { font-weight: bold } /* Operator.Word */ 40 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 41 | .highlight .mf { color: #009999 } /* Literal.Number.Float */ 42 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */ 43 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */ 44 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */ 45 | .highlight .sb { color: #bb8844 } /* Literal.String.Backtick */ 46 | .highlight .sc { color: #bb8844 } /* Literal.String.Char */ 47 | .highlight .sd { color: #bb8844 } /* Literal.String.Doc */ 48 | .highlight .s2 { color: #bb8844 } /* Literal.String.Double */ 49 | .highlight .se { color: #bb8844 } /* Literal.String.Escape */ 50 | .highlight .sh { color: #bb8844 } /* Literal.String.Heredoc */ 51 | .highlight .si { color: #bb8844 } /* Literal.String.Interpol */ 52 | .highlight .sx { color: #bb8844 } /* Literal.String.Other */ 53 | .highlight .sr { color: #808000 } /* Literal.String.Regex */ 54 | .highlight .s1 { color: #bb8844 } /* Literal.String.Single */ 55 | .highlight .ss { color: #bb8844 } /* Literal.String.Symbol */ 56 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ 57 | .highlight .vc { color: #008080 } /* Name.Variable.Class */ 58 | .highlight .vg { color: #008080 } /* Name.Variable.Global */ 59 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */ 60 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ 61 | -------------------------------------------------------------------------------- /static/css/pygment/default.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f8f8f8; } 3 | .highlight .c { color: #408080; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #008000; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #BC7A00 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ 11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 16 | .highlight .go { color: #888888 } /* Generic.Output */ 17 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 21 | .highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #008000 } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #B00040 } /* Keyword.Type */ 27 | .highlight .m { color: #666666 } /* Literal.Number */ 28 | .highlight .s { color: #BA2121 } /* Literal.String */ 29 | .highlight .na { color: #7D9029 } /* Name.Attribute */ 30 | .highlight .nb { color: #008000 } /* Name.Builtin */ 31 | .highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #880000 } /* Name.Constant */ 33 | .highlight .nd { color: #AA22FF } /* Name.Decorator */ 34 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #0000FF } /* Name.Function */ 37 | .highlight .nl { color: #A0A000 } /* Name.Label */ 38 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ 40 | .highlight .nv { color: #19177C } /* Name.Variable */ 41 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #666666 } /* Literal.Number.Float */ 44 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */ 47 | .highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #BA2121 } /* Literal.String.Char */ 49 | .highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ 50 | .highlight .s2 { color: #BA2121 } /* Literal.String.Double */ 51 | .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ 52 | .highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ 53 | .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #008000 } /* Literal.String.Other */ 55 | .highlight .sr { color: #BB6688 } /* Literal.String.Regex */ 56 | .highlight .s1 { color: #BA2121 } /* Literal.String.Single */ 57 | .highlight .ss { color: #19177C } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #19177C } /* Name.Variable.Class */ 60 | .highlight .vg { color: #19177C } /* Name.Variable.Global */ 61 | .highlight .vi { color: #19177C } /* Name.Variable.Instance */ 62 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ 63 | -------------------------------------------------------------------------------- /static/css/pygment/emacs.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f8f8f8; } 3 | .highlight .c { color: #008800; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #AA22FF; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .cm { color: #008800; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #008800 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #008800; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #008800; font-weight: bold } /* Comment.Special */ 11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 16 | .highlight .go { color: #888888 } /* Generic.Output */ 17 | .highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 21 | .highlight .kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #AA22FF; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #AA22FF } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #00BB00; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #666666 } /* Literal.Number */ 28 | .highlight .s { color: #BB4444 } /* Literal.String */ 29 | .highlight .na { color: #BB4444 } /* Name.Attribute */ 30 | .highlight .nb { color: #AA22FF } /* Name.Builtin */ 31 | .highlight .nc { color: #0000FF } /* Name.Class */ 32 | .highlight .no { color: #880000 } /* Name.Constant */ 33 | .highlight .nd { color: #AA22FF } /* Name.Decorator */ 34 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #00A000 } /* Name.Function */ 37 | .highlight .nl { color: #A0A000 } /* Name.Label */ 38 | .highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ 40 | .highlight .nv { color: #B8860B } /* Name.Variable */ 41 | .highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #666666 } /* Literal.Number.Float */ 44 | .highlight .mh { color: #666666 } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #666666 } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #666666 } /* Literal.Number.Oct */ 47 | .highlight .sb { color: #BB4444 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #BB4444 } /* Literal.String.Char */ 49 | .highlight .sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */ 50 | .highlight .s2 { color: #BB4444 } /* Literal.String.Double */ 51 | .highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ 52 | .highlight .sh { color: #BB4444 } /* Literal.String.Heredoc */ 53 | .highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #008000 } /* Literal.String.Other */ 55 | .highlight .sr { color: #BB6688 } /* Literal.String.Regex */ 56 | .highlight .s1 { color: #BB4444 } /* Literal.String.Single */ 57 | .highlight .ss { color: #B8860B } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #AA22FF } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #B8860B } /* Name.Variable.Class */ 60 | .highlight .vg { color: #B8860B } /* Name.Variable.Global */ 61 | .highlight .vi { color: #B8860B } /* Name.Variable.Instance */ 62 | .highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ 63 | -------------------------------------------------------------------------------- /static/css/pygment/friendly.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f0f0f0; } 3 | .highlight .c { color: #60a0b0; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #007020 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ 11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 16 | .highlight .go { color: #888888 } /* Generic.Output */ 17 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 21 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #902000 } /* Keyword.Type */ 27 | .highlight .m { color: #40a070 } /* Literal.Number */ 28 | .highlight .s { color: #4070a0 } /* Literal.String */ 29 | .highlight .na { color: #4070a0 } /* Name.Attribute */ 30 | .highlight .nb { color: #007020 } /* Name.Builtin */ 31 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #60add5 } /* Name.Constant */ 33 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 34 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #007020 } /* Name.Exception */ 36 | .highlight .nf { color: #06287e } /* Name.Function */ 37 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ 38 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ 40 | .highlight .nv { color: #bb60d5 } /* Name.Variable */ 41 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #40a070 } /* Literal.Number.Float */ 44 | .highlight .mh { color: #40a070 } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #40a070 } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #40a070 } /* Literal.Number.Oct */ 47 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */ 49 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 50 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ 51 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 52 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ 53 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */ 55 | .highlight .sr { color: #235388 } /* Literal.String.Regex */ 56 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ 57 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ 60 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ 61 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ 62 | .highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ 63 | -------------------------------------------------------------------------------- /static/css/pygment.css: -------------------------------------------------------------------------------- 1 | .highlight { 2 | /*background: #f2f2f2; 3 | border: 1px solid #d7d7d7; 4 | margin: 1em; 5 | padding: 0.5em;*/ 6 | } 7 | .highlight .hll { background-color: #ffffcc } 8 | .highlight .c { color: #408090; font-style: italic } /* Comment */ 9 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 10 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */ 11 | .highlight .o { color: #666666 } /* Operator */ 12 | .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ 13 | .highlight .cp { color: #007020 } /* Comment.Preproc */ 14 | .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ 15 | .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ 16 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 17 | .highlight .ge { font-style: italic } /* Generic.Emph */ 18 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 19 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 20 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 21 | .highlight .go { color: #303030 } /* Generic.Output */ 22 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 23 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 24 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 25 | .highlight .gt { color: #0040D0 } /* Generic.Traceback */ 26 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 27 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 28 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 29 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */ 30 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 31 | .highlight .kt { color: #902000 } /* Keyword.Type */ 32 | .highlight .m { color: #208050 } /* Literal.Number */ 33 | .highlight .s { color: #4070a0 } /* Literal.String */ 34 | .highlight .na { color: #4070a0 } /* Name.Attribute */ 35 | .highlight .nb { color: #007020 } /* Name.Builtin */ 36 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 37 | .highlight .no { color: #60add5 } /* Name.Constant */ 38 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 39 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 40 | .highlight .ne { color: #007020 } /* Name.Exception */ 41 | .highlight .nf { color: #06287e } /* Name.Function */ 42 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ 43 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 44 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ 45 | .highlight .nv { color: #bb60d5 } /* Name.Variable */ 46 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ 47 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 48 | .highlight .mf { color: #208050 } /* Literal.Number.Float */ 49 | .highlight .mh { color: #208050 } /* Literal.Number.Hex */ 50 | .highlight .mi { color: #208050 } /* Literal.Number.Integer */ 51 | .highlight .mo { color: #208050 } /* Literal.Number.Oct */ 52 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ 53 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */ 54 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 55 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ 56 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 57 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ 58 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 59 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */ 60 | .highlight .sr { color: #235388 } /* Literal.String.Regex */ 61 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ 62 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */ 63 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 64 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ 65 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ 66 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ 67 | .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /static/css/pygment/manni.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f0f3f3; } 3 | .highlight .c { color: #0099FF; font-style: italic } /* Comment */ 4 | .highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */ 5 | .highlight .k { color: #006699; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #555555 } /* Operator */ 7 | .highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #009999 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */ 11 | .highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */ 16 | .highlight .go { color: #AAAAAA } /* Generic.Output */ 17 | .highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #99CC66 } /* Generic.Traceback */ 21 | .highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #006699 } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #FF6600 } /* Literal.Number */ 28 | .highlight .s { color: #CC3300 } /* Literal.String */ 29 | .highlight .na { color: #330099 } /* Name.Attribute */ 30 | .highlight .nb { color: #336666 } /* Name.Builtin */ 31 | .highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #336600 } /* Name.Constant */ 33 | .highlight .nd { color: #9999FF } /* Name.Decorator */ 34 | .highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #CC00FF } /* Name.Function */ 37 | .highlight .nl { color: #9999FF } /* Name.Label */ 38 | .highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */ 40 | .highlight .nv { color: #003333 } /* Name.Variable */ 41 | .highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #FF6600 } /* Literal.Number.Float */ 44 | .highlight .mh { color: #FF6600 } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #FF6600 } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #FF6600 } /* Literal.Number.Oct */ 47 | .highlight .sb { color: #CC3300 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #CC3300 } /* Literal.String.Char */ 49 | .highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */ 50 | .highlight .s2 { color: #CC3300 } /* Literal.String.Double */ 51 | .highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */ 52 | .highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */ 53 | .highlight .si { color: #AA0000 } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #CC3300 } /* Literal.String.Other */ 55 | .highlight .sr { color: #33AAAA } /* Literal.String.Regex */ 56 | .highlight .s1 { color: #CC3300 } /* Literal.String.Single */ 57 | .highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #003333 } /* Name.Variable.Class */ 60 | .highlight .vg { color: #003333 } /* Name.Variable.Global */ 61 | .highlight .vi { color: #003333 } /* Name.Variable.Instance */ 62 | .highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */ 63 | -------------------------------------------------------------------------------- /static/css/pygment/colorful.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #888888 } /* Comment */ 4 | .highlight .err { color: #FF0000; background-color: #FFAAAA } /* Error */ 5 | .highlight .k { color: #008800; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #333333 } /* Operator */ 7 | .highlight .cm { color: #888888 } /* Comment.Multiline */ 8 | .highlight .cp { color: #557799 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #888888 } /* Comment.Single */ 10 | .highlight .cs { color: #cc0000; font-weight: bold } /* Comment.Special */ 11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 16 | .highlight .go { color: #888888 } /* Generic.Output */ 17 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 21 | .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #003388; font-weight: bold } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #333399; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #6600EE; font-weight: bold } /* Literal.Number */ 28 | .highlight .s { background-color: #fff0f0 } /* Literal.String */ 29 | .highlight .na { color: #0000CC } /* Name.Attribute */ 30 | .highlight .nb { color: #007020 } /* Name.Builtin */ 31 | .highlight .nc { color: #BB0066; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ 33 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 34 | .highlight .ni { color: #880000; font-weight: bold } /* Name.Entity */ 35 | .highlight .ne { color: #FF0000; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #0066BB; font-weight: bold } /* Name.Function */ 37 | .highlight .nl { color: #997700; font-weight: bold } /* Name.Label */ 38 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #007700 } /* Name.Tag */ 40 | .highlight .nv { color: #996633 } /* Name.Variable */ 41 | .highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #6600EE; font-weight: bold } /* Literal.Number.Float */ 44 | .highlight .mh { color: #005588; font-weight: bold } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #4400EE; font-weight: bold } /* Literal.Number.Oct */ 47 | .highlight .sb { background-color: #fff0f0 } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #0044DD } /* Literal.String.Char */ 49 | .highlight .sd { color: #DD4422 } /* Literal.String.Doc */ 50 | .highlight .s2 { background-color: #fff0f0 } /* Literal.String.Double */ 51 | .highlight .se { color: #666666; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */ 52 | .highlight .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ 53 | .highlight .si { background-color: #eeeeee } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #DD2200; background-color: #fff0f0 } /* Literal.String.Other */ 55 | .highlight .sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */ 56 | .highlight .s1 { background-color: #fff0f0 } /* Literal.String.Single */ 57 | .highlight .ss { color: #AA6600 } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #336699 } /* Name.Variable.Class */ 60 | .highlight .vg { color: #dd7700; font-weight: bold } /* Name.Variable.Global */ 61 | .highlight .vi { color: #3333BB } /* Name.Variable.Instance */ 62 | .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ 63 | -------------------------------------------------------------------------------- /static/css/pygment/murphy.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #666666; font-style: italic } /* Comment */ 4 | .highlight .err { color: #FF0000; background-color: #FFAAAA } /* Error */ 5 | .highlight .k { color: #228899; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #333333 } /* Operator */ 7 | .highlight .cm { color: #666666; font-style: italic } /* Comment.Multiline */ 8 | .highlight .cp { color: #557799 } /* Comment.Preproc */ 9 | .highlight .c1 { color: #666666; font-style: italic } /* Comment.Single */ 10 | .highlight .cs { color: #cc0000; font-weight: bold; font-style: italic } /* Comment.Special */ 11 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 14 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 15 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 16 | .highlight .go { color: #888888 } /* Generic.Output */ 17 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 18 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 19 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 20 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 21 | .highlight .kc { color: #228899; font-weight: bold } /* Keyword.Constant */ 22 | .highlight .kd { color: #228899; font-weight: bold } /* Keyword.Declaration */ 23 | .highlight .kn { color: #228899; font-weight: bold } /* Keyword.Namespace */ 24 | .highlight .kp { color: #0088ff; font-weight: bold } /* Keyword.Pseudo */ 25 | .highlight .kr { color: #228899; font-weight: bold } /* Keyword.Reserved */ 26 | .highlight .kt { color: #6666ff; font-weight: bold } /* Keyword.Type */ 27 | .highlight .m { color: #6600EE; font-weight: bold } /* Literal.Number */ 28 | .highlight .s { background-color: #e0e0ff } /* Literal.String */ 29 | .highlight .na { color: #000077 } /* Name.Attribute */ 30 | .highlight .nb { color: #007722 } /* Name.Builtin */ 31 | .highlight .nc { color: #ee99ee; font-weight: bold } /* Name.Class */ 32 | .highlight .no { color: #55eedd; font-weight: bold } /* Name.Constant */ 33 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 34 | .highlight .ni { color: #880000 } /* Name.Entity */ 35 | .highlight .ne { color: #FF0000; font-weight: bold } /* Name.Exception */ 36 | .highlight .nf { color: #55eedd; font-weight: bold } /* Name.Function */ 37 | .highlight .nl { color: #997700; font-weight: bold } /* Name.Label */ 38 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 39 | .highlight .nt { color: #007700 } /* Name.Tag */ 40 | .highlight .nv { color: #003366 } /* Name.Variable */ 41 | .highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ 42 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 43 | .highlight .mf { color: #6600EE; font-weight: bold } /* Literal.Number.Float */ 44 | .highlight .mh { color: #005588; font-weight: bold } /* Literal.Number.Hex */ 45 | .highlight .mi { color: #6666ff; font-weight: bold } /* Literal.Number.Integer */ 46 | .highlight .mo { color: #4400EE; font-weight: bold } /* Literal.Number.Oct */ 47 | .highlight .sb { background-color: #e0e0ff } /* Literal.String.Backtick */ 48 | .highlight .sc { color: #8888FF } /* Literal.String.Char */ 49 | .highlight .sd { color: #DD4422 } /* Literal.String.Doc */ 50 | .highlight .s2 { background-color: #e0e0ff } /* Literal.String.Double */ 51 | .highlight .se { color: #666666; font-weight: bold; background-color: #e0e0ff } /* Literal.String.Escape */ 52 | .highlight .sh { background-color: #e0e0ff } /* Literal.String.Heredoc */ 53 | .highlight .si { background-color: #eeeeee } /* Literal.String.Interpol */ 54 | .highlight .sx { color: #ff8888; background-color: #e0e0ff } /* Literal.String.Other */ 55 | .highlight .sr { color: #000000; background-color: #e0e0ff } /* Literal.String.Regex */ 56 | .highlight .s1 { background-color: #e0e0ff } /* Literal.String.Single */ 57 | .highlight .ss { color: #ffcc88 } /* Literal.String.Symbol */ 58 | .highlight .bp { color: #007722 } /* Name.Builtin.Pseudo */ 59 | .highlight .vc { color: #ccccff } /* Name.Variable.Class */ 60 | .highlight .vg { color: #ff8844 } /* Name.Variable.Global */ 61 | .highlight .vi { color: #aaaaff } /* Name.Variable.Instance */ 62 | .highlight .il { color: #6666ff; font-weight: bold } /* Literal.Number.Integer.Long */ 63 | -------------------------------------------------------------------------------- /static/css/pygment/pastie.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #888888 } /* Comment */ 4 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 5 | .highlight .k { color: #008800; font-weight: bold } /* Keyword */ 6 | .highlight .cm { color: #888888 } /* Comment.Multiline */ 7 | .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ 8 | .highlight .c1 { color: #888888 } /* Comment.Single */ 9 | .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ 10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 11 | .highlight .ge { font-style: italic } /* Generic.Emph */ 12 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 13 | .highlight .gh { color: #333333 } /* Generic.Heading */ 14 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 15 | .highlight .go { color: #888888 } /* Generic.Output */ 16 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 17 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 18 | .highlight .gu { color: #666666 } /* Generic.Subheading */ 19 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 20 | .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ 21 | .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ 22 | .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ 23 | .highlight .kp { color: #008800 } /* Keyword.Pseudo */ 24 | .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ 25 | .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ 26 | .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ 27 | .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ 28 | .highlight .na { color: #336699 } /* Name.Attribute */ 29 | .highlight .nb { color: #003388 } /* Name.Builtin */ 30 | .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ 31 | .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ 32 | .highlight .nd { color: #555555 } /* Name.Decorator */ 33 | .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ 34 | .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ 35 | .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ 36 | .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ 37 | .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ 38 | .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ 39 | .highlight .nv { color: #336699 } /* Name.Variable */ 40 | .highlight .ow { color: #008800 } /* Operator.Word */ 41 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 42 | .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ 43 | .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ 44 | .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ 45 | .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ 46 | .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ 47 | .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ 48 | .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ 49 | .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ 50 | .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ 51 | .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ 52 | .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ 53 | .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ 54 | .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ 55 | .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ 56 | .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ 57 | .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ 58 | .highlight .vc { color: #336699 } /* Name.Variable.Class */ 59 | .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ 60 | .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ 61 | .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ 62 | -------------------------------------------------------------------------------- /static/css/pygment/native.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #404040 } 2 | .highlight { background: #202020; color: #d0d0d0 } 3 | .highlight .c { color: #999999; font-style: italic } /* Comment */ 4 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 5 | .highlight .g { color: #d0d0d0 } /* Generic */ 6 | .highlight .k { color: #6ab825; font-weight: bold } /* Keyword */ 7 | .highlight .l { color: #d0d0d0 } /* Literal */ 8 | .highlight .n { color: #d0d0d0 } /* Name */ 9 | .highlight .o { color: #d0d0d0 } /* Operator */ 10 | .highlight .x { color: #d0d0d0 } /* Other */ 11 | .highlight .p { color: #d0d0d0 } /* Punctuation */ 12 | .highlight .cm { color: #999999; font-style: italic } /* Comment.Multiline */ 13 | .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ 14 | .highlight .c1 { color: #999999; font-style: italic } /* Comment.Single */ 15 | .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ 16 | .highlight .gd { color: #d22323 } /* Generic.Deleted */ 17 | .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ 18 | .highlight .gr { color: #d22323 } /* Generic.Error */ 19 | .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ 20 | .highlight .gi { color: #589819 } /* Generic.Inserted */ 21 | .highlight .go { color: #cccccc } /* Generic.Output */ 22 | .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ 23 | .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ 24 | .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ 25 | .highlight .gt { color: #d22323 } /* Generic.Traceback */ 26 | .highlight .kc { color: #6ab825; font-weight: bold } /* Keyword.Constant */ 27 | .highlight .kd { color: #6ab825; font-weight: bold } /* Keyword.Declaration */ 28 | .highlight .kn { color: #6ab825; font-weight: bold } /* Keyword.Namespace */ 29 | .highlight .kp { color: #6ab825 } /* Keyword.Pseudo */ 30 | .highlight .kr { color: #6ab825; font-weight: bold } /* Keyword.Reserved */ 31 | .highlight .kt { color: #6ab825; font-weight: bold } /* Keyword.Type */ 32 | .highlight .ld { color: #d0d0d0 } /* Literal.Date */ 33 | .highlight .m { color: #3677a9 } /* Literal.Number */ 34 | .highlight .s { color: #ed9d13 } /* Literal.String */ 35 | .highlight .na { color: #bbbbbb } /* Name.Attribute */ 36 | .highlight .nb { color: #24909d } /* Name.Builtin */ 37 | .highlight .nc { color: #447fcf; text-decoration: underline } /* Name.Class */ 38 | .highlight .no { color: #40ffff } /* Name.Constant */ 39 | .highlight .nd { color: #ffa500 } /* Name.Decorator */ 40 | .highlight .ni { color: #d0d0d0 } /* Name.Entity */ 41 | .highlight .ne { color: #bbbbbb } /* Name.Exception */ 42 | .highlight .nf { color: #447fcf } /* Name.Function */ 43 | .highlight .nl { color: #d0d0d0 } /* Name.Label */ 44 | .highlight .nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */ 45 | .highlight .nx { color: #d0d0d0 } /* Name.Other */ 46 | .highlight .py { color: #d0d0d0 } /* Name.Property */ 47 | .highlight .nt { color: #6ab825; font-weight: bold } /* Name.Tag */ 48 | .highlight .nv { color: #40ffff } /* Name.Variable */ 49 | .highlight .ow { color: #6ab825; font-weight: bold } /* Operator.Word */ 50 | .highlight .w { color: #666666 } /* Text.Whitespace */ 51 | .highlight .mf { color: #3677a9 } /* Literal.Number.Float */ 52 | .highlight .mh { color: #3677a9 } /* Literal.Number.Hex */ 53 | .highlight .mi { color: #3677a9 } /* Literal.Number.Integer */ 54 | .highlight .mo { color: #3677a9 } /* Literal.Number.Oct */ 55 | .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ 56 | .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ 57 | .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ 58 | .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ 59 | .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ 60 | .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ 61 | .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ 62 | .highlight .sx { color: #ffa500 } /* Literal.String.Other */ 63 | .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ 64 | .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ 65 | .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ 66 | .highlight .bp { color: #24909d } /* Name.Builtin.Pseudo */ 67 | .highlight .vc { color: #40ffff } /* Name.Variable.Class */ 68 | .highlight .vg { color: #40ffff } /* Name.Variable.Global */ 69 | .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ 70 | .highlight .il { color: #3677a9 } /* Literal.Number.Integer.Long */ 71 | -------------------------------------------------------------------------------- /static/css/pygment/fruity.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #333333 } 2 | .highlight { background: #111111; color: #ffffff } 3 | .highlight .c { color: #008800; font-style: italic; background-color: #0f140f } /* Comment */ 4 | .highlight .err { color: #ffffff } /* Error */ 5 | .highlight .g { color: #ffffff } /* Generic */ 6 | .highlight .k { color: #fb660a; font-weight: bold } /* Keyword */ 7 | .highlight .l { color: #ffffff } /* Literal */ 8 | .highlight .n { color: #ffffff } /* Name */ 9 | .highlight .o { color: #ffffff } /* Operator */ 10 | .highlight .x { color: #ffffff } /* Other */ 11 | .highlight .p { color: #ffffff } /* Punctuation */ 12 | .highlight .cm { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Multiline */ 13 | .highlight .cp { color: #ff0007; font-weight: bold; font-style: italic; background-color: #0f140f } /* Comment.Preproc */ 14 | .highlight .c1 { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Single */ 15 | .highlight .cs { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Special */ 16 | .highlight .gd { color: #ffffff } /* Generic.Deleted */ 17 | .highlight .ge { color: #ffffff } /* Generic.Emph */ 18 | .highlight .gr { color: #ffffff } /* Generic.Error */ 19 | .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ 20 | .highlight .gi { color: #ffffff } /* Generic.Inserted */ 21 | .highlight .go { color: #444444; background-color: #222222 } /* Generic.Output */ 22 | .highlight .gp { color: #ffffff } /* Generic.Prompt */ 23 | .highlight .gs { color: #ffffff } /* Generic.Strong */ 24 | .highlight .gu { color: #ffffff; font-weight: bold } /* Generic.Subheading */ 25 | .highlight .gt { color: #ffffff } /* Generic.Traceback */ 26 | .highlight .kc { color: #fb660a; font-weight: bold } /* Keyword.Constant */ 27 | .highlight .kd { color: #fb660a; font-weight: bold } /* Keyword.Declaration */ 28 | .highlight .kn { color: #fb660a; font-weight: bold } /* Keyword.Namespace */ 29 | .highlight .kp { color: #fb660a } /* Keyword.Pseudo */ 30 | .highlight .kr { color: #fb660a; font-weight: bold } /* Keyword.Reserved */ 31 | .highlight .kt { color: #cdcaa9; font-weight: bold } /* Keyword.Type */ 32 | .highlight .ld { color: #ffffff } /* Literal.Date */ 33 | .highlight .m { color: #0086f7; font-weight: bold } /* Literal.Number */ 34 | .highlight .s { color: #0086d2 } /* Literal.String */ 35 | .highlight .na { color: #ff0086; font-weight: bold } /* Name.Attribute */ 36 | .highlight .nb { color: #ffffff } /* Name.Builtin */ 37 | .highlight .nc { color: #ffffff } /* Name.Class */ 38 | .highlight .no { color: #0086d2 } /* Name.Constant */ 39 | .highlight .nd { color: #ffffff } /* Name.Decorator */ 40 | .highlight .ni { color: #ffffff } /* Name.Entity */ 41 | .highlight .ne { color: #ffffff } /* Name.Exception */ 42 | .highlight .nf { color: #ff0086; font-weight: bold } /* Name.Function */ 43 | .highlight .nl { color: #ffffff } /* Name.Label */ 44 | .highlight .nn { color: #ffffff } /* Name.Namespace */ 45 | .highlight .nx { color: #ffffff } /* Name.Other */ 46 | .highlight .py { color: #ffffff } /* Name.Property */ 47 | .highlight .nt { color: #fb660a; font-weight: bold } /* Name.Tag */ 48 | .highlight .nv { color: #fb660a } /* Name.Variable */ 49 | .highlight .ow { color: #ffffff } /* Operator.Word */ 50 | .highlight .w { color: #888888 } /* Text.Whitespace */ 51 | .highlight .mf { color: #0086f7; font-weight: bold } /* Literal.Number.Float */ 52 | .highlight .mh { color: #0086f7; font-weight: bold } /* Literal.Number.Hex */ 53 | .highlight .mi { color: #0086f7; font-weight: bold } /* Literal.Number.Integer */ 54 | .highlight .mo { color: #0086f7; font-weight: bold } /* Literal.Number.Oct */ 55 | .highlight .sb { color: #0086d2 } /* Literal.String.Backtick */ 56 | .highlight .sc { color: #0086d2 } /* Literal.String.Char */ 57 | .highlight .sd { color: #0086d2 } /* Literal.String.Doc */ 58 | .highlight .s2 { color: #0086d2 } /* Literal.String.Double */ 59 | .highlight .se { color: #0086d2 } /* Literal.String.Escape */ 60 | .highlight .sh { color: #0086d2 } /* Literal.String.Heredoc */ 61 | .highlight .si { color: #0086d2 } /* Literal.String.Interpol */ 62 | .highlight .sx { color: #0086d2 } /* Literal.String.Other */ 63 | .highlight .sr { color: #0086d2 } /* Literal.String.Regex */ 64 | .highlight .s1 { color: #0086d2 } /* Literal.String.Single */ 65 | .highlight .ss { color: #0086d2 } /* Literal.String.Symbol */ 66 | .highlight .bp { color: #ffffff } /* Name.Builtin.Pseudo */ 67 | .highlight .vc { color: #fb660a } /* Name.Variable.Class */ 68 | .highlight .vg { color: #fb660a } /* Name.Variable.Global */ 69 | .highlight .vi { color: #fb660a } /* Name.Variable.Instance */ 70 | .highlight .il { color: #0086f7; font-weight: bold } /* Literal.Number.Integer.Long */ 71 | -------------------------------------------------------------------------------- /static/css/pygment/tango.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #f8f8f8; } 3 | .highlight .c { color: #8f5902; font-style: italic } /* Comment */ 4 | .highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ 5 | .highlight .g { color: #000000 } /* Generic */ 6 | .highlight .k { color: #204a87; font-weight: bold } /* Keyword */ 7 | .highlight .l { color: #000000 } /* Literal */ 8 | .highlight .n { color: #000000 } /* Name */ 9 | .highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ 10 | .highlight .x { color: #000000 } /* Other */ 11 | .highlight .p { color: #000000; font-weight: bold } /* Punctuation */ 12 | .highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ 13 | .highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ 14 | .highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ 15 | .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ 16 | .highlight .gd { color: #a40000 } /* Generic.Deleted */ 17 | .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ 18 | .highlight .gr { color: #ef2929 } /* Generic.Error */ 19 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 20 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 21 | .highlight .go { color: #000000; font-style: italic } /* Generic.Output */ 22 | .highlight .gp { color: #8f5902 } /* Generic.Prompt */ 23 | .highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ 24 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 25 | .highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ 26 | .highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ 27 | .highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ 28 | .highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ 29 | .highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ 30 | .highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ 31 | .highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ 32 | .highlight .ld { color: #000000 } /* Literal.Date */ 33 | .highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ 34 | .highlight .s { color: #4e9a06 } /* Literal.String */ 35 | .highlight .na { color: #c4a000 } /* Name.Attribute */ 36 | .highlight .nb { color: #204a87 } /* Name.Builtin */ 37 | .highlight .nc { color: #000000 } /* Name.Class */ 38 | .highlight .no { color: #000000 } /* Name.Constant */ 39 | .highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ 40 | .highlight .ni { color: #ce5c00 } /* Name.Entity */ 41 | .highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ 42 | .highlight .nf { color: #000000 } /* Name.Function */ 43 | .highlight .nl { color: #f57900 } /* Name.Label */ 44 | .highlight .nn { color: #000000 } /* Name.Namespace */ 45 | .highlight .nx { color: #000000 } /* Name.Other */ 46 | .highlight .py { color: #000000 } /* Name.Property */ 47 | .highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ 48 | .highlight .nv { color: #000000 } /* Name.Variable */ 49 | .highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ 50 | .highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ 51 | .highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ 52 | .highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ 53 | .highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ 54 | .highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ 55 | .highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ 56 | .highlight .sc { color: #4e9a06 } /* Literal.String.Char */ 57 | .highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ 58 | .highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ 59 | .highlight .se { color: #4e9a06 } /* Literal.String.Escape */ 60 | .highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ 61 | .highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ 62 | .highlight .sx { color: #4e9a06 } /* Literal.String.Other */ 63 | .highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ 64 | .highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ 65 | .highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ 66 | .highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ 67 | .highlight .vc { color: #000000 } /* Name.Variable.Class */ 68 | .highlight .vg { color: #000000 } /* Name.Variable.Global */ 69 | .highlight .vi { color: #000000 } /* Name.Variable.Instance */ 70 | .highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ 71 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.magellan.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.magellan = { 5 | name : 'magellan', 6 | 7 | version : '5.0.0', 8 | 9 | settings : { 10 | active_class: 'active', 11 | threshold: 0 12 | }, 13 | 14 | init : function (scope, method, options) { 15 | this.fixed_magellan = $("[data-magellan-expedition]"); 16 | this.set_threshold(); 17 | this.last_destination = $('[data-magellan-destination]').last(); 18 | this.events(); 19 | }, 20 | 21 | events : function () { 22 | var self = this; 23 | 24 | $(this.scope) 25 | .off('.magellan') 26 | .on('arrival.fndtn.magellan', '[data-magellan-arrival]', function (e) { 27 | var $destination = $(this), 28 | $expedition = $destination.closest('[data-magellan-expedition]'), 29 | active_class = $expedition.attr('data-magellan-active-class') 30 | || self.settings.active_class; 31 | 32 | $destination 33 | .closest('[data-magellan-expedition]') 34 | .find('[data-magellan-arrival]') 35 | .not($destination) 36 | .removeClass(active_class); 37 | $destination.addClass(active_class); 38 | }); 39 | 40 | this.fixed_magellan 41 | .off('.magellan') 42 | .on('update-position.fndtn.magellan', function() { 43 | var $el = $(this); 44 | }) 45 | .trigger('update-position'); 46 | 47 | $(window) 48 | .off('.magellan') 49 | .on('resize.fndtn.magellan', function() { 50 | this.fixed_magellan.trigger('update-position'); 51 | }.bind(this)) 52 | .on('scroll.fndtn.magellan', function() { 53 | var windowScrollTop = $(window).scrollTop(); 54 | self.fixed_magellan.each(function() { 55 | var $expedition = $(this); 56 | if (typeof $expedition.data('magellan-top-offset') === 'undefined') { 57 | $expedition.data('magellan-top-offset', $expedition.offset().top); 58 | } 59 | if (typeof $expedition.data('magellan-fixed-position') === 'undefined') { 60 | $expedition.data('magellan-fixed-position', false); 61 | } 62 | var fixed_position = (windowScrollTop + self.settings.threshold) > $expedition.data("magellan-top-offset"); 63 | var attr = $expedition.attr('data-magellan-top-offset'); 64 | 65 | if ($expedition.data("magellan-fixed-position") != fixed_position) { 66 | $expedition.data("magellan-fixed-position", fixed_position); 67 | if (fixed_position) { 68 | $expedition.addClass('fixed'); 69 | $expedition.css({position:"fixed", top:0}); 70 | } else { 71 | $expedition.removeClass('fixed'); 72 | $expedition.css({position:"", top:""}); 73 | } 74 | if (fixed_position && typeof attr != 'undefined' && attr != false) { 75 | $expedition.css({position:"fixed", top:attr + "px"}); 76 | } 77 | } 78 | }); 79 | }); 80 | 81 | 82 | if (this.last_destination.length > 0) { 83 | $(window).on('scroll.fndtn.magellan', function (e) { 84 | var windowScrollTop = $(window).scrollTop(), 85 | scrolltopPlusHeight = windowScrollTop + $(window).height(), 86 | lastDestinationTop = Math.ceil(self.last_destination.offset().top); 87 | 88 | $('[data-magellan-destination]').each(function () { 89 | var $destination = $(this), 90 | destination_name = $destination.attr('data-magellan-destination'), 91 | topOffset = $destination.offset().top - $destination.outerHeight(true) - windowScrollTop; 92 | if (topOffset <= self.settings.threshold) { 93 | $("[data-magellan-arrival='" + destination_name + "']").trigger('arrival'); 94 | } 95 | // In large screens we may hit the bottom of the page and dont reach the top of the last magellan-destination, so lets force it 96 | if (scrolltopPlusHeight >= $(self.scope).height() && lastDestinationTop > windowScrollTop && lastDestinationTop < scrolltopPlusHeight) { 97 | $('[data-magellan-arrival]').last().trigger('arrival'); 98 | } 99 | }); 100 | }); 101 | } 102 | }, 103 | 104 | set_threshold : function () { 105 | if (typeof this.settings.threshold !== 'number') { 106 | this.settings.threshold = (this.fixed_magellan.length > 0) ? 107 | this.fixed_magellan.outerHeight(true) : 0; 108 | } 109 | }, 110 | 111 | off : function () { 112 | $(this.scope).off('.fndtn.magellan'); 113 | $(window).off('.fndtn.magellan'); 114 | }, 115 | 116 | reflow : function () {} 117 | }; 118 | }(jQuery, this, this.document)); 119 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.dropdown.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.dropdown = { 5 | name : 'dropdown', 6 | 7 | version : '5.0.0', 8 | 9 | settings : { 10 | active_class: 'open', 11 | is_hover: false, 12 | opened: function(){}, 13 | closed: function(){} 14 | }, 15 | 16 | init : function (scope, method, options) { 17 | Foundation.inherit(this, 'throttle'); 18 | 19 | this.bindings(method, options); 20 | }, 21 | 22 | events : function (scope) { 23 | var self = this; 24 | 25 | $(this.scope) 26 | .off('.dropdown') 27 | .on('click.fndtn.dropdown', '[data-dropdown]', function (e) { 28 | var settings = $(this).data('dropdown-init'); 29 | e.preventDefault(); 30 | 31 | if (!settings.is_hover || Modernizr.touch) self.toggle($(this)); 32 | }) 33 | .on('mouseenter.fndtn.dropdown', '[data-dropdown], [data-dropdown-content]', function (e) { 34 | var $this = $(this); 35 | clearTimeout(self.timeout); 36 | 37 | if ($this.data('dropdown')) { 38 | var dropdown = $('#' + $this.data('dropdown')), 39 | target = $this; 40 | } else { 41 | var dropdown = $this; 42 | target = $("[data-dropdown='" + dropdown.attr('id') + "']"); 43 | } 44 | 45 | var settings = target.data('dropdown-init'); 46 | if (settings.is_hover) self.open.apply(self, [dropdown, target]); 47 | }) 48 | .on('mouseleave.fndtn.dropdown', '[data-dropdown], [data-dropdown-content]', function (e) { 49 | var $this = $(this); 50 | self.timeout = setTimeout(function () { 51 | if ($this.data('dropdown')) { 52 | var settings = $this.data('dropdown-init'); 53 | if (settings.is_hover) self.close.call(self, $('#' + $this.data('dropdown'))); 54 | } else { 55 | var target = $('[data-dropdown="' + $(this).attr('id') + '"]'), 56 | settings = target.data('dropdown-init'); 57 | if (settings.is_hover) self.close.call(self, $this); 58 | } 59 | }.bind(this), 150); 60 | }) 61 | .on('click.fndtn.dropdown', function (e) { 62 | var parent = $(e.target).closest('[data-dropdown-content]'); 63 | 64 | if ($(e.target).data('dropdown') || $(e.target).parent().data('dropdown')) { 65 | return; 66 | } 67 | if (!($(e.target).data('revealId')) && 68 | (parent.length > 0 && ($(e.target).is('[data-dropdown-content]') || 69 | $.contains(parent.first()[0], e.target)))) { 70 | e.stopPropagation(); 71 | return; 72 | } 73 | 74 | self.close.call(self, $('[data-dropdown-content]')); 75 | }) 76 | .on('opened.fndtn.dropdown', '[data-dropdown-content]', this.settings.opened) 77 | .on('closed.fndtn.dropdown', '[data-dropdown-content]', this.settings.closed); 78 | 79 | $(window) 80 | .off('.dropdown') 81 | .on('resize.fndtn.dropdown', self.throttle(function () { 82 | self.resize.call(self); 83 | }, 50)).trigger('resize'); 84 | }, 85 | 86 | close: function (dropdown) { 87 | var self = this; 88 | dropdown.each(function () { 89 | if ($(this).hasClass(self.settings.active_class)) { 90 | $(this) 91 | .css(Foundation.rtl ? 'right':'left', '-99999px') 92 | .removeClass(self.settings.active_class); 93 | $(this).trigger('closed'); 94 | } 95 | }); 96 | }, 97 | 98 | open: function (dropdown, target) { 99 | this 100 | .css(dropdown 101 | .addClass(this.settings.active_class), target); 102 | dropdown.trigger('opened'); 103 | }, 104 | 105 | toggle : function (target) { 106 | var dropdown = $('#' + target.data('dropdown')); 107 | if (dropdown.length === 0) { 108 | // No dropdown found, not continuing 109 | return; 110 | } 111 | 112 | this.close.call(this, $('[data-dropdown-content]').not(dropdown)); 113 | 114 | if (dropdown.hasClass(this.settings.active_class)) { 115 | this.close.call(this, dropdown); 116 | } else { 117 | this.close.call(this, $('[data-dropdown-content]')) 118 | this.open.call(this, dropdown, target); 119 | } 120 | }, 121 | 122 | resize : function () { 123 | var dropdown = $('[data-dropdown-content].open'), 124 | target = $("[data-dropdown='" + dropdown.attr('id') + "']"); 125 | 126 | if (dropdown.length && target.length) { 127 | this.css(dropdown, target); 128 | } 129 | }, 130 | 131 | css : function (dropdown, target) { 132 | var offset_parent = dropdown.offsetParent(), 133 | position = target.offset(); 134 | 135 | position.top -= offset_parent.offset().top; 136 | position.left -= offset_parent.offset().left; 137 | 138 | if (this.small()) { 139 | dropdown.css({ 140 | position : 'absolute', 141 | width: '95%', 142 | 'max-width': 'none', 143 | top: position.top + target.outerHeight() 144 | }); 145 | dropdown.css(Foundation.rtl ? 'right':'left', '2.5%'); 146 | } else { 147 | if (!Foundation.rtl && $(window).width() > dropdown.outerWidth() + target.offset().left) { 148 | var left = position.left; 149 | if (dropdown.hasClass('right')) { 150 | dropdown.removeClass('right'); 151 | } 152 | } else { 153 | if (!dropdown.hasClass('right')) { 154 | dropdown.addClass('right'); 155 | } 156 | var left = position.left - (dropdown.outerWidth() - target.outerWidth()); 157 | } 158 | 159 | dropdown.attr('style', '').css({ 160 | position : 'absolute', 161 | top: position.top + target.outerHeight(), 162 | left: left 163 | }); 164 | } 165 | 166 | return dropdown; 167 | }, 168 | 169 | small : function () { 170 | return matchMedia(Foundation.media_queries.small).matches && 171 | !matchMedia(Foundation.media_queries.medium).matches; 172 | }, 173 | 174 | off: function () { 175 | $(this.scope).off('.fndtn.dropdown'); 176 | $('html, body').off('.fndtn.dropdown'); 177 | $(window).off('.fndtn.dropdown'); 178 | $('[data-dropdown-content]').off('.fndtn.dropdown'); 179 | this.settings.init = false; 180 | }, 181 | 182 | reflow : function () {} 183 | }; 184 | }(jQuery, this, this.document)); 185 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.tooltip.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.tooltip = { 5 | name : 'tooltip', 6 | 7 | version : '5.0.0', 8 | 9 | settings : { 10 | additional_inheritable_classes : [], 11 | tooltip_class : '.tooltip', 12 | append_to: 'body', 13 | touch_close_text: 'Tap To Close', 14 | disable_for_touch: false, 15 | tip_template : function (selector, content) { 16 | return '' + content + ''; 19 | } 20 | }, 21 | 22 | cache : {}, 23 | 24 | init : function (scope, method, options) { 25 | this.bindings(method, options); 26 | }, 27 | 28 | events : function () { 29 | var self = this; 30 | 31 | if (Modernizr.touch) { 32 | $(this.scope) 33 | .off('.tooltip') 34 | .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip', 35 | '[data-tooltip]', function (e) { 36 | var settings = $.extend({}, self.settings, self.data_options($(this))); 37 | if (!settings.disable_for_touch) { 38 | e.preventDefault(); 39 | $(settings.tooltip_class).hide(); 40 | self.showOrCreateTip($(this)); 41 | } 42 | }) 43 | .on('click.fndtn.tooltip touchstart.fndtn.tooltip touchend.fndtn.tooltip', 44 | this.settings.tooltip_class, function (e) { 45 | e.preventDefault(); 46 | $(this).fadeOut(150); 47 | }); 48 | } else { 49 | $(this.scope) 50 | .off('.tooltip') 51 | .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip', 52 | '[data-tooltip]', function (e) { 53 | var $this = $(this); 54 | 55 | if (/enter|over/i.test(e.type)) { 56 | self.showOrCreateTip($this); 57 | } else if (e.type === 'mouseout' || e.type === 'mouseleave') { 58 | self.hide($this); 59 | } 60 | }); 61 | } 62 | }, 63 | 64 | showOrCreateTip : function ($target) { 65 | var $tip = this.getTip($target); 66 | 67 | if ($tip && $tip.length > 0) { 68 | return this.show($target); 69 | } 70 | 71 | return this.create($target); 72 | }, 73 | 74 | getTip : function ($target) { 75 | var selector = this.selector($target), 76 | tip = null; 77 | 78 | if (selector) { 79 | tip = $('span[data-selector="' + selector + '"]' + this.settings.tooltip_class); 80 | } 81 | 82 | return (typeof tip === 'object') ? tip : false; 83 | }, 84 | 85 | selector : function ($target) { 86 | var id = $target.attr('id'), 87 | dataSelector = $target.attr('data-tooltip') || $target.attr('data-selector'); 88 | 89 | if ((id && id.length < 1 || !id) && typeof dataSelector != 'string') { 90 | dataSelector = 'tooltip' + Math.random().toString(36).substring(7); 91 | $target.attr('data-selector', dataSelector); 92 | } 93 | 94 | return (id && id.length > 0) ? id : dataSelector; 95 | }, 96 | 97 | create : function ($target) { 98 | var $tip = $(this.settings.tip_template(this.selector($target), $('
').html($target.attr('title')).html())), 99 | classes = this.inheritable_classes($target); 100 | 101 | $tip.addClass(classes).appendTo(this.settings.append_to); 102 | if (Modernizr.touch) { 103 | $tip.append(''+this.settings.touch_close_text+''); 104 | } 105 | $target.removeAttr('title').attr('title',''); 106 | this.show($target); 107 | }, 108 | 109 | reposition : function (target, tip, classes) { 110 | var width, nub, nubHeight, nubWidth, column, objPos; 111 | 112 | tip.css('visibility', 'hidden').show(); 113 | 114 | width = target.data('width'); 115 | nub = tip.children('.nub'); 116 | nubHeight = nub.outerHeight(); 117 | nubWidth = nub.outerHeight(); 118 | 119 | objPos = function (obj, top, right, bottom, left, width) { 120 | return obj.css({ 121 | 'top' : (top) ? top : 'auto', 122 | 'bottom' : (bottom) ? bottom : 'auto', 123 | 'left' : (left) ? left : 'auto', 124 | 'right' : (right) ? right : 'auto', 125 | 'width' : (width) ? width : 'auto' 126 | }).end(); 127 | }; 128 | 129 | objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', target.offset().left, width); 130 | 131 | if (this.small()) { 132 | objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', 12.5, $(this.scope).width()); 133 | tip.addClass('tip-override'); 134 | objPos(nub, -nubHeight, 'auto', 'auto', target.offset().left); 135 | } else { 136 | var left = target.offset().left; 137 | if (Foundation.rtl) { 138 | left = target.offset().left + target.offset().width - tip.outerWidth(); 139 | } 140 | objPos(tip, (target.offset().top + target.outerHeight() + 10), 'auto', 'auto', left, width); 141 | tip.removeClass('tip-override'); 142 | if (classes && classes.indexOf('tip-top') > -1) { 143 | objPos(tip, (target.offset().top - tip.outerHeight()), 'auto', 'auto', left, width) 144 | .removeClass('tip-override'); 145 | } else if (classes && classes.indexOf('tip-left') > -1) { 146 | objPos(tip, (target.offset().top + (target.outerHeight() / 2) - nubHeight*2.5), 'auto', 'auto', (target.offset().left - tip.outerWidth() - nubHeight), width) 147 | .removeClass('tip-override'); 148 | } else if (classes && classes.indexOf('tip-right') > -1) { 149 | objPos(tip, (target.offset().top + (target.outerHeight() / 2) - nubHeight*2.5), 'auto', 'auto', (target.offset().left + target.outerWidth() + nubHeight), width) 150 | .removeClass('tip-override'); 151 | } 152 | } 153 | 154 | tip.css('visibility', 'visible').hide(); 155 | }, 156 | 157 | small : function () { 158 | return matchMedia(Foundation.media_queries.small).matches; 159 | }, 160 | 161 | inheritable_classes : function (target) { 162 | var inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'noradius'].concat(this.settings.additional_inheritable_classes), 163 | classes = target.attr('class'), 164 | filtered = classes ? $.map(classes.split(' '), function (el, i) { 165 | if ($.inArray(el, inheritables) !== -1) { 166 | return el; 167 | } 168 | }).join(' ') : ''; 169 | 170 | return $.trim(filtered); 171 | }, 172 | 173 | show : function ($target) { 174 | var $tip = this.getTip($target); 175 | 176 | this.reposition($target, $tip, $target.attr('class')); 177 | $tip.fadeIn(150); 178 | }, 179 | 180 | hide : function ($target) { 181 | var $tip = this.getTip($target); 182 | 183 | $tip.fadeOut(150); 184 | }, 185 | 186 | // deprecate reload 187 | reload : function () { 188 | var $self = $(this); 189 | 190 | return ($self.data('fndtn-tooltips')) ? $self.foundationTooltips('destroy').foundationTooltips('init') : $self.foundationTooltips('init'); 191 | }, 192 | 193 | off : function () { 194 | $(this.scope).off('.fndtn.tooltip'); 195 | $(this.settings.tooltip_class).each(function (i) { 196 | $('[data-tooltip]').get(i).attr('title', $(this).text()); 197 | }).remove(); 198 | }, 199 | 200 | reflow : function () {} 201 | }; 202 | }(jQuery, this, this.document)); 203 | -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {% block windowtitle %}{{ SITENAME }}{% endblock %} 8 | 9 | 10 | 11 | 12 | {% if not FOUNDATION_PYGMENT_THEME %} 13 | {% set FOUNDATION_PYGMENT_THEME = 'monokai' %} 14 | {% endif %} 15 | 16 | 17 | 18 | {% if FOUNDATION_ALTERNATE_FONTS %} 19 | 20 | 21 | 22 | {% endif %} 23 | 24 | 25 | 26 | 27 | {% if FEED_ALL_ATOM %} 28 | 29 | {% endif %} 30 | {% if FEED_ALL_RSS %} 31 | 32 | {% endif %} 33 | 34 | {% include "analytics.html" %} 35 | 36 | 37 | 50 | 51 | 52 | 53 |
54 |
55 | 56 | 65 | 66 | 67 | 102 | 103 | 104 | 119 | 120 | 121 |
122 |
123 | 124 |
125 | {% if pagetitle is defined %} 126 |
127 |
128 |

{{ pagetitle }}

129 |
130 |
131 | {% endif %} 132 | {% block content %}{% endblock %} 133 |
134 | 135 | 136 | 177 | 178 |
179 | 180 | 181 |
182 |
183 | {% if not FOUNDATION_FOOTER_TEXT %} 184 | {% set FOUNDATION_FOOTER_TEXT = 'Powered by Pelican and Zurb Foundation. Theme by Kenton Hamaluik.' %} 185 | {% endif %} 186 |

{{ FOUNDATION_FOOTER_TEXT }}

187 |
188 |
189 | 190 |
191 | 192 |
193 |
194 | 195 | 196 | 197 | 200 | 201 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.abide.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.abide = { 5 | name : 'abide', 6 | 7 | version : '5.0.0', 8 | 9 | settings : { 10 | focus_on_invalid : true, 11 | timeout : 1000, 12 | patterns : { 13 | alpha: /[a-zA-Z]+/, 14 | alpha_numeric : /[a-zA-Z0-9]+/, 15 | integer: /-?\d+/, 16 | number: /-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?/, 17 | 18 | // generic password: upper-case, lower-case, number/special character, and min 8 characters 19 | password : /(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/, 20 | 21 | // amex, visa, diners 22 | card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/, 23 | cvv : /^([0-9]){3,4}$/, 24 | 25 | // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address 26 | email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/, 27 | 28 | url: /(https?|ftp|file|ssh):\/\/(((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?/, 29 | // abc.de 30 | domain: /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/, 31 | 32 | datetime: /([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))/, 33 | // YYYY-MM-DD 34 | date: /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))/, 35 | // HH:MM:SS 36 | time : /(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}/, 37 | dateISO: /\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}/, 38 | // MM/DD/YYYY 39 | month_day_year : /(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d/, 40 | 41 | // #FFF or #FFFFFF 42 | color: /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ 43 | } 44 | }, 45 | 46 | timer : null, 47 | 48 | init : function (scope, method, options) { 49 | this.bindings(method, options); 50 | }, 51 | 52 | events : function (scope) { 53 | var self = this, 54 | form = $(scope).attr('novalidate', 'novalidate'), 55 | settings = form.data('abide-init'); 56 | 57 | form 58 | .off('.abide') 59 | .on('submit.fndtn.abide validate.fndtn.abide', function (e) { 60 | var is_ajax = /ajax/i.test($(this).attr('data-abide')); 61 | return self.validate($(this).find('input, textarea, select').get(), e, is_ajax); 62 | }) 63 | .find('input, textarea, select') 64 | .off('.abide') 65 | .on('blur.fndtn.abide change.fndtn.abide', function (e) { 66 | self.validate([this], e); 67 | }) 68 | .on('keydown.fndtn.abide', function (e) { 69 | var settings = $(this).closest('form').data('abide-init'); 70 | clearTimeout(self.timer); 71 | self.timer = setTimeout(function () { 72 | self.validate([this], e); 73 | }.bind(this), settings.timeout); 74 | }); 75 | }, 76 | 77 | validate : function (els, e, is_ajax) { 78 | var validations = this.parse_patterns(els), 79 | validation_count = validations.length, 80 | form = $(els[0]).closest('form'), 81 | submit_event = /submit/.test(e.type); 82 | 83 | for (var i=0; i < validation_count; i++) { 84 | if (!validations[i] && (submit_event || is_ajax)) { 85 | if (this.settings.focus_on_invalid) els[i].focus(); 86 | form.trigger('invalid'); 87 | $(els[i]).closest('form').attr('data-invalid', ''); 88 | return false; 89 | } 90 | } 91 | 92 | if (submit_event || is_ajax) { 93 | form.trigger('valid'); 94 | } 95 | 96 | form.removeAttr('data-invalid'); 97 | 98 | if (is_ajax) return false; 99 | 100 | return true; 101 | }, 102 | 103 | parse_patterns : function (els) { 104 | var count = els.length, 105 | el_patterns = []; 106 | 107 | for (var i = count - 1; i >= 0; i--) { 108 | el_patterns.push(this.pattern(els[i])); 109 | } 110 | 111 | return this.check_validation_and_apply_styles(el_patterns); 112 | }, 113 | 114 | pattern : function (el) { 115 | var type = el.getAttribute('type'), 116 | required = typeof el.getAttribute('required') === 'string'; 117 | 118 | if (this.settings.patterns.hasOwnProperty(type)) { 119 | return [el, this.settings.patterns[type], required]; 120 | } 121 | 122 | var pattern = el.getAttribute('pattern') || ''; 123 | 124 | if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) { 125 | return [el, this.settings.patterns[pattern], required]; 126 | } else if (pattern.length > 0) { 127 | return [el, new RegExp(pattern), required]; 128 | } 129 | 130 | pattern = /.*/; 131 | 132 | return [el, pattern, required]; 133 | }, 134 | 135 | check_validation_and_apply_styles : function (el_patterns) { 136 | var count = el_patterns.length, 137 | validations = []; 138 | 139 | for (var i = count - 1; i >= 0; i--) { 140 | var el = el_patterns[i][0], 141 | required = el_patterns[i][2], 142 | value = el.value, 143 | is_equal = el.getAttribute('data-equalto'), 144 | is_radio = el.type === "radio", 145 | valid_length = (required) ? (el.value.length > 0) : true; 146 | 147 | if (is_radio && required) { 148 | validations.push(this.valid_radio(el, required)); 149 | } else if (is_equal && required) { 150 | validations.push(this.valid_equal(el, required)); 151 | } else { 152 | if (el_patterns[i][1].test(value) && valid_length || 153 | !required && el.value.length < 1) { 154 | $(el).removeAttr('data-invalid').parent().removeClass('error'); 155 | validations.push(true); 156 | } else { 157 | $(el).attr('data-invalid', '').parent().addClass('error'); 158 | validations.push(false); 159 | } 160 | } 161 | } 162 | 163 | return validations; 164 | }, 165 | 166 | valid_radio : function (el, required) { 167 | var name = el.getAttribute('name'), 168 | group = document.getElementsByName(name), 169 | count = group.length, 170 | valid = false; 171 | 172 | for (var i=0; i < count; i++) { 173 | if (group[i].checked) valid = true; 174 | } 175 | 176 | for (var i=0; i < count; i++) { 177 | if (valid) { 178 | $(group[i]).removeAttr('data-invalid').parent().removeClass('error'); 179 | } else { 180 | $(group[i]).attr('data-invalid', '').parent().addClass('error'); 181 | } 182 | } 183 | 184 | return valid; 185 | }, 186 | 187 | valid_equal: function(el, required) { 188 | var from = document.getElementById(el.getAttribute('data-equalto')).value, 189 | to = el.value, 190 | valid = (from === to); 191 | 192 | if (valid) { 193 | $(el).removeAttr('data-invalid').parent().removeClass('error'); 194 | } else { 195 | $(el).attr('data-invalid', '').parent().addClass('error'); 196 | } 197 | 198 | return valid; 199 | } 200 | }; 201 | }(jQuery, this, this.document)); 202 | -------------------------------------------------------------------------------- /static/js/modernizr.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function y(a){j.cssText=a}function z(a,b){return y(m.join(a+";")+(b||""))}function A(a,b){return typeof a===b}function B(a,b){return!!~(""+a).indexOf(b)}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:A(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var D in o)x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var D in o)x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f 0) { 125 | var el = this.S('[data-uuid="' + uuid + '"]'); 126 | 127 | for (var i = count - 1; i >= 0; i--) { 128 | var mq, rule = scenarios[i][2]; 129 | if (this.settings.named_queries.hasOwnProperty(rule)) { 130 | mq = matchMedia(this.settings.named_queries[rule]); 131 | } else { 132 | mq = matchMedia(rule); 133 | } 134 | if (mq.matches) { 135 | return {el: el, scenario: scenarios[i]}; 136 | } 137 | } 138 | } 139 | 140 | return false; 141 | }, 142 | 143 | load : function (type, force_update) { 144 | if (typeof this['cached_' + type] === 'undefined' || force_update) { 145 | this['update_' + type](); 146 | } 147 | 148 | return this['cached_' + type]; 149 | }, 150 | 151 | update_images : function () { 152 | var images = this.S('img[' + this.data_attr + ']'), 153 | count = images.length, 154 | loaded_count = 0, 155 | data_attr = this.data_attr; 156 | 157 | this.cache = {}; 158 | this.cached_images = []; 159 | this.images_loaded = (count === 0); 160 | 161 | for (var i = count - 1; i >= 0; i--) { 162 | loaded_count++; 163 | if (images[i]) { 164 | var str = images[i].getAttribute(data_attr) || ''; 165 | 166 | if (str.length > 0) { 167 | this.cached_images.push(images[i]); 168 | } 169 | } 170 | 171 | if(loaded_count === count) { 172 | this.images_loaded = true; 173 | this.enhance('images'); 174 | } 175 | } 176 | 177 | return this; 178 | }, 179 | 180 | update_nodes : function () { 181 | var nodes = this.S('[' + this.data_attr + ']:not(img)'), 182 | count = nodes.length, 183 | loaded_count = 0, 184 | data_attr = this.data_attr; 185 | 186 | this.cached_nodes = []; 187 | // Set nodes_loaded to true if there are no nodes 188 | // this.nodes_loaded = false; 189 | this.nodes_loaded = (count === 0); 190 | 191 | 192 | for (var i = count - 1; i >= 0; i--) { 193 | loaded_count++; 194 | var str = nodes[i].getAttribute(data_attr) || ''; 195 | 196 | if (str.length > 0) { 197 | this.cached_nodes.push(nodes[i]); 198 | } 199 | 200 | if(loaded_count === count) { 201 | this.nodes_loaded = true; 202 | this.enhance('nodes'); 203 | } 204 | } 205 | 206 | return this; 207 | }, 208 | 209 | enhance : function (type) { 210 | var count = this['cached_' + type].length; 211 | 212 | for (var i = count - 1; i >= 0; i--) { 213 | this.object($(this['cached_' + type][i])); 214 | } 215 | 216 | return $(window).trigger('resize'); 217 | }, 218 | 219 | parse_params : function (path, directive, mq) { 220 | return [this.trim(path), this.convert_directive(directive), this.trim(mq)]; 221 | }, 222 | 223 | convert_directive : function (directive) { 224 | var trimmed = this.trim(directive); 225 | 226 | if (trimmed.length > 0) { 227 | return trimmed; 228 | } 229 | 230 | return 'replace'; 231 | }, 232 | 233 | object : function(el) { 234 | var raw_arr = this.parse_data_attr(el), 235 | scenarios = [], count = raw_arr.length; 236 | 237 | if (count > 0) { 238 | for (var i = count - 1; i >= 0; i--) { 239 | var split = raw_arr[i].split(/\((.*?)(\))$/); 240 | 241 | if (split.length > 1) { 242 | var cached_split = split[0].split(','), 243 | params = this.parse_params(cached_split[0], 244 | cached_split[1], split[1]); 245 | 246 | scenarios.push(params); 247 | } 248 | } 249 | } 250 | 251 | return this.store(el, scenarios); 252 | }, 253 | 254 | uuid : function (separator) { 255 | var delim = separator || "-"; 256 | 257 | function S4() { 258 | return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); 259 | } 260 | 261 | return (S4() + S4() + delim + S4() + delim + S4() 262 | + delim + S4() + delim + S4() + S4() + S4()); 263 | }, 264 | 265 | store : function (el, scenarios) { 266 | var uuid = this.uuid(), 267 | current_uuid = el.data('uuid'); 268 | 269 | if (current_uuid) return this.cache[current_uuid]; 270 | 271 | el.attr('data-uuid', uuid); 272 | 273 | return this.cache[uuid] = scenarios; 274 | }, 275 | 276 | trim : function(str) { 277 | if (typeof str === 'string') { 278 | return $.trim(str); 279 | } 280 | 281 | return str; 282 | }, 283 | 284 | parse_data_attr : function (el) { 285 | var raw = el.data(this.settings.load_attr).split(/\[(.*?)\]/), 286 | count = raw.length, output = []; 287 | 288 | for (var i = count - 1; i >= 0; i--) { 289 | if (raw[i].replace(/[\W\d]+/, '').length > 4) { 290 | output.push(raw[i]); 291 | } 292 | } 293 | 294 | return output; 295 | }, 296 | 297 | reflow : function () { 298 | this.load('images', true); 299 | this.load('nodes', true); 300 | } 301 | 302 | }; 303 | 304 | }(jQuery, this, this.document)); 305 | -------------------------------------------------------------------------------- /static/css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v2.1.2 | MIT License | git.io/normalize */ 2 | 3 | /* ========================================================================== 4 | HTML5 display definitions 5 | ========================================================================== */ 6 | 7 | /** 8 | * Correct `block` display not defined in IE 8/9. 9 | */ 10 | 11 | article, 12 | aside, 13 | details, 14 | figcaption, 15 | figure, 16 | footer, 17 | header, 18 | hgroup, 19 | main, 20 | nav, 21 | section, 22 | summary { 23 | display: block; 24 | } 25 | 26 | /** 27 | * Correct `inline-block` display not defined in IE 8/9. 28 | */ 29 | 30 | audio, 31 | canvas, 32 | video { 33 | display: inline-block; 34 | } 35 | 36 | /** 37 | * Prevent modern browsers from displaying `audio` without controls. 38 | * Remove excess height in iOS 5 devices. 39 | */ 40 | 41 | audio:not([controls]) { 42 | display: none; 43 | height: 0; 44 | } 45 | 46 | /** 47 | * Address `[hidden]` styling not present in IE 8/9. 48 | * Hide the `template` element in IE, Safari, and Firefox < 22. 49 | */ 50 | 51 | [hidden], 52 | template { 53 | display: none; 54 | } 55 | 56 | script { 57 | display: none !important; 58 | } 59 | 60 | /* ========================================================================== 61 | Base 62 | ========================================================================== */ 63 | 64 | /** 65 | * 1. Set default font family to sans-serif. 66 | * 2. Prevent iOS text size adjust after orientation change, without disabling 67 | * user zoom. 68 | */ 69 | 70 | html { 71 | font-family: sans-serif; /* 1 */ 72 | -ms-text-size-adjust: 100%; /* 2 */ 73 | -webkit-text-size-adjust: 100%; /* 2 */ 74 | } 75 | 76 | /** 77 | * Remove default margin. 78 | */ 79 | 80 | body { 81 | margin: 0; 82 | } 83 | 84 | /* ========================================================================== 85 | Links 86 | ========================================================================== */ 87 | 88 | /** 89 | * Remove the gray background color from active links in IE 10. 90 | */ 91 | 92 | a { 93 | background: transparent; 94 | } 95 | 96 | /** 97 | * Address `outline` inconsistency between Chrome and other browsers. 98 | */ 99 | 100 | a:focus { 101 | outline: thin dotted; 102 | } 103 | 104 | /** 105 | * Improve readability when focused and also mouse hovered in all browsers. 106 | */ 107 | 108 | a:active, 109 | a:hover { 110 | outline: 0; 111 | } 112 | 113 | /* ========================================================================== 114 | Typography 115 | ========================================================================== */ 116 | 117 | /** 118 | * Address variable `h1` font-size and margin within `section` and `article` 119 | * contexts in Firefox 4+, Safari 5, and Chrome. 120 | */ 121 | 122 | h1 { 123 | font-size: 2em; 124 | margin: 0.67em 0; 125 | } 126 | 127 | /** 128 | * Address styling not present in IE 8/9, Safari 5, and Chrome. 129 | */ 130 | 131 | abbr[title] { 132 | border-bottom: 1px dotted; 133 | } 134 | 135 | /** 136 | * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. 137 | */ 138 | 139 | b, 140 | strong { 141 | font-weight: bold; 142 | } 143 | 144 | /** 145 | * Address styling not present in Safari 5 and Chrome. 146 | */ 147 | 148 | dfn { 149 | font-style: italic; 150 | } 151 | 152 | /** 153 | * Address differences between Firefox and other browsers. 154 | */ 155 | 156 | hr { 157 | -moz-box-sizing: content-box; 158 | box-sizing: content-box; 159 | height: 0; 160 | } 161 | 162 | /** 163 | * Address styling not present in IE 8/9. 164 | */ 165 | 166 | mark { 167 | background: #ff0; 168 | color: #000; 169 | } 170 | 171 | /** 172 | * Correct font family set oddly in Safari 5 and Chrome. 173 | */ 174 | 175 | code, 176 | kbd, 177 | pre, 178 | samp { 179 | font-family: monospace, serif; 180 | font-size: 1em; 181 | } 182 | 183 | /** 184 | * Improve readability of pre-formatted text in all browsers. 185 | */ 186 | 187 | pre { 188 | white-space: pre-wrap; 189 | } 190 | 191 | /** 192 | * Set consistent quote types. 193 | */ 194 | 195 | q { 196 | quotes: "\201C" "\201D" "\2018" "\2019"; 197 | } 198 | 199 | /** 200 | * Address inconsistent and variable font size in all browsers. 201 | */ 202 | 203 | small { 204 | font-size: 80%; 205 | } 206 | 207 | /** 208 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 209 | */ 210 | 211 | sub, 212 | sup { 213 | font-size: 75%; 214 | line-height: 0; 215 | position: relative; 216 | vertical-align: baseline; 217 | } 218 | 219 | sup { 220 | top: -0.5em; 221 | } 222 | 223 | sub { 224 | bottom: -0.25em; 225 | } 226 | 227 | /* ========================================================================== 228 | Embedded content 229 | ========================================================================== */ 230 | 231 | /** 232 | * Remove border when inside `a` element in IE 8/9. 233 | */ 234 | 235 | img { 236 | border: 0; 237 | } 238 | 239 | /** 240 | * Correct overflow displayed oddly in IE 9. 241 | */ 242 | 243 | svg:not(:root) { 244 | overflow: hidden; 245 | } 246 | 247 | /* ========================================================================== 248 | Figures 249 | ========================================================================== */ 250 | 251 | /** 252 | * Address margin not present in IE 8/9 and Safari 5. 253 | */ 254 | 255 | figure { 256 | margin: 0; 257 | } 258 | 259 | /* ========================================================================== 260 | Forms 261 | ========================================================================== */ 262 | 263 | /** 264 | * Define consistent border, margin, and padding. 265 | */ 266 | 267 | fieldset { 268 | border: 1px solid #c0c0c0; 269 | margin: 0 2px; 270 | padding: 0.35em 0.625em 0.75em; 271 | } 272 | 273 | /** 274 | * 1. Correct `color` not being inherited in IE 8/9. 275 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 276 | */ 277 | 278 | legend { 279 | border: 0; /* 1 */ 280 | padding: 0; /* 2 */ 281 | } 282 | 283 | /** 284 | * 1. Correct font family not being inherited in all browsers. 285 | * 2. Correct font size not being inherited in all browsers. 286 | * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. 287 | */ 288 | 289 | button, 290 | input, 291 | select, 292 | textarea { 293 | font-family: inherit; /* 1 */ 294 | font-size: 100%; /* 2 */ 295 | margin: 0; /* 3 */ 296 | } 297 | 298 | /** 299 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 300 | * the UA stylesheet. 301 | */ 302 | 303 | button, 304 | input { 305 | line-height: normal; 306 | } 307 | 308 | /** 309 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 310 | * All other form control elements do not inherit `text-transform` values. 311 | * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. 312 | * Correct `select` style inheritance in Firefox 4+ and Opera. 313 | */ 314 | 315 | button, 316 | select { 317 | text-transform: none; 318 | } 319 | 320 | /** 321 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 322 | * and `video` controls. 323 | * 2. Correct inability to style clickable `input` types in iOS. 324 | * 3. Improve usability and consistency of cursor style between image-type 325 | * `input` and others. 326 | */ 327 | 328 | button, 329 | html input[type="button"], /* 1 */ 330 | input[type="reset"], 331 | input[type="submit"] { 332 | -webkit-appearance: button; /* 2 */ 333 | cursor: pointer; /* 3 */ 334 | } 335 | 336 | /** 337 | * Re-set default cursor for disabled elements. 338 | */ 339 | 340 | button[disabled], 341 | html input[disabled] { 342 | cursor: default; 343 | } 344 | 345 | /** 346 | * 1. Address box sizing set to `content-box` in IE 8/9. 347 | * 2. Remove excess padding in IE 8/9. 348 | */ 349 | 350 | input[type="checkbox"], 351 | input[type="radio"] { 352 | box-sizing: border-box; /* 1 */ 353 | padding: 0; /* 2 */ 354 | } 355 | 356 | /** 357 | * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 358 | * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome 359 | * (include `-moz` to future-proof). 360 | */ 361 | 362 | input[type="search"] { 363 | -webkit-appearance: textfield; /* 1 */ 364 | -moz-box-sizing: content-box; 365 | -webkit-box-sizing: content-box; /* 2 */ 366 | box-sizing: content-box; 367 | } 368 | 369 | /** 370 | * Remove inner padding and search cancel button in Safari 5 and Chrome 371 | * on OS X. 372 | */ 373 | 374 | input[type="search"]::-webkit-search-cancel-button, 375 | input[type="search"]::-webkit-search-decoration { 376 | -webkit-appearance: none; 377 | } 378 | 379 | /** 380 | * Remove inner padding and border in Firefox 4+. 381 | */ 382 | 383 | button::-moz-focus-inner, 384 | input::-moz-focus-inner { 385 | border: 0; 386 | padding: 0; 387 | } 388 | 389 | /** 390 | * 1. Remove default vertical scrollbar in IE 8/9. 391 | * 2. Improve readability and alignment in all browsers. 392 | */ 393 | 394 | textarea { 395 | overflow: auto; /* 1 */ 396 | vertical-align: top; /* 2 */ 397 | } 398 | 399 | /* ========================================================================== 400 | Tables 401 | ========================================================================== */ 402 | 403 | /** 404 | * Remove most spacing between table cells. 405 | */ 406 | 407 | table { 408 | border-collapse: collapse; 409 | border-spacing: 0; 410 | } 411 | -------------------------------------------------------------------------------- /static/js/vendor/modernizr.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Modernizr v2.7.1 3 | * www.modernizr.com 4 | * 5 | * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton 6 | * Available under the BSD and MIT licenses: www.modernizr.com/license/ 7 | */ 8 | window.Modernizr=function(a,b,c){function d(a){t.cssText=a}function e(a,b){return d(x.join(a+";")+(b||""))}function f(a,b){return typeof a===b}function g(a,b){return!!~(""+a).indexOf(b)}function h(a,b){for(var d in a){var e=a[d];if(!g(e,"-")&&t[e]!==c)return"pfx"==b?e:!0}return!1}function i(a,b,d){for(var e in a){var g=b[a[e]];if(g!==c)return d===!1?a[e]:f(g,"function")?g.bind(d||b):g}return!1}function j(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+z.join(d+" ")+d).split(" ");return f(b,"string")||f(b,"undefined")?h(e,b):(e=(a+" "+A.join(d+" ")+d).split(" "),i(e,b,c))}function k(){o.input=function(c){for(var d=0,e=c.length;e>d;d++)E[c[d]]=!!(c[d]in u);return E.list&&(E.list=!(!b.createElement("datalist")||!a.HTMLDataListElement)),E}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),o.inputtypes=function(a){for(var d,e,f,g=0,h=a.length;h>g;g++)u.setAttribute("type",e=a[g]),d="text"!==u.type,d&&(u.value=v,u.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&u.style.WebkitAppearance!==c?(q.appendChild(u),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(u,null).WebkitAppearance&&0!==u.offsetHeight,q.removeChild(u)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?u.checkValidity&&u.checkValidity()===!1:u.value!=v)),D[a[g]]=!!d;return D}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var l,m,n="2.7.1",o={},p=!0,q=b.documentElement,r="modernizr",s=b.createElement(r),t=s.style,u=b.createElement("input"),v=":)",w={}.toString,x=" -webkit- -moz- -o- -ms- ".split(" "),y="Webkit Moz O ms",z=y.split(" "),A=y.toLowerCase().split(" "),B={svg:"http://www.w3.org/2000/svg"},C={},D={},E={},F=[],G=F.slice,H=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:r+(d+1),j.appendChild(h);return f=["­",'"].join(""),j.id=r,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=q.style.overflow,q.style.overflow="hidden",q.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),q.style.overflow=i),!!g},I=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return H("@media "+b+" { #"+r+" { position: absolute; } }",function(b){d="absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position}),d},J=function(){function a(a,e){e=e||b.createElement(d[a]||"div"),a="on"+a;var g=a in e;return g||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(a,""),g=f(e[a],"function"),f(e[a],"undefined")||(e[a]=c),e.removeAttribute(a))),e=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),K={}.hasOwnProperty;m=f(K,"undefined")||f(K.call,"undefined")?function(a,b){return b in a&&f(a.constructor.prototype[b],"undefined")}:function(a,b){return K.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=G.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(G.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(G.call(arguments)))};return d}),C.flexbox=function(){return j("flexWrap")},C.flexboxlegacy=function(){return j("boxDirection")},C.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},C.canvastext=function(){return!(!o.canvas||!f(b.createElement("canvas").getContext("2d").fillText,"function"))},C.webgl=function(){return!!a.WebGLRenderingContext},C.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:H(["@media (",x.join("touch-enabled),("),r,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!a.postMessage},C.websqldatabase=function(){return!!a.openDatabase},C.indexedDB=function(){return!!j("indexedDB",a)},C.hashchange=function(){return J("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},C.history=function(){return!(!a.history||!history.pushState)},C.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},C.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},C.rgba=function(){return d("background-color:rgba(150,255,150,.5)"),g(t.backgroundColor,"rgba")},C.hsla=function(){return d("background-color:hsla(120,40%,100%,.5)"),g(t.backgroundColor,"rgba")||g(t.backgroundColor,"hsla")},C.multiplebgs=function(){return d("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(t.background)},C.backgroundsize=function(){return j("backgroundSize")},C.borderimage=function(){return j("borderImage")},C.borderradius=function(){return j("borderRadius")},C.boxshadow=function(){return j("boxShadow")},C.textshadow=function(){return""===b.createElement("div").style.textShadow},C.opacity=function(){return e("opacity:.55"),/^0.55$/.test(t.opacity)},C.cssanimations=function(){return j("animationName")},C.csscolumns=function(){return j("columnCount")},C.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return d((a+"-webkit- ".split(" ").join(b+a)+x.join(c+a)).slice(0,-a.length)),g(t.backgroundImage,"gradient")},C.cssreflections=function(){return j("boxReflect")},C.csstransforms=function(){return!!j("transform")},C.csstransforms3d=function(){var a=!!j("perspective");return a&&"webkitPerspective"in q.style&&H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b){a=9===b.offsetLeft&&3===b.offsetHeight}),a},C.csstransitions=function(){return j("transition")},C.fontface=function(){var a;return H('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&0===g.indexOf(d.split(" ")[0])}),a},C.generatedcontent=function(){var a;return H(["#",r,"{font:0/0 a}#",r,':after{content:"',v,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},C.video=function(){var a=b.createElement("video"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(d){}return c},C.audio=function(){var a=b.createElement("audio"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(d){}return c},C.localstorage=function(){try{return localStorage.setItem(r,r),localStorage.removeItem(r),!0}catch(a){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(r,r),sessionStorage.removeItem(r),!0}catch(a){return!1}},C.webworkers=function(){return!!a.Worker},C.applicationcache=function(){return!!a.applicationCache},C.svg=function(){return!!b.createElementNS&&!!b.createElementNS(B.svg,"svg").createSVGRect},C.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==B.svg},C.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(w.call(b.createElementNS(B.svg,"animate")))},C.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(w.call(b.createElementNS(B.svg,"clipPath")))};for(var L in C)m(C,L)&&(l=L.toLowerCase(),o[l]=C[L](),F.push((o[l]?"":"no-")+l));return o.input||k(),o.addTest=function(a,b){if("object"==typeof a)for(var d in a)m(a,d)&&o.addTest(d,a[d]);else{if(a=a.toLowerCase(),o[a]!==c)return o;b="function"==typeof b?b():b,"undefined"!=typeof p&&p&&(q.className+=" "+(b?"":"no-")+a),o[a]=b}return o},d(""),s=u=null,function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=s.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=r[a[p]];return b||(b={},q++,a[p]=q,r[q]=b),b}function f(a,c,d){if(c||(c=b),k)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():o.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||n.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),k)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function i(a){a||(a=b);var d=e(a);return!s.shivCSS||j||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||h(a,d),a}var j,k,l="3.7.0",m=a.html5||{},n=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",q=0,r={};!function(){try{var a=b.createElement("a");a.innerHTML="",j="hidden"in a,k=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){j=!0,k=!0}}();var s={elements:m.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:l,shivCSS:m.shivCSS!==!1,supportsUnknownElements:k,shivMethods:m.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=s,i(b)}(this,b),o._version=n,o._prefixes=x,o._domPrefixes=A,o._cssomPrefixes=z,o.mq=I,o.hasEvent=J,o.testProp=function(a){return h([a])},o.testAllProps=j,o.testStyles=H,o.prefixed=function(a,b,c){return b?j(a,b,c):j(a,"pfx")},q.className=q.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+F.join(" "):""),o}(this,this.document); 9 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.reveal.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.reveal = { 5 | name : 'reveal', 6 | 7 | version : '5.0.0', 8 | 9 | locked : false, 10 | 11 | settings : { 12 | animation: 'fadeAndPop', 13 | animation_speed: 250, 14 | close_on_background_click: true, 15 | close_on_esc: true, 16 | dismiss_modal_class: 'close-reveal-modal', 17 | bg_class: 'reveal-modal-bg', 18 | open: function(){}, 19 | opened: function(){}, 20 | close: function(){}, 21 | closed: function(){}, 22 | bg : $('.reveal-modal-bg'), 23 | css : { 24 | open : { 25 | 'opacity': 0, 26 | 'visibility': 'visible', 27 | 'display' : 'block' 28 | }, 29 | close : { 30 | 'opacity': 1, 31 | 'visibility': 'hidden', 32 | 'display': 'none' 33 | } 34 | } 35 | }, 36 | 37 | init : function (scope, method, options) { 38 | Foundation.inherit(this, 'delay'); 39 | 40 | this.bindings(method, options); 41 | }, 42 | 43 | events : function (scope) { 44 | var self = this; 45 | 46 | $('[data-reveal-id]', this.scope) 47 | .off('.reveal') 48 | .on('click.fndtn.reveal', function (e) { 49 | e.preventDefault(); 50 | 51 | if (!self.locked) { 52 | var element = $(this), 53 | ajax = element.data('reveal-ajax'); 54 | 55 | self.locked = true; 56 | 57 | if (typeof ajax === 'undefined') { 58 | self.open.call(self, element); 59 | } else { 60 | var url = ajax === true ? element.attr('href') : ajax; 61 | 62 | self.open.call(self, element, {url: url}); 63 | } 64 | } 65 | }); 66 | 67 | $(this.scope) 68 | .off('.reveal') 69 | .on('click.fndtn.reveal', this.close_targets(), function (e) { 70 | 71 | e.preventDefault(); 72 | 73 | if (!self.locked) { 74 | var settings = $('[data-reveal].open').data('reveal-init'), 75 | bg_clicked = $(e.target)[0] === $('.' + settings.bg_class)[0]; 76 | 77 | if (bg_clicked && !settings.close_on_background_click) { 78 | return; 79 | } 80 | 81 | self.locked = true; 82 | self.close.call(self, bg_clicked ? $('[data-reveal].open') : $(this).closest('[data-reveal]')); 83 | } 84 | }); 85 | 86 | if($('[data-reveal]', this.scope).length > 0) { 87 | $(this.scope) 88 | // .off('.reveal') 89 | .on('open.fndtn.reveal', this.settings.open) 90 | .on('opened.fndtn.reveal', this.settings.opened) 91 | .on('opened.fndtn.reveal', this.open_video) 92 | .on('close.fndtn.reveal', this.settings.close) 93 | .on('closed.fndtn.reveal', this.settings.closed) 94 | .on('closed.fndtn.reveal', this.close_video); 95 | } else { 96 | $(this.scope) 97 | // .off('.reveal') 98 | .on('open.fndtn.reveal', '[data-reveal]', this.settings.open) 99 | .on('opened.fndtn.reveal', '[data-reveal]', this.settings.opened) 100 | .on('opened.fndtn.reveal', '[data-reveal]', this.open_video) 101 | .on('close.fndtn.reveal', '[data-reveal]', this.settings.close) 102 | .on('closed.fndtn.reveal', '[data-reveal]', this.settings.closed) 103 | .on('closed.fndtn.reveal', '[data-reveal]', this.close_video); 104 | } 105 | 106 | $('body').on('keyup.fndtn.reveal', function ( event ) { 107 | var open_modal = $('[data-reveal].open'), 108 | settings = open_modal.data('reveal-init'); 109 | if ( event.which === 27 && settings.close_on_esc) { // 27 is the keycode for the Escape key 110 | open_modal.foundation('reveal', 'close'); 111 | } 112 | }); 113 | 114 | return true; 115 | }, 116 | 117 | open : function (target, ajax_settings) { 118 | if (target) { 119 | if (typeof target.selector !== 'undefined') { 120 | var modal = $('#' + target.data('reveal-id')); 121 | } else { 122 | var modal = $(this.scope); 123 | 124 | ajax_settings = target; 125 | } 126 | } else { 127 | var modal = $(this.scope); 128 | } 129 | 130 | if (!modal.hasClass('open')) { 131 | var open_modal = $('[data-reveal].open'); 132 | 133 | if (typeof modal.data('css-top') === 'undefined') { 134 | modal.data('css-top', parseInt(modal.css('top'), 10)) 135 | .data('offset', this.cache_offset(modal)); 136 | } 137 | 138 | modal.trigger('open'); 139 | 140 | if (open_modal.length < 1) { 141 | this.toggle_bg(); 142 | } 143 | 144 | if (typeof ajax_settings === 'undefined' || !ajax_settings.url) { 145 | this.hide(open_modal, this.settings.css.close); 146 | this.show(modal, this.settings.css.open); 147 | } else { 148 | var self = this, 149 | old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null; 150 | 151 | $.extend(ajax_settings, { 152 | success: function (data, textStatus, jqXHR) { 153 | if ( $.isFunction(old_success) ) { 154 | old_success(data, textStatus, jqXHR); 155 | } 156 | 157 | modal.html(data); 158 | $(modal).foundation('section', 'reflow'); 159 | 160 | self.hide(open_modal, self.settings.css.close); 161 | self.show(modal, self.settings.css.open); 162 | } 163 | }); 164 | 165 | $.ajax(ajax_settings); 166 | } 167 | } 168 | }, 169 | 170 | close : function (modal) { 171 | 172 | var modal = modal && modal.length ? modal : $(this.scope), 173 | open_modals = $('[data-reveal].open'); 174 | 175 | if (open_modals.length > 0) { 176 | this.locked = true; 177 | modal.trigger('close'); 178 | this.toggle_bg(); 179 | this.hide(open_modals, this.settings.css.close); 180 | } 181 | }, 182 | 183 | close_targets : function () { 184 | var base = '.' + this.settings.dismiss_modal_class; 185 | 186 | if (this.settings.close_on_background_click) { 187 | return base + ', .' + this.settings.bg_class; 188 | } 189 | 190 | return base; 191 | }, 192 | 193 | toggle_bg : function () { 194 | if ($('.' + this.settings.bg_class).length === 0) { 195 | this.settings.bg = $('
', {'class': this.settings.bg_class}) 196 | .appendTo('body'); 197 | } 198 | 199 | if (this.settings.bg.filter(':visible').length > 0) { 200 | this.hide(this.settings.bg); 201 | } else { 202 | this.show(this.settings.bg); 203 | } 204 | }, 205 | 206 | show : function (el, css) { 207 | // is modal 208 | if (css) { 209 | if (el.parent('body').length === 0) { 210 | var placeholder = el.wrap('
').parent(); 211 | el.on('closed.fndtn.reveal.wrapped', function() { 212 | el.detach().appendTo(placeholder); 213 | el.unwrap().unbind('closed.fndtn.reveal.wrapped'); 214 | }); 215 | 216 | el.detach().appendTo('body'); 217 | } 218 | 219 | if (/pop/i.test(this.settings.animation)) { 220 | css.top = $(window).scrollTop() - el.data('offset') + 'px'; 221 | var end_css = { 222 | top: $(window).scrollTop() + el.data('css-top') + 'px', 223 | opacity: 1 224 | }; 225 | 226 | return this.delay(function () { 227 | return el 228 | .css(css) 229 | .animate(end_css, this.settings.animation_speed, 'linear', function () { 230 | this.locked = false; 231 | el.trigger('opened'); 232 | }.bind(this)) 233 | .addClass('open'); 234 | }.bind(this), this.settings.animation_speed / 2); 235 | } 236 | 237 | if (/fade/i.test(this.settings.animation)) { 238 | var end_css = {opacity: 1}; 239 | 240 | return this.delay(function () { 241 | return el 242 | .css(css) 243 | .animate(end_css, this.settings.animation_speed, 'linear', function () { 244 | this.locked = false; 245 | el.trigger('opened'); 246 | }.bind(this)) 247 | .addClass('open'); 248 | }.bind(this), this.settings.animation_speed / 2); 249 | } 250 | 251 | return el.css(css).show().css({opacity: 1}).addClass('open').trigger('opened'); 252 | } 253 | 254 | // should we animate the background? 255 | if (/fade/i.test(this.settings.animation)) { 256 | return el.fadeIn(this.settings.animation_speed / 2); 257 | } 258 | 259 | return el.show(); 260 | }, 261 | 262 | hide : function (el, css) { 263 | // is modal 264 | if (css) { 265 | if (/pop/i.test(this.settings.animation)) { 266 | var end_css = { 267 | top: - $(window).scrollTop() - el.data('offset') + 'px', 268 | opacity: 0 269 | }; 270 | 271 | return this.delay(function () { 272 | return el 273 | .animate(end_css, this.settings.animation_speed, 'linear', function () { 274 | this.locked = false; 275 | el.css(css).trigger('closed'); 276 | }.bind(this)) 277 | .removeClass('open'); 278 | }.bind(this), this.settings.animation_speed / 2); 279 | } 280 | 281 | if (/fade/i.test(this.settings.animation)) { 282 | var end_css = {opacity: 0}; 283 | 284 | return this.delay(function () { 285 | return el 286 | .animate(end_css, this.settings.animation_speed, 'linear', function () { 287 | this.locked = false; 288 | el.css(css).trigger('closed'); 289 | }.bind(this)) 290 | .removeClass('open'); 291 | }.bind(this), this.settings.animation_speed / 2); 292 | } 293 | 294 | return el.hide().css(css).removeClass('open').trigger('closed'); 295 | } 296 | 297 | // should we animate the background? 298 | if (/fade/i.test(this.settings.animation)) { 299 | return el.fadeOut(this.settings.animation_speed / 2); 300 | } 301 | 302 | return el.hide(); 303 | }, 304 | 305 | close_video : function (e) { 306 | var video = $(this).find('.flex-video'), 307 | iframe = video.find('iframe'); 308 | 309 | if (iframe.length > 0) { 310 | iframe.attr('data-src', iframe[0].src); 311 | iframe.attr('src', 'about:blank'); 312 | video.hide(); 313 | } 314 | }, 315 | 316 | open_video : function (e) { 317 | var video = $(this).find('.flex-video'), 318 | iframe = video.find('iframe'); 319 | 320 | if (iframe.length > 0) { 321 | var data_src = iframe.attr('data-src'); 322 | if (typeof data_src === 'string') { 323 | iframe[0].src = iframe.attr('data-src'); 324 | } else { 325 | var src = iframe[0].src; 326 | iframe[0].src = undefined; 327 | iframe[0].src = src; 328 | } 329 | video.show(); 330 | } 331 | }, 332 | 333 | cache_offset : function (modal) { 334 | var offset = modal.show().height() + parseInt(modal.css('top'), 10); 335 | 336 | modal.hide(); 337 | 338 | return offset; 339 | }, 340 | 341 | off : function () { 342 | $(this.scope).off('.fndtn.reveal'); 343 | }, 344 | 345 | reflow : function () {} 346 | }; 347 | }(jQuery, this, this.document)); 348 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.topbar.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.topbar = { 5 | name : 'topbar', 6 | 7 | version: '5.0.1', 8 | 9 | settings : { 10 | index : 0, 11 | sticky_class : 'sticky', 12 | custom_back_text: true, 13 | back_text: 'Back', 14 | is_hover: true, 15 | mobile_show_parent_link: false, 16 | scrolltop : true // jump to top when sticky nav menu toggle is clicked 17 | }, 18 | 19 | init : function (section, method, options) { 20 | Foundation.inherit(this, 'addCustomRule register_media throttle'); 21 | var self = this; 22 | 23 | self.register_media('topbar', 'foundation-mq-topbar'); 24 | 25 | this.bindings(method, options); 26 | 27 | $('[data-topbar]', this.scope).each(function () { 28 | var topbar = $(this), 29 | settings = topbar.data('topbar-init'), 30 | section = $('section', this), 31 | titlebar = $('> ul', this).first(); 32 | 33 | topbar.data('index', 0); 34 | 35 | var topbarContainer = topbar.parent(); 36 | if(topbarContainer.hasClass('fixed') || topbarContainer.hasClass(settings.sticky_class)) { 37 | self.settings.sticky_class = settings.sticky_class; 38 | self.settings.stick_topbar = topbar; 39 | topbar.data('height', topbarContainer.outerHeight()); 40 | topbar.data('stickyoffset', topbarContainer.offset().top); 41 | } else { 42 | topbar.data('height', topbar.outerHeight()); 43 | } 44 | 45 | if (!settings.assembled) self.assemble(topbar); 46 | 47 | if (settings.is_hover) { 48 | $('.has-dropdown', topbar).addClass('not-click'); 49 | } else { 50 | $('.has-dropdown', topbar).removeClass('not-click'); 51 | } 52 | 53 | // Pad body when sticky (scrolled) or fixed. 54 | self.addCustomRule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }'); 55 | 56 | if (topbarContainer.hasClass('fixed')) { 57 | $('body').addClass('f-topbar-fixed'); 58 | } 59 | }); 60 | 61 | }, 62 | 63 | toggle: function (toggleEl) { 64 | var self = this; 65 | 66 | if (toggleEl) { 67 | var topbar = $(toggleEl).closest('[data-topbar]'); 68 | } else { 69 | var topbar = $('[data-topbar]'); 70 | } 71 | 72 | var settings = topbar.data('topbar-init'); 73 | 74 | var section = $('section, .section', topbar); 75 | 76 | if (self.breakpoint()) { 77 | if (!self.rtl) { 78 | section.css({left: '0%'}); 79 | $('>.name', section).css({left: '100%'}); 80 | } else { 81 | section.css({right: '0%'}); 82 | $('>.name', section).css({right: '100%'}); 83 | } 84 | 85 | $('li.moved', section).removeClass('moved'); 86 | topbar.data('index', 0); 87 | 88 | topbar 89 | .toggleClass('expanded') 90 | .css('height', ''); 91 | } 92 | 93 | if (settings.scrolltop) { 94 | if (!topbar.hasClass('expanded')) { 95 | if (topbar.hasClass('fixed')) { 96 | topbar.parent().addClass('fixed'); 97 | topbar.removeClass('fixed'); 98 | $('body').addClass('f-topbar-fixed'); 99 | } 100 | } else if (topbar.parent().hasClass('fixed')) { 101 | if (settings.scrolltop) { 102 | topbar.parent().removeClass('fixed'); 103 | topbar.addClass('fixed'); 104 | $('body').removeClass('f-topbar-fixed'); 105 | 106 | window.scrollTo(0,0); 107 | } else { 108 | topbar.parent().removeClass('expanded'); 109 | } 110 | } 111 | } else { 112 | if(topbar.parent().hasClass(self.settings.sticky_class)) { 113 | topbar.parent().addClass('fixed'); 114 | } 115 | 116 | if(topbar.parent().hasClass('fixed')) { 117 | if (!topbar.hasClass('expanded')) { 118 | topbar.removeClass('fixed'); 119 | topbar.parent().removeClass('expanded'); 120 | self.update_sticky_positioning(); 121 | } else { 122 | topbar.addClass('fixed'); 123 | topbar.parent().addClass('expanded'); 124 | } 125 | } 126 | } 127 | }, 128 | 129 | timer : null, 130 | 131 | events : function (bar) { 132 | var self = this; 133 | $(this.scope) 134 | .off('.topbar') 135 | .on('click.fndtn.topbar', '[data-topbar] .toggle-topbar', function (e) { 136 | e.preventDefault(); 137 | self.toggle(this); 138 | }) 139 | .on('click.fndtn.topbar', '[data-topbar] li.has-dropdown', function (e) { 140 | var li = $(this), 141 | target = $(e.target), 142 | topbar = li.closest('[data-topbar]'), 143 | settings = topbar.data('topbar-init'); 144 | 145 | if(target.data('revealId')) { 146 | self.toggle(); 147 | return; 148 | } 149 | 150 | if (self.breakpoint()) return; 151 | if (settings.is_hover && !Modernizr.touch) return; 152 | 153 | e.stopImmediatePropagation(); 154 | 155 | if (li.hasClass('hover')) { 156 | li 157 | .removeClass('hover') 158 | .find('li') 159 | .removeClass('hover'); 160 | 161 | li.parents('li.hover') 162 | .removeClass('hover'); 163 | } else { 164 | li.addClass('hover'); 165 | 166 | if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) { 167 | e.preventDefault(); 168 | } 169 | } 170 | }) 171 | .on('click.fndtn.topbar', '[data-topbar] .has-dropdown>a', function (e) { 172 | if (self.breakpoint()) { 173 | 174 | e.preventDefault(); 175 | 176 | var $this = $(this), 177 | topbar = $this.closest('[data-topbar]'), 178 | section = topbar.find('section, .section'), 179 | dropdownHeight = $this.next('.dropdown').outerHeight(), 180 | $selectedLi = $this.closest('li'); 181 | 182 | topbar.data('index', topbar.data('index') + 1); 183 | $selectedLi.addClass('moved'); 184 | 185 | if (!self.rtl) { 186 | section.css({left: -(100 * topbar.data('index')) + '%'}); 187 | section.find('>.name').css({left: 100 * topbar.data('index') + '%'}); 188 | } else { 189 | section.css({right: -(100 * topbar.data('index')) + '%'}); 190 | section.find('>.name').css({right: 100 * topbar.data('index') + '%'}); 191 | } 192 | 193 | topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height')); 194 | } 195 | }); 196 | 197 | $(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () { 198 | self.resize.call(self); 199 | }, 50)).trigger('resize'); 200 | 201 | $('body').off('.topbar').on('click.fndtn.topbar touchstart.fndtn.topbar', function (e) { 202 | var parent = $(e.target).closest('li').closest('li.hover'); 203 | 204 | if (parent.length > 0) { 205 | return; 206 | } 207 | 208 | $('[data-topbar] li').removeClass('hover'); 209 | }); 210 | 211 | // Go up a level on Click 212 | $(this.scope).on('click.fndtn.topbar', '[data-topbar] .has-dropdown .back', function (e) { 213 | e.preventDefault(); 214 | 215 | var $this = $(this), 216 | topbar = $this.closest('[data-topbar]'), 217 | section = topbar.find('section, .section'), 218 | settings = topbar.data('topbar-init'), 219 | $movedLi = $this.closest('li.moved'), 220 | $previousLevelUl = $movedLi.parent(); 221 | 222 | topbar.data('index', topbar.data('index') - 1); 223 | 224 | if (!self.rtl) { 225 | section.css({left: -(100 * topbar.data('index')) + '%'}); 226 | section.find('>.name').css({left: 100 * topbar.data('index') + '%'}); 227 | } else { 228 | section.css({right: -(100 * topbar.data('index')) + '%'}); 229 | section.find('>.name').css({right: 100 * topbar.data('index') + '%'}); 230 | } 231 | 232 | if (topbar.data('index') === 0) { 233 | topbar.css('height', ''); 234 | } else { 235 | topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height')); 236 | } 237 | 238 | setTimeout(function () { 239 | $movedLi.removeClass('moved'); 240 | }, 300); 241 | }); 242 | }, 243 | 244 | resize : function () { 245 | var self = this; 246 | $('[data-topbar]').each(function () { 247 | var topbar = $(this), 248 | settings = topbar.data('topbar-init'); 249 | 250 | var stickyContainer = topbar.parent('.' + self.settings.sticky_class); 251 | var stickyOffset; 252 | 253 | if (!self.breakpoint()) { 254 | var doToggle = topbar.hasClass('expanded'); 255 | topbar 256 | .css('height', '') 257 | .removeClass('expanded') 258 | .find('li') 259 | .removeClass('hover'); 260 | 261 | if(doToggle) { 262 | self.toggle(topbar); 263 | } 264 | } 265 | 266 | if(stickyContainer.length > 0) { 267 | if(stickyContainer.hasClass('fixed')) { 268 | // Remove the fixed to allow for correct calculation of the offset. 269 | stickyContainer.removeClass('fixed'); 270 | 271 | stickyOffset = stickyContainer.offset().top; 272 | if($(document.body).hasClass('f-topbar-fixed')) { 273 | stickyOffset -= topbar.data('height'); 274 | } 275 | 276 | topbar.data('stickyoffset', stickyOffset); 277 | stickyContainer.addClass('fixed'); 278 | } else { 279 | stickyOffset = stickyContainer.offset().top; 280 | topbar.data('stickyoffset', stickyOffset); 281 | } 282 | } 283 | 284 | }); 285 | }, 286 | 287 | breakpoint : function () { 288 | return !matchMedia(Foundation.media_queries['topbar']).matches; 289 | }, 290 | 291 | assemble : function (topbar) { 292 | var self = this, 293 | settings = topbar.data('topbar-init'), 294 | section = $('section', topbar), 295 | titlebar = $('> ul', topbar).first(); 296 | 297 | // Pull element out of the DOM for manipulation 298 | section.detach(); 299 | 300 | $('.has-dropdown>a', section).each(function () { 301 | var $link = $(this), 302 | $dropdown = $link.siblings('.dropdown'), 303 | url = $link.attr('href'); 304 | 305 | if (settings.mobile_show_parent_link && url && url.length > 1) { 306 | var $titleLi = $('
  • ' + $link.text() +'
  • '); 307 | } else { 308 | var $titleLi = $('
  • '); 309 | } 310 | 311 | // Copy link to subnav 312 | if (settings.custom_back_text == true) { 313 | $('h5>a', $titleLi).html(settings.back_text); 314 | } else { 315 | $('h5>a', $titleLi).html('« ' + $link.html()); 316 | } 317 | $dropdown.prepend($titleLi); 318 | }); 319 | 320 | // Put element back in the DOM 321 | section.appendTo(topbar); 322 | 323 | // check for sticky 324 | this.sticky(); 325 | 326 | this.assembled(topbar); 327 | }, 328 | 329 | assembled : function (topbar) { 330 | topbar.data('topbar-init', $.extend({}, topbar.data('topbar-init'), {assembled: true})); 331 | }, 332 | 333 | height : function (ul) { 334 | var total = 0, 335 | self = this; 336 | 337 | $('> li', ul).each(function () { total += $(this).outerHeight(true); }); 338 | 339 | return total; 340 | }, 341 | 342 | sticky : function () { 343 | var $window = $(window), 344 | self = this; 345 | 346 | $(window).on('scroll', function() { 347 | self.update_sticky_positioning(); 348 | }); 349 | }, 350 | 351 | update_sticky_positioning: function() { 352 | var klass = '.' + this.settings.sticky_class; 353 | var $window = $(window); 354 | 355 | if ($(klass).length > 0) { 356 | var distance = this.settings.sticky_topbar.data('stickyoffset'); 357 | if (!$(klass).hasClass('expanded')) { 358 | if ($window.scrollTop() > (distance)) { 359 | if (!$(klass).hasClass('fixed')) { 360 | $(klass).addClass('fixed'); 361 | $('body').addClass('f-topbar-fixed'); 362 | } 363 | } else if ($window.scrollTop() <= distance) { 364 | if ($(klass).hasClass('fixed')) { 365 | $(klass).removeClass('fixed'); 366 | $('body').removeClass('f-topbar-fixed'); 367 | } 368 | } 369 | } 370 | } 371 | }, 372 | 373 | off : function () { 374 | $(this.scope).off('.fndtn.topbar'); 375 | $(window).off('.fndtn.topbar'); 376 | }, 377 | 378 | reflow : function () {} 379 | }; 380 | }(jQuery, this, this.document)); 381 | -------------------------------------------------------------------------------- /static/js/foundation/foundation.clearing.js: -------------------------------------------------------------------------------- 1 | ;(function ($, window, document, undefined) { 2 | 'use strict'; 3 | 4 | Foundation.libs.clearing = { 5 | name : 'clearing', 6 | 7 | version: '5.0.0', 8 | 9 | settings : { 10 | templates : { 11 | viewing : '×' + 12 | '' 15 | }, 16 | 17 | // comma delimited list of selectors that, on click, will close clearing, 18 | // add 'div.clearing-blackout, div.visible-img' to close on background click 19 | close_selectors : '.clearing-close', 20 | 21 | // event initializers and locks 22 | init : false, 23 | locked : false 24 | }, 25 | 26 | init : function (scope, method, options) { 27 | var self = this; 28 | Foundation.inherit(this, 'throttle loaded'); 29 | 30 | this.bindings(method, options); 31 | 32 | if ($(this.scope).is('[data-clearing]')) { 33 | this.assemble($('li', this.scope)); 34 | } else { 35 | $('[data-clearing]', this.scope).each(function () { 36 | self.assemble($('li', this)); 37 | }); 38 | } 39 | }, 40 | 41 | events : function (scope) { 42 | var self = this; 43 | 44 | $(this.scope) 45 | .off('.clearing') 46 | .on('click.fndtn.clearing', 'ul[data-clearing] li', 47 | function (e, current, target) { 48 | var current = current || $(this), 49 | target = target || current, 50 | next = current.next('li'), 51 | settings = current.closest('[data-clearing]').data('clearing-init'), 52 | image = $(e.target); 53 | 54 | e.preventDefault(); 55 | 56 | if (!settings) { 57 | self.init(); 58 | settings = current.closest('[data-clearing]').data('clearing-init'); 59 | } 60 | 61 | // if clearing is open and the current image is 62 | // clicked, go to the next image in sequence 63 | if (target.hasClass('visible') && 64 | current[0] === target[0] && 65 | next.length > 0 && self.is_open(current)) { 66 | target = next; 67 | image = $('img', target); 68 | } 69 | 70 | // set current and target to the clicked li if not otherwise defined. 71 | self.open(image, current, target); 72 | self.update_paddles(target); 73 | }) 74 | 75 | .on('click.fndtn.clearing', '.clearing-main-next', 76 | function (e) { self.nav(e, 'next') }) 77 | .on('click.fndtn.clearing', '.clearing-main-prev', 78 | function (e) { self.nav(e, 'prev') }) 79 | .on('click.fndtn.clearing', this.settings.close_selectors, 80 | function (e) { Foundation.libs.clearing.close(e, this) }) 81 | .on('keydown.fndtn.clearing', 82 | function (e) { self.keydown(e) }); 83 | 84 | $(window).off('.clearing').on('resize.fndtn.clearing', 85 | function () { self.resize() }); 86 | 87 | this.swipe_events(scope); 88 | }, 89 | 90 | swipe_events : function (scope) { 91 | var self = this; 92 | 93 | $(this.scope) 94 | .on('touchstart.fndtn.clearing', '.visible-img', function(e) { 95 | if (!e.touches) { e = e.originalEvent; } 96 | var data = { 97 | start_page_x: e.touches[0].pageX, 98 | start_page_y: e.touches[0].pageY, 99 | start_time: (new Date()).getTime(), 100 | delta_x: 0, 101 | is_scrolling: undefined 102 | }; 103 | 104 | $(this).data('swipe-transition', data); 105 | e.stopPropagation(); 106 | }) 107 | .on('touchmove.fndtn.clearing', '.visible-img', function(e) { 108 | if (!e.touches) { e = e.originalEvent; } 109 | // Ignore pinch/zoom events 110 | if(e.touches.length > 1 || e.scale && e.scale !== 1) return; 111 | 112 | var data = $(this).data('swipe-transition'); 113 | 114 | if (typeof data === 'undefined') { 115 | data = {}; 116 | } 117 | 118 | data.delta_x = e.touches[0].pageX - data.start_page_x; 119 | 120 | if ( typeof data.is_scrolling === 'undefined') { 121 | data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) ); 122 | } 123 | 124 | if (!data.is_scrolling && !data.active) { 125 | e.preventDefault(); 126 | var direction = (data.delta_x < 0) ? 'next' : 'prev'; 127 | data.active = true; 128 | self.nav(e, direction); 129 | } 130 | }) 131 | .on('touchend.fndtn.clearing', '.visible-img', function(e) { 132 | $(this).data('swipe-transition', {}); 133 | e.stopPropagation(); 134 | }); 135 | }, 136 | 137 | assemble : function ($li) { 138 | var $el = $li.parent(); 139 | 140 | if ($el.parent().hasClass('carousel')) return; 141 | $el.after('
    '); 142 | 143 | var holder = $('#foundationClearingHolder'), 144 | settings = $el.data('clearing-init'), 145 | grid = $el.detach(), 146 | data = { 147 | grid: '', 148 | viewing: settings.templates.viewing 149 | }, 150 | wrapper = '
    ' + data.viewing + 151 | data.grid + '
    '; 152 | 153 | return holder.after(wrapper).remove(); 154 | }, 155 | 156 | open : function ($image, current, target) { 157 | var root = target.closest('.clearing-assembled'), 158 | container = $('div', root).first(), 159 | visible_image = $('.visible-img', container), 160 | image = $('img', visible_image).not($image); 161 | 162 | if (!this.locked()) { 163 | // set the image to the selected thumbnail 164 | image 165 | .attr('src', this.load($image)) 166 | .css('visibility', 'hidden'); 167 | 168 | this.loaded(image, function () { 169 | image.css('visibility', 'visible'); 170 | // toggle the gallery 171 | root.addClass('clearing-blackout'); 172 | container.addClass('clearing-container'); 173 | visible_image.show(); 174 | this.fix_height(target) 175 | .caption($('.clearing-caption', visible_image), $image) 176 | .center(image) 177 | .shift(current, target, function () { 178 | target.siblings().removeClass('visible'); 179 | target.addClass('visible'); 180 | }); 181 | }.bind(this)); 182 | } 183 | }, 184 | 185 | close : function (e, el) { 186 | e.preventDefault(); 187 | 188 | var root = (function (target) { 189 | if (/blackout/.test(target.selector)) { 190 | return target; 191 | } else { 192 | return target.closest('.clearing-blackout'); 193 | } 194 | }($(el))), container, visible_image; 195 | 196 | if (el === e.target && root) { 197 | container = $('div', root).first(); 198 | visible_image = $('.visible-img', container); 199 | this.settings.prev_index = 0; 200 | $('ul[data-clearing]', root) 201 | .attr('style', '').closest('.clearing-blackout') 202 | .removeClass('clearing-blackout'); 203 | container.removeClass('clearing-container'); 204 | visible_image.hide(); 205 | } 206 | 207 | return false; 208 | }, 209 | 210 | is_open : function (current) { 211 | return current.parent().prop('style').length > 0; 212 | }, 213 | 214 | keydown : function (e) { 215 | var clearing = $('ul[data-clearing]', '.clearing-blackout'); 216 | 217 | if (e.which === 39) this.go(clearing, 'next'); 218 | if (e.which === 37) this.go(clearing, 'prev'); 219 | if (e.which === 27) $('a.clearing-close').trigger('click'); 220 | }, 221 | 222 | nav : function (e, direction) { 223 | var clearing = $('ul[data-clearing]', '.clearing-blackout'); 224 | 225 | e.preventDefault(); 226 | this.go(clearing, direction); 227 | }, 228 | 229 | resize : function () { 230 | var image = $('img', '.clearing-blackout .visible-img'); 231 | 232 | if (image.length) { 233 | this.center(image); 234 | } 235 | }, 236 | 237 | // visual adjustments 238 | fix_height : function (target) { 239 | var lis = target.parent().children(), 240 | self = this; 241 | 242 | lis.each(function () { 243 | var li = $(this), 244 | image = li.find('img'); 245 | 246 | if (li.height() > image.outerHeight()) { 247 | li.addClass('fix-height'); 248 | } 249 | }) 250 | .closest('ul') 251 | .width(lis.length * 100 + '%'); 252 | 253 | return this; 254 | }, 255 | 256 | update_paddles : function (target) { 257 | var visible_image = target 258 | .closest('.carousel') 259 | .siblings('.visible-img'); 260 | 261 | if (target.next().length > 0) { 262 | $('.clearing-main-next', visible_image) 263 | .removeClass('disabled'); 264 | } else { 265 | $('.clearing-main-next', visible_image) 266 | .addClass('disabled'); 267 | } 268 | 269 | if (target.prev().length > 0) { 270 | $('.clearing-main-prev', visible_image) 271 | .removeClass('disabled'); 272 | } else { 273 | $('.clearing-main-prev', visible_image) 274 | .addClass('disabled'); 275 | } 276 | }, 277 | 278 | center : function (target) { 279 | if (!this.rtl) { 280 | target.css({ 281 | marginLeft : -(target.outerWidth() / 2), 282 | marginTop : -(target.outerHeight() / 2) 283 | }); 284 | } else { 285 | target.css({ 286 | marginRight : -(target.outerWidth() / 2), 287 | marginTop : -(target.outerHeight() / 2) 288 | }); 289 | } 290 | return this; 291 | }, 292 | 293 | // image loading and preloading 294 | 295 | load : function ($image) { 296 | if ($image[0].nodeName === "A") { 297 | var href = $image.attr('href'); 298 | } else { 299 | var href = $image.parent().attr('href'); 300 | } 301 | 302 | this.preload($image); 303 | 304 | if (href) return href; 305 | return $image.attr('src'); 306 | }, 307 | 308 | preload : function ($image) { 309 | this 310 | .img($image.closest('li').next()) 311 | .img($image.closest('li').prev()); 312 | }, 313 | 314 | img : function (img) { 315 | if (img.length) { 316 | var new_img = new Image(), 317 | new_a = $('a', img); 318 | 319 | if (new_a.length) { 320 | new_img.src = new_a.attr('href'); 321 | } else { 322 | new_img.src = $('img', img).attr('src'); 323 | } 324 | } 325 | return this; 326 | }, 327 | 328 | // image caption 329 | 330 | caption : function (container, $image) { 331 | var caption = $image.data('caption'); 332 | 333 | if (caption) { 334 | container 335 | .html(caption) 336 | .show(); 337 | } else { 338 | container 339 | .text('') 340 | .hide(); 341 | } 342 | return this; 343 | }, 344 | 345 | // directional methods 346 | 347 | go : function ($ul, direction) { 348 | var current = $('.visible', $ul), 349 | target = current[direction](); 350 | 351 | if (target.length) { 352 | $('img', target) 353 | .trigger('click', [current, target]); 354 | } 355 | }, 356 | 357 | shift : function (current, target, callback) { 358 | var clearing = target.parent(), 359 | old_index = this.settings.prev_index || target.index(), 360 | direction = this.direction(clearing, current, target), 361 | left = parseInt(clearing.css('left'), 10), 362 | width = target.outerWidth(), 363 | skip_shift; 364 | 365 | // we use jQuery animate instead of CSS transitions because we 366 | // need a callback to unlock the next animation 367 | if (target.index() !== old_index && !/skip/.test(direction)){ 368 | if (/left/.test(direction)) { 369 | this.lock(); 370 | clearing.animate({left : left + width}, 300, this.unlock()); 371 | } else if (/right/.test(direction)) { 372 | this.lock(); 373 | clearing.animate({left : left - width}, 300, this.unlock()); 374 | } 375 | } else if (/skip/.test(direction)) { 376 | // the target image is not adjacent to the current image, so 377 | // do we scroll right or not 378 | skip_shift = target.index() - this.settings.up_count; 379 | this.lock(); 380 | 381 | if (skip_shift > 0) { 382 | clearing.animate({left : -(skip_shift * width)}, 300, this.unlock()); 383 | } else { 384 | clearing.animate({left : 0}, 300, this.unlock()); 385 | } 386 | } 387 | 388 | callback(); 389 | }, 390 | 391 | direction : function ($el, current, target) { 392 | var lis = $('li', $el), 393 | li_width = lis.outerWidth() + (lis.outerWidth() / 4), 394 | up_count = Math.floor($('.clearing-container').outerWidth() / li_width) - 1, 395 | target_index = lis.index(target), 396 | response; 397 | 398 | this.settings.up_count = up_count; 399 | 400 | if (this.adjacent(this.settings.prev_index, target_index)) { 401 | if ((target_index > up_count) 402 | && target_index > this.settings.prev_index) { 403 | response = 'right'; 404 | } else if ((target_index > up_count - 1) 405 | && target_index <= this.settings.prev_index) { 406 | response = 'left'; 407 | } else { 408 | response = false; 409 | } 410 | } else { 411 | response = 'skip'; 412 | } 413 | 414 | this.settings.prev_index = target_index; 415 | 416 | return response; 417 | }, 418 | 419 | adjacent : function (current_index, target_index) { 420 | for (var i = target_index + 1; i >= target_index - 1; i--) { 421 | if (i === current_index) return true; 422 | } 423 | return false; 424 | }, 425 | 426 | // lock management 427 | 428 | lock : function () { 429 | this.settings.locked = true; 430 | }, 431 | 432 | unlock : function () { 433 | this.settings.locked = false; 434 | }, 435 | 436 | locked : function () { 437 | return this.settings.locked; 438 | }, 439 | 440 | off : function () { 441 | $(this.scope).off('.fndtn.clearing'); 442 | $(window).off('.fndtn.clearing'); 443 | }, 444 | 445 | reflow : function () { 446 | this.init(); 447 | } 448 | }; 449 | 450 | }(jQuery, this, this.document)); 451 | --------------------------------------------------------------------------------