├── partials ├── google-analytics.hbs ├── google-authorship.hbs ├── bootstrap-theme.hbs ├── footer.hbs ├── navbar.hbs └── comments.hbs ├── package.json ├── assets ├── fonts │ ├── icons.eot │ ├── icons.ttf │ ├── icons.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ ├── icons.svg │ └── glyphicons-halflings-regular.svg ├── js │ ├── nanobar.min.js │ ├── main.js │ ├── jquery.fitvids.js │ ├── headroom.min.js │ ├── jquery.fluidbox.min.js │ ├── plugins.js │ ├── imagesloaded.min.js │ ├── main.unmin.js │ └── infinitescroll.js └── css │ ├── main.css │ └── main.unmin.css ├── LICENSE ├── index.hbs ├── default.hbs ├── tag.hbs ├── author.hbs ├── README.md └── post.hbs /partials/google-analytics.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /partials/google-authorship.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mutiny", 3 | "version": "1.0.0" 4 | } 5 | -------------------------------------------------------------------------------- /assets/fonts/icons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-holland/Mutiny/HEAD/assets/fonts/icons.eot -------------------------------------------------------------------------------- /assets/fonts/icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-holland/Mutiny/HEAD/assets/fonts/icons.ttf -------------------------------------------------------------------------------- /assets/fonts/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-holland/Mutiny/HEAD/assets/fonts/icons.woff -------------------------------------------------------------------------------- /partials/bootstrap-theme.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-holland/Mutiny/HEAD/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-holland/Mutiny/HEAD/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/max-holland/Mutiny/HEAD/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /partials/footer.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /partials/navbar.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Max Holland 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, 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, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /assets/js/nanobar.min.js: -------------------------------------------------------------------------------- 1 | var Nanobar=function(){var c,d,e,f,g,h,k={width:"100%",height:"4px",zIndex:9999,top:"0"},l={width:0,height:"100%",clear:"both",transition:"height .3s"};c=function(a,b){for(var c in b)a.style[c]=b[c];a.style["float"]="left"};f=function(){var a=this,b=this.width-this.here;0.1>b&&-0.1 2 |
3 |
4 | 5 |
6 |
7 | 18 | 19 | comments powered by Disqus 20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- 1 | body{padding-top:51px}#post-container{opacity:0;transition:all .2s linear}.show-posts{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=1);opacity:1!important}a{transition:.25s;text-decoration:none}a:hover{text-decoration:none}.footer{padding:60px 0;text-align:center}.footer a:not(:hover){color:inherit}#infscr-loading{display:none!important}#mynano{top:auto!important;bottom:0}.container{max-width:960px}.post{padding:60px 0;border-bottom:1px solid #eee;opacity:0;transition:all .2s linear}.post img,.post iframe,.post object,.post object embed{width:100%}.post img{height:auto}.post aside ul{list-style:none;margin:0;padding:0}.post aside ul li a:not(:hover){color:inherit}.post aside .side-header{font-weight:700;margin-top:30px;margin-bottom:5px}.post aside .side-header:first-child{margin-top:0}.post header{margin-bottom:40px}.post header h1,.post header h2{margin:0}.post header h1 a,.post header h2 a{text-decoration:none}.post header h1 a:not(:hover),.post header h2 a:not(:hover){color:inherit}.post section{margin-bottom:40px}.post footer .well{border-radius:0;border:none;box-shadow:none}.mobile-side time{font-weight:700;margin-right:5px}.mobile-side a{text-decoration:none}.mobile-side a:not(:hover){color:inherit;font-weight:700}.comments{padding:60px 0;border-bottom:2px solid #eee}.comments .container{max-width:960px}.headroom{transition:-webkit-transform 200ms linear;transition:transform 200ms linear}.headroom--pinned{-webkit-transform:translateY(0%);transform:translateY(0%)}.headroom--unpinned{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.fluidbox{outline:none}.fluidbox-overlay{cursor:pointer;cursor:-webkit-zoom-out;opacity:0;position:fixed;top:0;left:0;bottom:0;right:0;transition:all .25s ease-in-out}.fluidbox-wrap{margin:0 auto;position:relative}.fluidbox-wrap,.fluidbox-ghost{background-size:cover;background-position:center center;transition:all .25s ease-in-out}.fluidbox-ghost{position:absolute}.fluidbox-closed .fluidbox-ghost{transition-property:top,left,opacity,-webkit-transform;transition-property:top,left,opacity,transform;transition-delay:0,0,.25s,0}.fluidbox-closed .fluidbox-wrap img{transition-property:opacity;transition-delay:.25s;transition-duration:0}@media screen and (min-width:768px){.post,.comments,.footer{padding:120px 0}} -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";var e=e||{_isSafari:null,_isMobile:null,_searchedTag:null};e.isSafari=function(){if(null===e._isSafari){var a=navigator.userAgent,t=a.indexOf("Chrome"),i=a.indexOf("Safari");e._isSafari=-1!=i&&-1==t?!0:!1}return e._isSafari},e.isMobile=function(){if(null===e._isMobile){var a=/(Android|webOS|iPhone|iPod|iPad|BlackBerry|IEMobile|Opera Mini)/i;e._isMobile=a.test(navigator.userAgent)?!0:!1}return e._isMobile},e.replaceAll=function(e,a,t){return e.replace(new RegExp(a,"g"),t)},e.elemExists=function(e){return e=$(e),e.length>0?!0:!1},e.getTag=function(a){if(null===e._searchedTag&&e.elemExists(a)){var t,i=window.location.href,r=i.split("tag"),n=e.replaceAll(r[1],"/","");n=e.replaceAll(n,"-"," "),t=n.charAt(0).toUpperCase(),n=t+n.substring(1,n.length),e._searchedTag=n}return e._searchedTag},e.aTagWrap=function(a,t,i){if(e.elemExists(a)){var r=$(a);r.length>0&&r.each(function(){var e=$(this),a=e.attr("src");if(!e.hasClass(i)){var r="";r="",e.wrap(r)}})}},window.app=e}(window,document),function(e){"use strict";function a(e){var a=e.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);delete a[0];for(var t=1;3>=t;++t)a[t]=parseInt(a[t]).toString(16),1==a[t].length&&(a[t]="0"+a[t]);return"#"+a.join("")}var t,i=window.app,r=function(a,t){var r=document.querySelectorAll(t);imagesLoaded(r,function(){var t=e(a);e(".post").fitVids(),i.aTagWrap(".post img","fluid-popup","no-fluid"),i.elemExists(".fluid-popup")&&e(".fluid-popup").fluidbox(),t.addClass("show-posts"),e(".post").addClass("show-posts")})},n=function(a,t,i){var r=e(a),n=e(t);if(r.length>0&&n.length>0){var o=r.html().split("of"),s=n.attr("href").slice(-2).replace("/","");r=parseInt(o[1]),s=parseInt(s),e("#post-container").infinitescroll({navSelector:".pagination",nextSelector:".pagination .older-posts",itemSelector:".post",loading:{finishedMsg:"No more posts.",img:"http://static.tumblr.com/dbek3sy/gUImt1cjo/ajax-loader.gif"}},function(a){i.go(40);{var t=e(a);t.attr("id")}i.go(60),s+=1,i.go(80),s>r?(e(window).unbind(".infscr"),e(".pagination").remove()):n.attr("href","/page/"+s+"/"),i.go(100),e(a).addClass("show-posts")})}};if(i.elemExists(".navbar")){var o=document.querySelector(".navbar"),s=new Headroom(o);s.init(),t=e(".navbar").css("backgroundColor"),t=a(t)}if(i.elemExists(".post")&&r("#post-container",".post"),null!==i.getTag("#tag-search")&&e("#tag-search").html(i.getTag("#tag-search")),i.elemExists(".page-number",".older-posts")){var l={bg:t,target:"",id:"mynano"},c=new Nanobar(l);n(".page-number",".older-posts",c)}}(jQuery); -------------------------------------------------------------------------------- /index.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{! The comment above "< default" means - insert everything in this file into 4 | the {body} of the default.hbs template, which contains our header/footer. }} 5 | 6 | 7 | {{! The main content area on the homepage }} 8 |
9 | {{! Each post will be output using this markup }} 10 | {{#foreach posts}} 11 | 12 |
13 |
14 |
15 | 28 |
29 |
30 |

{{{title}}}

31 |
32 |
33 |

34 | 35 | 36 | {{tags separator=" / "}} 37 | 38 |

39 |
40 |
41 |

{{excerpt}}…

42 |
43 |
44 |

45 | Read More 46 |

47 | 50 |
51 |
52 |
53 |
54 |
55 | 56 | {{/foreach}} 57 | 58 | {{!! After all the posts, we have the previous/next pagination links }} 59 | 62 |
-------------------------------------------------------------------------------- /default.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{! Document Settings }} 5 | 6 | 7 | 8 | {{! Page Meta }} 9 | {{meta_title}} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | {{! Styles'n'Scripts }} 19 | 20 | 21 | {{! Include for changeable bootstrap theme }} 22 | {{> bootstrap-theme }} 23 | 24 | 25 | 26 | 27 | {{> google-authorship}} 28 | 29 | 30 | 31 | 32 | {{! Ghost outputs important style and meta data with this tag }} 33 | {{ghost_head}} 34 | 35 | 36 | 39 | {{! Navbar include }} 40 | {{> navbar}} 41 | 42 | 43 | {{! Everything else gets inserted here }} 44 | {{{body}}} 45 | 46 | {{! Footer include }} 47 | {{> footer}} 48 | 49 | {{!-- jQuery needs to come before `{{ghost_foot}}` so that jQuery can be used in code injection --}} 50 | 51 | 52 | {{! Ghost outputs important scripts and data with this tag }} 53 | {{ghost_foot}} 54 | 55 | {{! The main JavaScript file for Casper }} 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | {{! Google analytics include }} 66 | {{> google-analytics}} 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /tag.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{! The comment above "< default" means - insert everything in this file into 4 | the {body} of the default.hbs template, which contains our header/footer. }} 5 | 6 | 7 | {{! The main content area on the homepage }} 8 |
9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | {{! Each post will be output using this markup }} 19 | {{#foreach posts}} 20 | 21 |
22 |
23 |
24 | 36 |
37 |
38 |

{{{title}}}

39 |
40 |
41 |

42 | 43 | 44 | {{tags separator=" / "}} 45 | 46 |

47 |
48 |
49 |

{{excerpt}}…

50 |
51 |
52 |

53 | Read More 54 |

55 | 58 |
59 |
60 |
61 |
62 |
63 | 64 | {{/foreach}} 65 | 66 | {{!! After all the posts, we have the previous/next pagination links }} 67 | 70 |
-------------------------------------------------------------------------------- /author.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{! The comment above "< default" means - insert everything in this file into 4 | the {body} of the default.hbs template, which contains our header/footer. }} 5 | 6 | 7 | {{! The main content area on the homepage }} 8 | {{! Everything inside the #author tags pulls data from the author }} 9 | {{#author}} 10 |
11 |
12 |
13 |
14 |

All posts by {{name}}

15 |
16 |
17 |
18 |
19 | {{/author}} 20 |
21 | {{! Each post will be output using this markup }} 22 | {{#foreach posts}} 23 | 24 |
25 |
26 |
27 | 39 |
40 |
41 |

{{{title}}}

42 |
43 |
44 |

45 | 46 | 47 | {{tags separator=" / "}} 48 | 49 |

50 |
51 |
52 |

{{excerpt}}…

53 |
54 |
55 |

56 | Read More 57 |

58 | 61 |
62 |
63 |
64 |
65 |
66 | 67 | {{/foreach}} 68 | 69 | {{!! After all the posts, we have the previous/next pagination links }} 70 | 73 |
-------------------------------------------------------------------------------- /assets/js/jquery.fitvids.js: -------------------------------------------------------------------------------- 1 | /*global jQuery */ 2 | /*jshint browser:true */ 3 | /*! 4 | * FitVids 1.1 5 | * 6 | * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com 7 | * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ 8 | * Released under the WTFPL license - http://sam.zoy.org/wtfpl/ 9 | * 10 | */ 11 | 12 | (function( $ ){ 13 | 14 | "use strict"; 15 | 16 | $.fn.fitVids = function( options ) { 17 | var settings = { 18 | customSelector: null, 19 | ignore: null 20 | }; 21 | 22 | if(!document.getElementById('fit-vids-style')) { 23 | // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js 24 | var head = document.head || document.getElementsByTagName('head')[0]; 25 | var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; 26 | var div = document.createElement('div'); 27 | div.innerHTML = '

x

'; 28 | head.appendChild(div.childNodes[1]); 29 | } 30 | 31 | if ( options ) { 32 | $.extend( settings, options ); 33 | } 34 | 35 | return this.each(function(){ 36 | var selectors = [ 37 | "iframe[src*='player.vimeo.com']", 38 | "iframe[src*='youtube.com']", 39 | "iframe[src*='youtube-nocookie.com']", 40 | "iframe[src*='kickstarter.com'][src*='video.html']", 41 | "object", 42 | "embed" 43 | ]; 44 | 45 | if (settings.customSelector) { 46 | selectors.push(settings.customSelector); 47 | } 48 | 49 | var ignoreList = '.fitvidsignore'; 50 | 51 | if(settings.ignore) { 52 | ignoreList = ignoreList + ', ' + settings.ignore; 53 | } 54 | 55 | var $allVideos = $(this).find(selectors.join(',')); 56 | $allVideos = $allVideos.not("object object"); // SwfObj conflict patch 57 | $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. 58 | 59 | $allVideos.each(function(){ 60 | var $this = $(this); 61 | if($this.parents(ignoreList).length > 0) { 62 | return; // Disable FitVids on this video. 63 | } 64 | if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } 65 | if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) 66 | { 67 | $this.attr('height', 9); 68 | $this.attr('width', 16); 69 | } 70 | var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), 71 | width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), 72 | aspectRatio = height / width; 73 | if(!$this.attr('id')){ 74 | var videoID = 'fitvid' + Math.floor(Math.random()*999999); 75 | $this.attr('id', videoID); 76 | } 77 | $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%"); 78 | $this.removeAttr('height').removeAttr('width'); 79 | }); 80 | }); 81 | }; 82 | // Works with either jQuery or Zepto 83 | })( window.jQuery || window.Zepto ); 84 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Mutiny 2 | ====== 3 | 4 | A free premium bootstrap Ghost theme 5 | 6 | ## [Download Here](https://github.com/mholland1337/Mutiny/releases/latest) 7 | 8 | ### Ghost v0.5 [Download Here](https://github.com/mholland1337/Mutiny/releases/latest) 9 | ### Ghost v0.4.2 [Download Here](https://github.com/mholland1337/Mutiny/releases/tag/v1.0.0) 10 | 11 | Based on the style of the blog by [Designmodo](http://journal.designmodo.com/). Mutiny is a clean, minimal Ghost theme with all the bells and whistles. 12 | 13 | ![Mutiny index](http://res.cloudinary.com/dqmsrcjxwj/image/upload/v1479550108/mutiny-index_wgdatj.png) 14 | 15 | Built in [Boostrap 3](http://getbootstrap.com/) Mutiny is can be easily customized to meet your needs. You can add your own custom bootstrap theme to overwite the default boostrap stylesheet. Mutiny currently comes with the [bootswatch](http://bootswatch.com/) theme [cosmo](http://bootswatch.com/cosmo/) as default. 16 | 17 | ![Mutiny post](http://res.cloudinary.com/dqmsrcjxwj/image/upload/v1479550109/mutiny-post_jlsosm.png) 18 | 19 | ## Features 20 | * Built in Boostrap 3 21 | * Easily customizable 22 | * Infinite scroll 23 | * Custom tags page 24 | * Google authorship 25 | * Responsive design 26 | * Image lightbox 27 | * Disqus comment support 28 | * [Structured data](http://www.google.com/webmasters/tools/richsnippets?q=maxholland.me) 29 | 30 | ## Installation 31 | 1. Download the theme by [clicking here](https://github.com/mholland1337/Mutiny/releases/latest). 32 | 2. Extract the .zip file. 33 | 3. Make the appropriate changes e.g. side bar links 34 | 4. Re-zip the file and upload to your ghost blog. 35 | 36 | ## Changing the boostrap theme 37 | 1. Go into the partials folder. 38 | 2. Open up **bootstrap-theme.hbs** in your text editor. 39 | 3. Replace the stylesheet link with your link. 40 | 4. You can find some great themes from [bootswatch here](http://www.bootstrapcdn.com/#bootswatch_tab) 41 | 42 | Original: 43 | `` 44 | 45 | Changed : 46 | `` 47 | 48 | 49 | ## Changing navbar links 50 | 1. Go into the partials folder. 51 | 2. Open up **navbar.hbs** in your text editor. 52 | 3. Replace the existing link **href** with your link. 53 | 54 | ## Adding navbar links 55 | 1. Go into the partials folder. 56 | 2. Open up **navbar.hbs** in your text editor. 57 | 3. Copy and paste the
  • tag and change it to be your link e.g. 58 | 59 | Original: 60 | `
  • About
  • ` 61 | 62 | New Link: 63 | `
  • Hello
  • ` 64 | 65 | ## Changing social links 66 | 1. Go into the partials folder. 67 | 2. Open up **footer.hbs** in your text editor. 68 | 3. Replace the existing link **href** with your link. 69 | 70 | #### Adding a new social link. 71 | 1. Follow steps 1. & 2. above. 72 | 2. Copy one the the lines of code under the links heading. 73 | 3. Change the href to be your link and the text to be your text. 74 | 75 | 76 | ## Adding Disqus comments 77 | 1. Go into the partials folder. 78 | 2. Open up **comments.hbs**. 79 | 3. Replace the disqus shortname with your disqus shortname (see example) 80 | 4. Save it. 81 | 5. Open up **post.hbs**. 82 | 6. Un-rem the comment code. Example below 83 | 84 | Remmed out: 85 | `` 86 | 87 | Un remmed: 88 | `{{> comments}}` 89 | 90 | ## GooglePlus Authorship 91 | 1. Go into the partials folder. 92 | 2. Open up **google-authorship.hbs**. 93 | 3. Paste the link of your google plus profile into href="" (see example) 94 | 95 | 96 | -------------------------------------------------------------------------------- /assets/js/headroom.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * headroom.js v0.6.0 - Give your page some headroom. Hide your header until you need it 3 | * Copyright (c) 2014 Nick Williams - http://wicky.nillia.ms/headroom.js 4 | * License: MIT 5 | */ 6 | 7 | !function(a,b){"use strict";function c(a){this.callback=a,this.ticking=!1}function d(a){if(arguments.length<=0)throw new Error("Missing arguments in extend function");var b,c,e=a||{};for(c=1;ca,c=a+this.getViewportHeight()>this.getDocumentHeight();return b||c},toleranceExceeded:function(a,b){return Math.abs(a-this.lastKnownScrollY)>=this.tolerance[b]},shouldUnpin:function(a,b){var c=a>this.lastKnownScrollY,d=a>=this.offset;return c&&d&&b},shouldPin:function(a,b){var c=athis.lastKnownScrollY?"down":"up",c=this.toleranceExceeded(a,b);this.isOutOfBounds(a)||(a<=this.offset?this.top():this.notTop(),this.shouldUnpin(a,c)?this.unpin():this.shouldPin(a,c)&&this.pin(),this.lastKnownScrollY=a)}},f.options={tolerance:{up:0,down:0},offset:0,classes:{pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",initial:"headroom"}},f.cutsTheMustard="undefined"!=typeof g&&g.rAF&&g.bind&&g.classList,a.Headroom=f}(window,document); -------------------------------------------------------------------------------- /assets/fonts/icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /assets/css/main.unmin.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 51px; 3 | } 4 | 5 | #post-container { 6 | opacity: 0; 7 | transition: all 0.2s linear; 8 | } 9 | 10 | .show-posts { 11 | filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=1); 12 | opacity: 1 !important; 13 | } 14 | 15 | a { 16 | transition: 0.25s; 17 | text-decoration: none; 18 | } 19 | a:hover { 20 | text-decoration: none; 21 | } 22 | 23 | .footer { 24 | padding: 60px 0; 25 | text-align: center; 26 | } 27 | .footer a:not(:hover) { 28 | color: inherit; 29 | } 30 | 31 | #infscr-loading { 32 | display: none !important; 33 | } 34 | 35 | #mynano { 36 | top: auto !important; 37 | bottom: 0; 38 | } 39 | 40 | /* Bootstrap Overides */ 41 | .container { 42 | max-width: 960px; 43 | } 44 | 45 | .post { 46 | padding: 60px 0; 47 | border-bottom: 1px solid #eee; 48 | opacity: 0; 49 | transition: all 0.2s linear; 50 | } 51 | .post img, .post iframe, .post object, .post object embed { 52 | width: 100%; 53 | } 54 | .post img { 55 | height: auto; 56 | } 57 | .post aside ul { 58 | list-style: none; 59 | margin: 0; 60 | padding: 0; 61 | } 62 | .post aside ul li a:not(:hover) { 63 | color: inherit; 64 | } 65 | .post aside .side-header { 66 | font-weight: 700; 67 | margin-top: 30px; 68 | margin-bottom: 5px; 69 | } 70 | .post aside .side-header:first-child { 71 | margin-top: 0; 72 | } 73 | .post header { 74 | margin-bottom: 40px; 75 | } 76 | .post header h1, .post header h2 { 77 | margin: 0; 78 | } 79 | .post header h1 a, .post header h2 a { 80 | text-decoration: none; 81 | } 82 | .post header h1 a:not(:hover), .post header h2 a:not(:hover) { 83 | color: inherit; 84 | } 85 | .post section { 86 | margin-bottom: 40px; 87 | } 88 | .post footer .well { 89 | border-radius: 0; 90 | border: none; 91 | box-shadow: none; 92 | } 93 | 94 | .mobile-side time { 95 | font-weight: 700; 96 | margin-right: 5px; 97 | } 98 | .mobile-side a { 99 | text-decoration: none; 100 | } 101 | .mobile-side a:not(:hover) { 102 | color: inherit; 103 | font-weight: 700; 104 | } 105 | 106 | .comments { 107 | padding: 0; 108 | padding: 60px 0; 109 | border-bottom: 2px solid #eee; 110 | } 111 | .comments .container { 112 | max-width: 960px; 113 | } 114 | 115 | .headroom { 116 | transition: -webkit-transform 200ms linear; 117 | transition: transform 200ms linear; 118 | } 119 | 120 | .headroom--pinned { 121 | -webkit-transform: translateY(0%); 122 | transform: translateY(0%); 123 | } 124 | 125 | .headroom--unpinned { 126 | -webkit-transform: translateY(-100%); 127 | transform: translateY(-100%); 128 | } 129 | 130 | .fluidbox { 131 | outline: none; 132 | } 133 | 134 | .fluidbox-overlay { 135 | cursor: pointer; 136 | cursor: -webkit-zoom-out; 137 | opacity: 0; 138 | position: fixed; 139 | top: 0; 140 | left: 0; 141 | bottom: 0; 142 | right: 0; 143 | transition: all .25s ease-in-out; 144 | } 145 | 146 | .fluidbox-wrap { 147 | background-position: center center; 148 | background-size: cover; 149 | margin: 0 auto; 150 | position: relative; 151 | transition: all .25s ease-in-out; 152 | } 153 | 154 | .fluidbox-ghost { 155 | background-size: cover; 156 | background-position: center center; 157 | position: absolute; 158 | transition: all .25s ease-in-out; 159 | } 160 | 161 | .fluidbox-closed .fluidbox-ghost { 162 | transition-property: top, left, opacity, -webkit-transform; 163 | transition-property: top, left, opacity, transform; 164 | transition-delay: 0, 0, .25s, 0; 165 | } 166 | 167 | .fluidbox-closed .fluidbox-wrap img { 168 | transition-property: opacity; 169 | transition-delay: .25s; 170 | transition-duration: 0s; 171 | } 172 | 173 | /* Responsive: Portrait tablets and up */ 174 | @media screen and (min-width: 768px) { 175 | .post, .comments, .footer { 176 | padding: 120px 0; 177 | } 178 | } -------------------------------------------------------------------------------- /assets/js/jquery.fluidbox.min.js: -------------------------------------------------------------------------------- 1 | (function(e,t){var n=function(e,t,n){var r;return function(){function u(){if(!n)e.apply(s,o);r=null}var s=this,o=arguments;if(r)clearTimeout(r);else if(n)e.apply(s,o);r=setTimeout(u,t||100)}};jQuery.fn[t]=function(e){return e?this.bind("resize",n(e)):this.trigger(t)}})(jQuery,"smartresize");(function(e){e.fn.fluidbox=function(t){var n=e.extend(true,{viewportFill:.95,overlayColor:"rgba(255,255,255,.85)",debounceResize:true,stackIndex:1e3,stackIndexDelta:10,closeTrigger:[{selector:".fluidbox-overlay",event:"click"},{selector:"document",event:"keyup",keyCode:27}]},t);if(n.stackIndex",{"class":"fluidbox-overlay",css:{"background-color":n.overlayColor,"z-index":n.stackIndex}});var r=this,i=e(window),s,o=function(){e(".fluidbox-opened").trigger("click")},u=function(e){var t=e.find("img"),n=e.find(".fluidbox-ghost"),r=e.find(".fluidbox-wrap"),s=i.scrollTop()-t.offset().top+.5*t.data("imgHeight")*(t.data("imgScale")-1)+.5*(i.height()-t.data("imgHeight")*t.data("imgScale")),o=.5*t.data("imgWidth")*(t.data("imgScale")-1)+.5*(i.width()-t.data("imgWidth")*t.data("imgScale"))-t.offset().left,u=t.data("imgScale");n.css({transform:"translate("+parseInt(o*10)/10+"px,"+parseInt(s*10)/10+"px) scale("+parseInt(u*1e3)/1e3+")",top:t.offset().top-r.offset().top,left:t.offset().left-r.offset().left})},a=function(){r.each(function(){f(e(this))})},f=function(e){s=i.width()/i.height();if(e.hasClass("fluidbox")){var t=e.find("img"),r=e.find(".fluidbox-ghost"),o=e.find(".fluidbox-wrap"),u=t.data();function a(){u.imgWidth=t.width();u.imgHeight=t.height();u.imgRatio=t.width()/t.height();r.css({width:t.width(),height:t.height(),top:t.offset().top-o.offset().top+parseInt(t.css("borderTopWidth"))+parseInt(t.css("paddingTop")),left:t.offset().left-o.offset().left+parseInt(t.css("borderLeftWidth"))+parseInt(t.css("paddingLeft"))});if(s>u.imgRatio){u.imgScale=i.height()*n.viewportFill/t.height()}else{u.imgScale=i.width()*n.viewportFill/t.width()}}a();t.load(a)}},l=function(t){if(e(this).hasClass("fluidbox")){var r=e(this),i=e(this).find("img"),s=e(this).find(".fluidbox-ghost"),o=e(this).find(".fluidbox-wrap"),a={};if(e(this).data("fluidbox-state")===0||!e(this).data("fluidbox-state")){e("",{src:i.attr("src")}).load(function(){r.append($fbOverlay).data("fluidbox-state",1).removeClass("fluidbox-closed").addClass("fluidbox-opened");if(a["close"])window.clearTimeout(a["close"]);a["open"]=window.setTimeout(function(){e(".fluidbox-overlay").css({opacity:1})},10);e(".fluidbox-wrap").css({zIndex:n.stackIndex-n.stackIndexDelta-1});o.css({"z-index":n.stackIndex+n.stackIndexDelta});s.css({"background-image":"url("+i.attr("src")+")",opacity:1});i.css({opacity:0});e("",{src:r.attr("href")}).load(function(){s.css({"background-image":"url("+r.attr("href")+")"})});u(r)})}else{r.data("fluidbox-state",0).removeClass("fluidbox-opened").addClass("fluidbox-closed");if(a["open"])window.clearTimeout(a["open"]);a["close"]=window.setTimeout(function(){e(".fluidbox-overlay").remove();o.css({"z-index":n.stackIndex-n.stackIndexDelta})},10);e(".fluidbox-overlay").css({opacity:0});s.css({transform:"translate(0,0) scale(1)",opacity:0,top:i.offset().top-o.offset().top+parseInt(i.css("borderTopWidth"))+parseInt(i.css("paddingTop")),left:i.offset().left-o.offset().left+parseInt(i.css("borderLeftWidth"))+parseInt(i.css("paddingLeft"))});i.css({opacity:1})}t.preventDefault()}};if(n.closeTrigger){e.each(n.closeTrigger,function(t){var r=n.closeTrigger[t];if(r.selector!="window"){if(r.selector=="document"){if(r.keyCode){e(document).on(r.event,function(e){if(e.keyCode==r.keyCode)o()})}else{e(document).on(r.event,o)}}else{e(document).on(r.event,n.closeTrigger[t].selector,o)}}else{i.on(r.event,o)}})}r.each(function(t){if(e(this).is("a")&&e(this).children().length===1&&e(this).children().is("img")){var r=e("
    ",{"class":"fluidbox-wrap",css:{"z-index":n.stackIndex-n.stackIndexDelta}});var i=e(this);i.addClass("fluidbox").wrapInner(r).find("img").css({opacity:1}).after('
    ').each(function(){var t=e(this);if(t.width()>0&&t.height()>0){f(i);i.click(l)}else{t.load(function(){f(i);i.click(l)})}})}});var c=function(){a();var t=e("a.fluidbox.fluidbox-opened");if(t.length>0)u(t)};if(n.debounceResize){e(window).smartresize(c)}else{e(window).resize(c)}return r}})(jQuery) -------------------------------------------------------------------------------- /post.hbs: -------------------------------------------------------------------------------- 1 | {{!< default}} 2 | 3 | {{! The comment above "< default" means - insert everything in this file into 4 | the {body} of the default.hbs template, which contains our header/footer. }} 5 | 6 |
    7 | {{#post}} 8 |
    9 |
    10 |
    11 | 24 |
    25 |
    26 |

    {{{title}}}

    27 |
    28 |
    29 |

    30 | 31 | 32 | {{tags separator=" / "}} 33 | 34 |

    35 |
    36 |
    37 | {{content}} 38 |
    39 |
    40 |
    41 | Share on : 42 | Twitter, 44 | Facebook or 46 | Google+
    48 |
    49 | {{#author}} 50 |
    51 |
    52 |
    53 | {{#if image}} 54 | 55 | {{name}} 56 | 57 | {{/if}} 58 |
    59 |

    by

    60 | 61 | {{#if bio}} 62 |

    {{bio}}

    63 | {{else}} 64 |

    Read more posts by this author.

    65 | {{/if}} 66 | {{#if website}} 67 |

    {{website}}

    68 | {{/if}} 69 |
    70 |
    71 |
    72 |
    73 | {{/author}} 74 |
    75 |
    76 |
    77 |
    78 | {{/post}} 79 |
    80 | 81 | {{! Comments include }} 82 | 83 | 84 | -------------------------------------------------------------------------------- /assets/js/plugins.js: -------------------------------------------------------------------------------- 1 | (function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("eventEmitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(this,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function c(e){this.img=e}function f(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=void 0!==u,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);for(var i=n.querySelectorAll("img"),r=0,o=i.length;o>r;r++){var s=i[r];this.addImage(s)}}},s.prototype.addImage=function(e){var t=new c(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return void this.complete();for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),c.prototype=new t,c.prototype.check=function(){var e=v[this.img.src]||new f(this.img.src);if(e.isConfirmed)return void this.confirm(e.isLoaded,"cached was confirmed");if(this.img.complete&&void 0!==this.img.naturalWidth)return void this.confirm(0!==this.img.naturalWidth,"naturalWidth");var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},c.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return f.prototype=new t,f.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},f.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},f.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},f.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},f.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},f.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}); -------------------------------------------------------------------------------- /assets/js/imagesloaded.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * imagesLoaded PACKAGED v3.1.4 3 | * JavaScript is all like "You images are done yet or what?" 4 | * MIT License 5 | */ 6 | 7 | (function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("eventEmitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(this,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function c(e){this.img=e}function f(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);for(var i=n.querySelectorAll("img"),r=0,o=i.length;o>r;r++){var s=i[r];this.addImage(s)}}},s.prototype.addImage=function(e){var t=new c(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),c.prototype=new t,c.prototype.check=function(){var e=v[this.img.src]||new f(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},c.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return f.prototype=new t,f.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},f.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},f.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},f.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},f.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},f.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s}); -------------------------------------------------------------------------------- /assets/js/main.unmin.js: -------------------------------------------------------------------------------- 1 | //Reusable non plugin stuff goes in app 2 | (function (win, doc) { 3 | 'use strict'; 4 | var app = app || { 5 | _isSafari : null, 6 | _isMobile : null, 7 | _searchedTag : null 8 | }; 9 | 10 | app.isSafari = function(){ 11 | if(app._isSafari === null){ 12 | var userAgent = navigator.userAgent; 13 | var chrome = userAgent.indexOf('Chrome'); 14 | var safari = userAgent.indexOf('Safari'); 15 | 16 | if(safari != -1 && chrome == -1){ 17 | app._isSafari = true; 18 | }else{ 19 | app._isSafari = false; 20 | }; 21 | } 22 | 23 | return app._isSafari; 24 | } 25 | 26 | 27 | app.isMobile = function(){ 28 | if(app._isMobile === null){ 29 | var mobileDevices = /(Android|webOS|iPhone|iPod|iPad|BlackBerry|IEMobile|Opera Mini)/i; 30 | if(mobileDevices.test(navigator.userAgent)){ 31 | app._isMobile = true; 32 | }else{ 33 | app._isMobile = false; 34 | }; 35 | }; 36 | 37 | return app._isMobile; 38 | } 39 | 40 | app.replaceAll = function(str,find,replace){ 41 | return str.replace(new RegExp(find, 'g'), replace); 42 | } 43 | 44 | app.elemExists = function(elem){ 45 | elem = $(elem); 46 | 47 | if(elem.length > 0){ 48 | return true; 49 | }else{ 50 | return false; 51 | }; 52 | } 53 | 54 | 55 | 56 | app.getTag = function(elem){ 57 | 58 | if(app._searchedTag === null){ 59 | if(app.elemExists(elem)){ 60 | var url = window.location.href; 61 | var splitURL = url.split('tag'); 62 | var tag = app.replaceAll(splitURL[1],'/',''); 63 | var tagFirstChar; 64 | 65 | tag = app.replaceAll(tag,'-',' '); 66 | tagFirstChar = tag.charAt(0).toUpperCase(); 67 | tag = tagFirstChar + tag.substring(1,tag.length); 68 | 69 | app._searchedTag = tag; 70 | }; 71 | }; 72 | 73 | return app._searchedTag; 74 | } 75 | 76 | 77 | app.aTagWrap = function(elem,elemClass,exclude){ 78 | if(app.elemExists(elem)){ 79 | var imgs = $(elem); 80 | if(imgs.length > 0){ 81 | imgs.each(function(){ 82 | var $this = $(this); 83 | var imgLink = $this.attr('src'); 84 | 85 | if(!$this.hasClass(exclude)){ 86 | var html = ''; 87 | html = ""; 88 | 89 | $this.wrap(html); 90 | } 91 | }); 92 | 93 | }; 94 | }; 95 | } 96 | 97 | 98 | window.app = app; 99 | 100 | })(window, document); 101 | 102 | 103 | 104 | (function($) { 105 | 'use strict'; 106 | var app = window.app; 107 | var initImagesLoaded = function(container,elem){ 108 | 109 | var posts = document.querySelectorAll(elem); 110 | 111 | imagesLoaded( posts, function() { 112 | 113 | var postContainer = $(container); 114 | 115 | //Fitvid 116 | $('.post').fitVids(); 117 | 118 | //Convert images 119 | app.aTagWrap('.post img','fluid-popup','no-fluid'); 120 | 121 | //Fluidbox 122 | if(app.elemExists('.fluid-popup')){ 123 | $('.fluid-popup').fluidbox(); 124 | } 125 | 126 | 127 | postContainer.addClass('show-posts'); 128 | $('.post').addClass('show-posts'); 129 | }); 130 | } 131 | 132 | var initInfiniteScroll = function(pageNumber,nextPage,nanobar){ 133 | var maxPageNumber = $(pageNumber); 134 | var nextPageElem = $(nextPage); 135 | 136 | if(maxPageNumber.length > 0 && nextPageElem.length > 0){ 137 | var splitPageNumber = maxPageNumber.html().split('of'); 138 | var getNextPage = nextPageElem.attr('href').slice(-2).replace('/',''); 139 | 140 | maxPageNumber = parseInt(splitPageNumber[1]); 141 | getNextPage = parseInt(getNextPage); 142 | 143 | 144 | 145 | $('#post-container').infinitescroll({ 146 | navSelector : ".pagination", 147 | // selector for the paged navigation (it will be hidden) 148 | nextSelector : ".pagination .older-posts", 149 | // selector for the NEXT link (to page 2) 150 | itemSelector : ".post", 151 | loading: { 152 | finishedMsg: "No more posts.", 153 | //http://static.tumblr.com/dbek3sy/pX1lrx8xv/ajax-loader.gif 154 | img: 'http://static.tumblr.com/dbek3sy/gUImt1cjo/ajax-loader.gif', 155 | //msgText:"Loading new posts.." 156 | } 157 | 158 | }, function (newElems) { 159 | nanobar.go( 40 ); 160 | 161 | var elem = $(newElems); 162 | var elemID = elem.attr('id'); 163 | 164 | nanobar.go( 60 ); 165 | 166 | //update pagination 167 | getNextPage = getNextPage + 1; 168 | 169 | nanobar.go( 80 ); 170 | 171 | if(getNextPage > maxPageNumber){ 172 | $(window).unbind('.infscr'); 173 | $('.pagination').remove(); 174 | }else{ 175 | nextPageElem.attr('href','/page/'+getNextPage+'/'); 176 | } 177 | 178 | nanobar.go( 100 ); 179 | 180 | $(newElems).addClass('show-posts'); 181 | 182 | }); 183 | } 184 | } 185 | 186 | function hexc(colorval) { 187 | var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 188 | delete(parts[0]); 189 | for (var i = 1; i <= 3; ++i) { 190 | parts[i] = parseInt(parts[i]).toString(16); 191 | if (parts[i].length == 1) parts[i] = '0' + parts[i]; 192 | } 193 | return '#' + parts.join(''); 194 | } 195 | 196 | //Check what page, check if link is in navbar, if true set to active. 197 | 198 | var navBG; 199 | 200 | //Headroom 201 | if(app.elemExists('.navbar')){ 202 | // grab an element 203 | var myElement = document.querySelector('.navbar'); 204 | // construct an instance of Headroom, passing the element 205 | var headroom = new Headroom(myElement); 206 | // initialise 207 | headroom.init(); 208 | 209 | navBG = $('.navbar').css('backgroundColor'); 210 | 211 | navBG = hexc(navBG); 212 | }; 213 | 214 | 215 | 216 | //Check if the images are loaded 217 | if(app.elemExists('.post')){ 218 | initImagesLoaded('#post-container','.post'); 219 | }; 220 | 221 | //Get the tag searched for 222 | if(app.getTag('#tag-search') !== null){ 223 | $('#tag-search').html(app.getTag('#tag-search')); 224 | }; 225 | 226 | //Setup infinite scroll 227 | if(app.elemExists('.page-number','.older-posts')){ 228 | var options = { 229 | bg: navBG, 230 | 231 | // leave target blank for global nanobar 232 | target: '', 233 | 234 | // id for new nanobar 235 | id: 'mynano' 236 | }; 237 | 238 | var nanobar = new Nanobar( options ); 239 | 240 | 241 | initInfiniteScroll('.page-number','.older-posts',nanobar); 242 | }; 243 | 244 | 245 | })(jQuery); 246 | 247 | 248 | 249 | -------------------------------------------------------------------------------- /assets/js/infinitescroll.js: -------------------------------------------------------------------------------- 1 | (function(e,t,n){"use strict";t.infinitescroll=function(n,r,i){this.element=t(i);if(!this._create(n,r)){this.failed=true}};t.infinitescroll.defaults={loading:{finished:n,finishedMsg:"Congratulations, you've reached the end of the internet.",img:"data:image/gif;base64,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",msg:null,msgText:"Loading the next set of posts...",selector:null,speed:"fast",start:n},state:{isDuringAjax:false,isInvalidPage:false,isDestroyed:false,isDone:false,isPaused:false,isBeyondMaxPage:false,currPage:1},debug:false,behavior:n,binder:t(e),nextSelector:"div.navigation a:first",navSelector:"div.navigation",contentSelector:null,extraScrollPx:150,itemSelector:"div.post",animate:false,pathParse:n,dataType:"html",appendCallback:true,bufferPx:40,errorCallback:function(){},infid:0,pixelsFromNavToBottom:n,path:n,prefill:false,maxPage:n};t.infinitescroll.prototype={_binding:function(t){var r=this,i=r.options;i.v="2.0b2.120520";if(!!i.behavior&&this["_binding_"+i.behavior]!==n){this["_binding_"+i.behavior].call(this);return}if(t!=="bind"&&t!=="unbind"){this._debug("Binding value "+t+" not valid");return false}if(t==="unbind"){this.options.binder.unbind("smartscroll.infscr."+r.options.infid)}else{this.options.binder[t]("smartscroll.infscr."+r.options.infid,function(){r.scroll()})}this._debug("Binding",t)},_create:function(i,s){var o=t.extend(true,{},t.infinitescroll.defaults,i);this.options=o;var u=t(e);var a=this;if(!a._validate(i)){return false}var f=t(o.nextSelector).attr("href");if(!f){this._debug("Navigation selector not found");return false}o.path=o.path||this._determinepath(f);o.contentSelector=o.contentSelector||this.element;o.loading.selector=o.loading.selector||o.contentSelector;o.loading.msg=o.loading.msg||t('
    Loading...
    '+o.loading.msgText+"
    ");(new Image).src=o.loading.img;if(o.pixelsFromNavToBottom===n){o.pixelsFromNavToBottom=t(document).height()-t(o.navSelector).offset().top;this._debug("pixelsFromNavToBottom: "+o.pixelsFromNavToBottom)}var l=this;o.loading.start=o.loading.start||function(){t(o.navSelector).hide();o.loading.msg.appendTo(o.loading.selector).show(o.loading.speed,t.proxy(function(){this.beginAjax(o)},l))};o.loading.finished=o.loading.finished||function(){if(!o.state.isBeyondMaxPage)o.loading.msg.fadeOut(o.loading.speed)};o.callback=function(e,r,i){if(!!o.behavior&&e["_callback_"+o.behavior]!==n){e["_callback_"+o.behavior].call(t(o.contentSelector)[0],r,i)}if(s){s.call(t(o.contentSelector)[0],r,o,i)}if(o.prefill){u.bind("resize.infinite-scroll",e._prefill)}};if(i.debug){if(Function.prototype.bind&&(typeof console==="object"||typeof console==="function")&&typeof console.log==="object"){["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(e){console[e]=this.call(console[e],console)},Function.prototype.bind)}}this._setup();if(o.prefill){this._prefill()}return true},_prefill:function(){function s(){return r.options.contentSelector.height()<=i.height()}var r=this;var i=t(e);this._prefill=function(){if(s()){r.scroll()}i.bind("resize.infinite-scroll",function(){if(s()){i.unbind("resize.infinite-scroll");r.scroll()}})};this._prefill()},_debug:function(){if(true!==this.options.debug){return}if(typeof console!=="undefined"&&typeof console.log==="function"){if(Array.prototype.slice.call(arguments).length===1&&typeof Array.prototype.slice.call(arguments)[0]==="string"){console.log(Array.prototype.slice.call(arguments).toString())}else{console.log(Array.prototype.slice.call(arguments))}}else if(!Function.prototype.bind&&typeof console!=="undefined"&&typeof console.log==="object"){Function.prototype.call.call(console.log,console,Array.prototype.slice.call(arguments))}},_determinepath:function(t){var r=this.options;if(!!r.behavior&&this["_determinepath_"+r.behavior]!==n){return this["_determinepath_"+r.behavior].call(this,t)}if(!!r.pathParse){this._debug("pathParse manual");return r.pathParse(t,this.options.state.currPage+1)}else if(t.match(/^(.*?)\b2\b(.*?$)/)){t=t.match(/^(.*?)\b2\b(.*?$)/).slice(1)}else if(t.match(/^(.*?)2(.*?$)/)){if(t.match(/^(.*?page=)2(\/.*|$)/)){t=t.match(/^(.*?page=)2(\/.*|$)/).slice(1);return t}t=t.match(/^(.*?)2(.*?$)/).slice(1)}else{if(t.match(/^(.*?page=)1(\/.*|$)/)){t=t.match(/^(.*?page=)1(\/.*|$)/).slice(1);return t}else{this._debug("Sorry, we couldn't parse your Next (Previous Posts) URL. Verify your the css selector points to the correct A tag. If you still get this error: yell, scream, and kindly ask for help at infinite-scroll.com.");r.state.isInvalidPage=true}}this._debug("determinePath",t);return t},_error:function(t){var r=this.options;if(!!r.behavior&&this["_error_"+r.behavior]!==n){this["_error_"+r.behavior].call(this,t);return}if(t!=="destroy"&&t!=="end"){t="unknown"}this._debug("Error",t);if(t==="end"||r.state.isBeyondMaxPage){this._showdonemsg()}r.state.isDone=true;r.state.currPage=1;r.state.isPaused=false;r.state.isBeyondMaxPage=false;this._binding("unbind")},_loadcallback:function(i,s,o){var u=this.options,a=this.options.callback,f=u.state.isDone?"done":!u.appendCallback?"no-append":"append",l;if(!!u.behavior&&this["_loadcallback_"+u.behavior]!==n){this["_loadcallback_"+u.behavior].call(this,i,s);return}switch(f){case"done":this._showdonemsg();return false;case"no-append":if(u.dataType==="html"){s="
    "+s+"
    ";s=t(s).find(u.itemSelector)}break;case"append":var c=i.children();if(c.length===0){return this._error("end")}l=document.createDocumentFragment();while(i[0].firstChild){l.appendChild(i[0].firstChild)}this._debug("contentSelector",t(u.contentSelector)[0]);t(u.contentSelector)[0].appendChild(l);s=c.get();break}u.loading.finished.call(t(u.contentSelector)[0],u);if(u.animate){var h=t(e).scrollTop()+t(u.loading.msg).height()+u.extraScrollPx+"px";t("html,body").animate({scrollTop:h},800,function(){u.state.isDuringAjax=false})}if(!u.animate){u.state.isDuringAjax=false}a(this,s,o);if(u.prefill){this._prefill()}},_nearbottom:function(){var i=this.options,s=0+t(document).height()-i.binder.scrollTop()-t(e).height();if(!!i.behavior&&this["_nearbottom_"+i.behavior]!==n){return this["_nearbottom_"+i.behavior].call(this)}this._debug("math:",s,i.pixelsFromNavToBottom);return s-i.bufferPx-1&&t(n[r]).length===0){this._debug("Your "+r+" found no elements.");return false}}return true},bind:function(){this._binding("bind")},destroy:function(){this.options.state.isDestroyed=true;this.options.loading.finished();return this._error("destroy")},pause:function(){this._pausing("pause")},resume:function(){this._pausing("resume")},beginAjax:function(r){var i=this,s=r.path,o,u,a,f;r.state.currPage++;if(r.maxPage!=n&&r.state.currPage>r.maxPage){r.state.isBeyondMaxPage=true;this.destroy();return}o=t(r.contentSelector).is("table, tbody")?t(""):t("
    ");u=typeof s==="function"?s(r.state.currPage):s.join(r.state.currPage);i._debug("heading into ajax",u);a=r.dataType==="html"||r.dataType==="json"?r.dataType:"html+callback";if(r.appendCallback&&r.dataType==="html"){a+="+callback"}switch(a){case"html+callback":i._debug("Using HTML via .load() method");o.load(u+" "+r.itemSelector,n,function(t){i._loadcallback(o,t,u)});break;case"html":i._debug("Using "+a.toUpperCase()+" via $.ajax() method");t.ajax({url:u,dataType:r.dataType,complete:function(t,n){f=typeof t.isResolved!=="undefined"?t.isResolved():n==="success"||n==="notmodified";if(f){i._loadcallback(o,t.responseText,u)}else{i._error("end")}}});break;case"json":i._debug("Using "+a.toUpperCase()+" via $.ajax() method");t.ajax({dataType:"json",type:"GET",url:u,success:function(e,t,s){f=typeof s.isResolved!=="undefined"?s.isResolved():t==="success"||t==="notmodified";if(r.appendCallback){if(r.template!==n){var a=r.template(e);o.append(a);if(f){i._loadcallback(o,a)}else{i._error("end")}}else{i._debug("template must be defined.");i._error("end")}}else{if(f){i._loadcallback(o,e,u)}else{i._error("end")}}},error:function(){i._debug("JSON ajax request failed.");i._error("end")}});break}},retrieve:function(r){r=r||null;var i=this,s=i.options;if(!!s.behavior&&this["retrieve_"+s.behavior]!==n){this["retrieve_"+s.behavior].call(this,r);return}if(s.state.isDestroyed){this._debug("Instance is destroyed");return false}s.state.isDuringAjax=true;s.loading.start.call(t(s.contentSelector)[0],s)},scroll:function(){var t=this.options,r=t.state;if(!!t.behavior&&this["scroll_"+t.behavior]!==n){this["scroll_"+t.behavior].call(this);return}if(r.isDuringAjax||r.isInvalidPage||r.isDone||r.isDestroyed||r.isPaused){return}if(!this._nearbottom()){return}this.retrieve()},toggle:function(){this._pausing()},unbind:function(){this._binding("unbind")},update:function(n){if(t.isPlainObject(n)){this.options=t.extend(true,this.options,n)}}};t.fn.infinitescroll=function(n,r){var i=typeof n;switch(i){case"string":var s=Array.prototype.slice.call(arguments,1);this.each(function(){var e=t.data(this,"infinitescroll");if(!e){return false}if(!t.isFunction(e[n])||n.charAt(0)==="_"){return false}e[n].apply(e,s)});break;case"object":this.each(function(){var e=t.data(this,"infinitescroll");if(e){e.update(n)}else{e=new t.infinitescroll(n,r,this);if(!e.failed){t.data(this,"infinitescroll",e)}}});break}return this};var r=t.event,i;r.special.smartscroll={setup:function(){t(this).bind("scroll",r.special.smartscroll.handler)},teardown:function(){t(this).unbind("scroll",r.special.smartscroll.handler)},handler:function(e,n){var r=this,s=arguments;e.type="smartscroll";if(i){clearTimeout(i)}i=setTimeout(function(){t(r).trigger("smartscroll",s)},n==="execAsap"?0:100)}};t.fn.smartscroll=function(e){return e?this.bind("smartscroll",e):this.trigger("smartscroll",["execAsap"])}})(window,jQuery) -------------------------------------------------------------------------------- /assets/fonts/glyphicons-halflings-regular.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | --------------------------------------------------------------------------------