kaschber 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/_layouts/home.html CHANGED
@@ -4,42 +4,38 @@ current: home
4
4
  class: 'home-template'
5
5
  ---
6
6
 
7
- <div class="site-header-content outer{% if site.header_style == "Left aligned" %} left-aligned{% endif %}{% unless site.cover %}{% if site.header_style == "Hidden" %} no-content{% endif %}{% endunless %}">
7
+ <div class="site-header-content outer{% if site.header_style == 'Left aligned' %} left-aligned{% endif %}{% unless site.cover %}{% if site.header_style == 'Hidden' %} no-content{% endif %}{% endunless %}">
8
8
 
9
- {% if site.cover or page.cover %}
10
- <img class="site-header-cover"
11
- src="{{ site.baseurl }}{% if page.cover %}{{ page.cover }}{% elsif site.cover %}{{ site.cover }}{% endif %}"
12
- style="{% unless page.cover or site.cover %} no-cover {% endunless %}"
13
- alt="{{ site.title }}"
14
- />
15
- {% endif %}
9
+ {% if site.cover or page.cover %}
10
+ <img class="site-header-cover" src="{{ site.baseurl }}{% if page.cover %}{{ page.cover }}{% elsif site.cover %}{{ site.cover }}{% endif %}" style="{% unless page.cover or site.cover %} no-cover {% endunless %}" alt="{{ site.title }}">
11
+ {% endif %}
16
12
 
17
- {% if site.header_style != "Hidden" %}
18
- <div class="site-header-inner inner">
19
- {% unless site.show_logo_in_navigation %}
20
- {% if site.logo %}
21
- <img class="site-logo" src="{{ site.logo }}" alt="{{ site.title }}">
22
- {% else %}
23
- <h1 class="site-title">{{ site.title }}</h1>
24
- {% endif %}
25
- {% endunless %}
26
- {% if site.description %}
27
- <p class="site-description">{{ site.description }}</p>
28
- {% endif %}
29
- </div>
30
- {% endif %}
13
+ {% if site.header_style != "Hidden" %}
14
+ <div class="site-header-inner inner">
15
+ {% if site.navigation_layout == "Logo on cover" %}
16
+ {% if site.logo %}
17
+ <img class="site-logo" src="{{ site.logo }}" alt="{{ site.title }}">
18
+ {% else %}
19
+ <h1 class="site-title">{{ site.title }}</h1>
20
+ {% endif %}
21
+ {% endif %}
22
+ {% if site.description %}
23
+ <p class="site-description">{{ site.description }}</p>
24
+ {% endif %}
25
+ </div>
26
+ {% endif %}
31
27
 
32
28
  </div>
33
29
 
34
30
  <main id="site-main" class="site-main outer">
35
- <div class="inner posts">
31
+ <div class="inner posts">
36
32
 
37
- <div class="post-feed">
38
- {% assign posts = paginator.posts | default: site.posts %}
39
- {% for post in posts %}
40
- {% include post-card.html post=post%}
41
- {% endfor %}
33
+ <div class="post-feed">
34
+ {% assign posts = paginator.posts | default: site.posts %}
35
+ {% for post in posts %}
36
+ {% include post-card.html post=post%}
37
+ {% endfor %}
42
38
  </div>
43
39
 
44
- </div>
45
- </main>
40
+ </div>
41
+ </main>
data/_layouts/page.html CHANGED
@@ -6,30 +6,26 @@ disqus: false
6
6
  ---
7
7
 
8
8
  <main id="site-main" class="site-main">
9
- <article class="article {{post_class}}">
10
-
11
- <header class="article-header gh-canvas">
12
-
13
- <h1 class="article-title">{{page.title}}</h1>
14
-
15
- {% if page.cover %}
16
- <figure class="article-image">
17
- <img
18
- src="{{ site.baseurl }}{{ page.cover }}"
19
- alt="{% if page.cover_alt %}{{page.cover_alt}}{% else %}{{page.title}}{% endif %}"
20
- />
21
- {% if page.cover_caption %}
22
- <figcaption>{{page.cover_caption}}</figcaption>
23
- {% endif %}
24
- </figure>
25
- {% endif %}
26
-
27
- </header>
28
-
29
- <section class="gh-content gh-canvas">
30
- {{content}}
31
- </section>
32
-
33
- </article>
34
- </main>
9
+ <article class="article {{post_class}}">
35
10
 
11
+ <header class="article-header gh-canvas">
12
+
13
+ <h1 class="article-title">{{page.title}}</h1>
14
+
15
+ {% if page.cover %}
16
+ <figure class="article-image">
17
+ <img src="{{ site.baseurl }}{{ page.cover }}" alt="{% if page.cover_alt %}{{page.cover_alt}}{% else %}{{page.title}}{% endif %}">
18
+ {% if page.cover_caption %}
19
+ <figcaption>{{page.cover_caption}}</figcaption>
20
+ {% endif %}
21
+ </figure>
22
+ {% endif %}
23
+
24
+ </header>
25
+
26
+ <section class="gh-content gh-canvas">
27
+ {{content}}
28
+ </section>
29
+
30
+ </article>
31
+ </main>
data/_layouts/post.html CHANGED
@@ -6,118 +6,121 @@ disqus: false
6
6
  ---
7
7
 
8
8
  <main id="site-main" class="site-main">
9
- <article class="article {{page.class}} {% if page.post_image_style == "Full" %}image-full{% elsif page.post_image_style == "Small" %}image-small{% endif %}">
9
+ <article class="article {{page.class}} {% if page.post_image_style == 'Full' %}image-full{% elsif page.post_image_style == 'Small' %}image-small{% endif %}">
10
10
 
11
11
  <header class="article-header gh-canvas">
12
12
 
13
- <div class="article-tag post-card-tags">
14
- {% if page.tags.size > 0 %}
15
- {% for tag in page.tags %}
16
- {% if forloop.first %}
17
- <span class="post-card-primary-tag">
18
- <a href="{{ site.baseurl }}tags/{{ tag | slugify: "latin" }}/">{{tag | capitalize}}</a>
19
- </span>
20
- {% endif %}
21
- {% endfor %}
22
- {% endif %}
23
- {% if page.featured %}
24
- <span class="post-card-featured">{% include rss.html %} Featured</span>
13
+ <div class="article-tag post-card-tags">
14
+ {% if page.tags.size > 0 %}
15
+ {% for tag in page.tags %}
16
+ {% if forloop.first %}
17
+ <span class="post-card-primary-tag">
18
+ <a href="{{ site.baseurl }}tags/{{ tag | slugify: "latin" }}/">{{tag | capitalize}}</a>
19
+ </span>
25
20
  {% endif %}
26
- </div>
21
+ {% endfor %}
22
+ {% endif %}
23
+ {% if page.featured %}
24
+ <span class="post-card-featured">{% include rss.html %} Featured</span>
25
+ {% endif %}
26
+ </div>
27
27
 
28
- <h1 class="article-title">{{page.title}}</h1>
28
+ <h1 class="article-title">{{page.title}}</h1>
29
29
 
30
- {% if page.custom_excerpt %}
31
- <p class="article-excerpt">{{page.custom_excerpt}}</p>
32
- {% endif %}
30
+ {% if page.custom_excerpt %}
31
+ <p class="article-excerpt">{{page.custom_excerpt}}</p>
32
+ {% endif %}
33
33
 
34
- <div class="article-byline">
34
+ <div class="article-byline">
35
35
  <section class="article-byline-content">
36
36
 
37
- {% if page.author.size > 0 %}
38
- <ul class="author-list">
39
- {% for author in site.authors %}
40
-
41
- {% if page.author contains author.username %}
42
- <li class="author-list-item">
43
- {% if author.picture %}
44
- <a href="{{ site.baseurl }}authors/{{ author.username }}" class="author-avatar">
45
- <img class="author-profile-image" src="{{ site.baseurl }}{{ author.picture }}" alt="{{ author.username }}" />
46
- </a>
47
- {% else %}
48
- <a href="{{ site.baseurl }}authors/{{ author.username }}" class="author-avatar author-profile-image">{% include icons/avatar.html %}</a>
49
- {% endif %}
50
- </li>
51
- {% endif %}
52
- {% endfor %}
53
- </ul>
54
- {% endif %}
37
+ {% if page.author.size > 0 %}
38
+ <ul class="author-list">
39
+ {% for author in site.authors %}
55
40
 
56
- <div class="article-byline-meta">
57
- {% if page.author.size > 0 %}
58
- <h4 class="author-name">
59
- {% for author in site.authors %}
60
- {% if page.author contains author.username %}
61
- <a href="{{ site.baseurl }}authors/{{ author.username }}">
62
- {{author.name}}
63
- </a>
64
- {% unless forloop.last %},{% endunless %}
65
- {% endif %}
66
- {% endfor %}
67
- </h4>
41
+ {% if page.author contains author.username %}
42
+ <li class="author-list-item">
43
+ {% if author.picture %}
44
+ <a href="{{ site.baseurl }}authors/{{ author.username }}" class="author-avatar">
45
+ <img class="author-profile-image" src="{{ site.baseurl }}{{ author.picture }}" alt="{{ author.username }}">
46
+ </a>
47
+ {% else %}
48
+ <a href="{{ site.baseurl }}authors/{{ author.username }}" class="author-avatar author-profile-image">{% include icons/avatar.html %}</a>
68
49
  {% endif %}
69
- <div class="byline-meta-content">
70
- <time class=="byline-meta-date" datetime="{{ page.date | date:'%e %B %Y' }}">{{ page.date | date:'%e %B %Y' }}</time>
71
- {% if page.reading_time %}
72
- <span class="byline-reading-time"><span class="bull">&bull;</span> {{page.reading_time}}</span>
73
- {% else %}
74
- {% assign words_per_minute = site.words_per_minute | default: 200 %}
75
- {% assign words = page.content | strip_html | number_of_words %}
76
- {% if words <= words_per_minute %}
77
- <span class="byline-reading-time"><span class="bull">&bull;</span> 1 min read</span>
78
- {% else %}
79
- <span class="byline-reading-time"><span class="bull">&bull;</span> {{ words | divided_by:words_per_minute }} min read</span>
80
- {% endif %}
81
- {% endif %}
82
- </div>
83
- </div>
50
+ </li>
51
+ {% endif %}
52
+ {% endfor %}
53
+ </ul>
54
+ {% endif %}
55
+
56
+ <div class="article-byline-meta">
57
+ {% if page.author.size > 0 %}
58
+ <h4 class="author-name">
59
+ {% for author in site.authors %}
60
+ {% if page.author contains author.username %}
61
+ <a href="{{ site.baseurl }}authors/{{ author.username }}">
62
+ {{author.name}}
63
+ </a>
64
+ {% unless forloop.last %},{% endunless %}
65
+ {% endif %}
66
+ {% endfor %}
67
+ </h4>
68
+ {% endif %}
69
+ <div class="byline-meta-content">
70
+ <time class="byline-meta-date" datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date:'%e %B %Y' }}</time>
71
+ {% if page.reading_time %}
72
+ <span class="byline-reading-time">
73
+ <span class="bull">&bull;</span>
74
+ {{page.reading_time}}</span>
75
+ {% else %}
76
+ {% assign words_per_minute = site.words_per_minute | default: 200 %}
77
+ {% assign words = page.content | strip_html | number_of_words %}
78
+ {% if words <= words_per_minute %}
79
+ <span class="byline-reading-time">
80
+ <span class="bull">&bull;</span>
81
+ 1 min read</span>
82
+ {% else %}
83
+ <span class="byline-reading-time">
84
+ <span class="bull">&bull;</span>
85
+ {{ words | divided_by:words_per_minute }} min read</span>
86
+ {% endif %}
87
+ {% endif %}
88
+ </div>
89
+ </div>
84
90
 
85
91
  </section>
86
- </div>
92
+ </div>
87
93
 
88
- {% if page.post_image_style != "Hidden" %}
89
- {% if page.cover %}
90
- <figure class="article-image">
91
- <img
92
- src="{{ site.baseurl }}{{ page.cover }}"
93
- alt="{% if page.cover_alt %}{{page.cover_alt}}{% else %}{{page.title}}{% endif %}"
94
- />
95
- {% if page.cover_caption %}
96
- <figcaption>{{page.cover_caption}}</figcaption>
97
- {% endif %}
98
- </figure>
99
- {% endif %}
94
+ {% if page.post_image_style != "Hidden" %}
95
+ {% if page.cover %}
96
+ <figure class="article-image">
97
+ <img src="{{ site.baseurl }}{{ page.cover }}" alt="{% if page.cover_alt %}{{page.cover_alt}}{% else %}{{page.title}}{% endif %}">
98
+ {% if page.cover_caption %}
99
+ <figcaption>{{page.cover_caption}}</figcaption>
100
+ {% endif %}
101
+ </figure>
100
102
  {% endif %}
103
+ {% endif %}
101
104
 
102
105
  </header>
103
106
  <section class="gh-content gh-canvas">
104
- {% include custom-post-content.html %}
107
+ {% include custom-post-content.html %}
105
108
 
106
- {{content}}
109
+ {{content}}
107
110
  </section>
111
+ </article>
108
112
  </main>
109
113
 
110
114
  {% if page.show_recent_posts_footer != false %}
111
115
 
112
- {% assign posts = paginator.posts | default: site.posts | where_exp: "item", "item.id != page.id" %}
113
- {% if posts %}
114
- <aside class="read-more-wrap outer">
115
- <div class="read-more inner">
116
- {% for post in posts limit: 3 %}
117
- {% include post-card.html post=post %}
118
- {% endfor %}
119
- </div>
120
- </aside>
121
- {% endif %}
122
- {% endif %}
123
-
116
+ {% assign posts = paginator.posts | default: site.posts | where_exp: "item", "item.id != page.id" %}
117
+ {% if posts %}
118
+ <aside class="read-more-wrap outer">
119
+ <div class="read-more inner">
120
+ {% for post in posts limit: 3 %}
121
+ {% include post-card.html post=post %}
122
+ {% endfor %}
123
+ </div>
124
+ </aside>
125
+ {% endif %}
126
+ {% endif %}
data/_layouts/tag.html CHANGED
@@ -5,51 +5,48 @@ layout: default
5
5
  <!-- dynamically loading backgrounds for tags, descriptions and page titles -->
6
6
  {% assign decoded_url = page.url | url_decode %}
7
7
  {% for tag in site.tags %}
8
- {% if decoded_url contains tag.name %}
9
- {% assign cover = tag.cover %}
10
- {% assign tag_description = tag.description %}
11
- {% endif %}
8
+ {% if decoded_url contains tag.name %}
9
+ {% assign cover = tag.cover %}
10
+ {% assign tag_description = tag.description %}
11
+ {% endif %}
12
12
  {% endfor %}
13
13
 
14
14
  {% assign filtered_posts = paginator.posts | default: site.posts | where_exp: 'items', 'items.tags contains page.title or items.tags contains page.tag' %}
15
15
  <main id="site-main" class="site-main outer">
16
16
 
17
17
  <div class="inner posts">
18
- <div class="post-feed">
19
-
20
- <section class="post-card post-card-large">
21
-
22
- {% if cover or page.cover %}
23
- <div class="post-card-image-link">
24
- <img class="post-card-image"
25
- src="{{ site.baseurl }}{% if cover %}{{ cover }}{% else %}{{ page.cover }}{% endif %} "
26
- alt="{{title}}"
27
- />
28
- </div>
29
- {% endif %}
30
-
31
-
32
- <div class="post-card-content">
33
- <div class="post-card-content-link">
34
- <header class="post-card-header">
35
- <h2 class="post-card-title">{{ page.tag | default: page.name }}</h2>
36
- </header>
37
- <div class="post-card-excerpt">
38
- {% if page.description %}
39
- {{ page.description }}
40
- {% elsif page.tag %}
41
- A collection of {{ filtered_posts.size }} posts
42
- {% endif %}
43
- </div>
44
- </div>
45
- </div>
46
-
47
- </section>
48
-
49
- {% for post in filtered_posts %}
50
- {% include post-card.html post=post %}
51
- {% endfor %}
52
-
18
+ <div class="post-feed">
19
+
20
+ <section class="post-card post-card-large">
21
+
22
+ {% if cover or page.cover %}
23
+ <div class="post-card-image-link">
24
+ <img class="post-card-image" src="{{ site.baseurl }}{% if cover %}{{ cover }}{% else %}{{ page.cover }}{% endif %} " alt="{{title}}">
25
+ </div>
26
+ {% endif %}
27
+
28
+
29
+ <div class="post-card-content">
30
+ <div class="post-card-content-link">
31
+ <header class="post-card-header">
32
+ <h2 class="post-card-title">{{ page.tag | default: page.name }}</h2>
33
+ </header>
34
+ <div class="post-card-excerpt">
35
+ {% if page.description %}
36
+ {{ page.description }}
37
+ {% elsif page.tag %}
38
+ A collection of {{ filtered_posts.size }} posts
39
+ {% endif %}
40
+ </div>
41
+ </div>
53
42
  </div>
43
+
44
+ </section>
45
+
46
+ {% for post in filtered_posts %}
47
+ {% include post-card.html post=post %}
48
+ {% endfor %}
49
+
54
50
  </div>
55
- </main>
51
+ </div>
52
+ </main>
@@ -1,2 +1,2 @@
1
- !function(o){"use strict";o.fn.fitVids=function(e){var t,i,n={customSelector:null,ignore:null};return document.getElementById("fit-vids-style")||(t=document.head||document.getElementsByTagName("head")[0],(i=document.createElement("div")).innerHTML='<p>x</p><style id="fit-vids-style">.fluid-width-video-container{flex-grow: 1;width:100%;}.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%;}</style>',t.appendChild(i.childNodes[1])),e&&o.extend(n,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"],r=(n.customSelector&&e.push(n.customSelector),".fitvidsignore"),e=(n.ignore&&(r=r+", "+n.ignore),o(this).find(e.join(",")));(e=(e=e.not("object object")).not(r)).each(function(){var e,t,i=o(this);0<i.parents(r).length||"embed"===this.tagName.toLowerCase()&&i.parent("object").length||i.parent(".fluid-width-video-wrapper").length||(i.css("height")||i.css("width")||!isNaN(i.attr("height"))&&!isNaN(i.attr("width"))||(i.attr("height",9),i.attr("width",16)),e=("object"===this.tagName.toLowerCase()||i.attr("height")&&!isNaN(parseInt(i.attr("height"),10))?parseInt(i.attr("height"),10):i.height())/(isNaN(parseInt(i.attr("width"),10))?i.width():parseInt(i.attr("width"),10)),i.attr("name")||(t="fitvid"+o.fn.fitVids._count,i.attr("name",t),o.fn.fitVids._count++),i.wrap('<div class="fluid-width-video-container"><div class="fluid-width-video-wrapper"></div></div>').parent(".fluid-width-video-wrapper").css("padding-top",100*e+"%"),i.removeAttr("height").removeAttr("width"))})})},o.fn.fitVids._count=0}(window.jQuery||window.Zepto),function(t,i){var r,n,o,d,s,a,c,l=i.querySelector("link[rel=next]");function h(){var e;404===this.status?(t.removeEventListener("scroll",p),t.removeEventListener("resize",m)):(this.response.querySelectorAll("article.post-card").forEach(function(e){r.appendChild(i.importNode(e,!0))}),(e=this.response.querySelector("link[rel=next]"))?l.href=e.href:(t.removeEventListener("scroll",p),t.removeEventListener("resize",m)),c=i.documentElement.scrollHeight,d=o=!1)}function e(){var e;d||(s+a<=c-n?o=!1:(d=!0,(e=new t.XMLHttpRequest).responseType="document",e.addEventListener("load",h),e.open("GET",l.href),e.send(null)))}function u(){o||t.requestAnimationFrame(e),o=!0}function p(){s=t.scrollY,u()}function m(){a=t.innerHeight,c=i.documentElement.scrollHeight,u()}l&&(r=i.querySelector(".post-feed"))&&(d=o=!(n=300),s=t.scrollY,a=t.innerHeight,c=i.documentElement.scrollHeight,t.addEventListener("scroll",p,{passive:!0}),t.addEventListener("resize",m),u())}(window,document);
1
+ !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){var i;if(e&&t)return-1==(i=(i=this._events=this._events||{})[e]=i[e]||[]).indexOf(t)&&i.push(t),this},t.once=function(e,t){var i;if(e&&t)return this.on(e,t),((i=this._onceEvents=this._onceEvents||{})[e]=i[e]||{})[t]=!0,this},t.off=function(e,t){e=this._events&&this._events[e];if(e&&e.length)return-1!=(t=e.indexOf(t))&&e.splice(t,1),this},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o];n&&n[r]&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(t,i){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(e){return i(t,e)}):"object"==typeof module&&module.exports?module.exports=i(t,require("ev-emitter")):t.imagesLoaded=i(t,t.EvEmitter)}("undefined"!=typeof window?window:this,function(t,e){function r(e,t){for(var i in t)e[i]=t[i];return e}function s(e,t,i){var n,o;return this instanceof s?(n="string"==typeof(n=e)?document.querySelectorAll(e):n)?(this.elements=(o=n,Array.isArray(o)?o:"object"==typeof o&&"number"==typeof o.length?h.call(o):[o]),this.options=r({},this.options),"function"==typeof t?i=t:r(this.options,t),i&&this.on("always",i),this.getImages(),d&&(this.jqDeferred=new d.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(n||e)):new s(e,t,i)}function i(e){this.img=e}function n(e,t){this.url=e,this.element=t,this.img=new Image}var d=t.jQuery,a=t.console,h=Array.prototype.slice,c=((s.prototype=Object.create(e.prototype)).options={},s.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},s.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),!0===this.options.background&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&c[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background)for(var r=e.querySelectorAll(this.options.background),n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}},{1:!0,9:!0,11:!0});return s.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},s.prototype.addImage=function(e){e=new i(e);this.images.push(e)},s.prototype.addBackground=function(e,t){e=new n(e,t);this.images.push(e)},s.prototype.check=function(){function t(e,t,i){setTimeout(function(){n.progress(e,t,i)})}var n=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(e){e.once("progress",t),e.check()}):void this.complete()},s.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred&&(e=this.hasAnyBroken?"reject":"resolve",this.jqDeferred[e](this))},(i.prototype=Object.create(e.prototype)).check=function(){return this.getIsImageComplete()?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},i.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},i.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},i.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},i.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},i.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},i.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},(n.prototype=Object.create(i.prototype)).check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},n.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},n.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},(s.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&((d=e).fn.imagesLoaded=function(e,t){return new s(this,e,t).jqDeferred.promise(d(this))})})(),s}),function(r){"use strict";r.fn.fitVids=function(e){var t,i,o={customSelector:null,ignore:null};return document.getElementById("fit-vids-style")||(t=document.head||document.getElementsByTagName("head")[0],(i=document.createElement("div")).innerHTML='<p>x</p><style id="fit-vids-style">.fluid-width-video-container{flex-grow: 1;width:100%;}.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%;}</style>',t.appendChild(i.childNodes[1])),e&&r.extend(o,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"],n=(o.customSelector&&e.push(o.customSelector),".fitvidsignore"),e=(o.ignore&&(n=n+", "+o.ignore),r(this).find(e.join(",")));(e=(e=e.not("object object")).not(n)).each(function(){var e,t,i=r(this);0<i.parents(n).length||"embed"===this.tagName.toLowerCase()&&i.parent("object").length||i.parent(".fluid-width-video-wrapper").length||(i.css("height")||i.css("width")||!isNaN(i.attr("height"))&&!isNaN(i.attr("width"))||(i.attr("height",9),i.attr("width",16)),e=("object"===this.tagName.toLowerCase()||i.attr("height")&&!isNaN(parseInt(i.attr("height"),10))?parseInt(i.attr("height"),10):i.height())/(isNaN(parseInt(i.attr("width"),10))?i.width():parseInt(i.attr("width"),10)),i.attr("name")||(t="fitvid"+r.fn.fitVids._count,i.attr("name",t),r.fn.fitVids._count++),i.wrap('<div class="fluid-width-video-container"><div class="fluid-width-video-wrapper"></div></div>').parent(".fluid-width-video-wrapper").css("padding-top",100*e+"%"),i.removeAttr("height").removeAttr("width"))})})},r.fn.fitVids._count=0}(window.jQuery||window.Zepto),function(){const n=window.matchMedia("(max-width: 991px)"),o=document.querySelector(".gh-head-menu"),r=o.querySelector(".nav");if(r){var e=document.querySelector(".gh-head-logo");const t=r.innerHTML,i=(n.matches&&r.querySelectorAll("li").forEach(function(e,t){e.style.transitionDelay=.03*(t+1)+"s"}),function(){if(!n.matches){for(var e=[];r.offsetWidth+64>o.offsetWidth;){if(!r.lastElementChild)return;e.unshift(r.lastElementChild),r.lastElementChild.remove()}if(e.length){const t=document.createElement("button"),i=(t.setAttribute("class","nav-more-toggle"),t.setAttribute("aria-label","More"),t.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="currentColor"><path d="M21.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM13.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM5.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0z"></path></svg>',document.createElement("div"));i.setAttribute("class","gh-dropdown"),10<=e.length?(document.body.classList.add("is-dropdown-mega"),i.style.gridTemplateRows="repeat("+Math.ceil(e.length/2)+", 1fr)"):document.body.classList.remove("is-dropdown-mega"),e.forEach(function(e){i.appendChild(e)}),t.appendChild(i),r.appendChild(t),document.body.classList.add("is-dropdown-loaded"),t.addEventListener("click",function(){document.body.classList.toggle("is-dropdown-open")}),window.addEventListener("click",function(e){!t.contains(e.target)&&document.body.classList.contains("is-dropdown-open")&&document.body.classList.remove("is-dropdown-open")})}else document.body.classList.add("is-dropdown-loaded")}});imagesLoaded(e,function(){i()}),window.addEventListener("resize",function(){setTimeout(function(){r.innerHTML=t,i()},1)})}}(),function(t,i){var n,o,r,s,d,a,h,c;function l(){var e;404===this.status?(t.removeEventListener("scroll",m),t.removeEventListener("resize",p)):(this.response.querySelectorAll("article.post-card").forEach(function(e){o.appendChild(i.importNode(e,!0))}),(e=this.response.querySelector("link[rel=next]"))?n.href=e.href:(t.removeEventListener("scroll",m),t.removeEventListener("resize",p)),c=i.documentElement.scrollHeight,d=s=!1)}function e(){var e;d||(a+h<=c-r?s=!1:(d=!0,(e=new t.XMLHttpRequest).responseType="document",e.addEventListener("load",l),e.open("GET",n.href),e.send(null)))}function u(){s||t.requestAnimationFrame(e),s=!0}function m(){a=t.scrollY,u()}function p(){h=t.innerHeight,c=i.documentElement.scrollHeight,u()}i.documentElement.classList.contains("no-infinite-scroll")||(n=i.querySelector("link[rel=next]"))&&(o=i.querySelector(".post-feed"))&&(d=s=!(r=300),a=t.scrollY,h=t.innerHeight,c=i.documentElement.scrollHeight,t.addEventListener("scroll",m,{passive:!0}),t.addEventListener("resize",p),u())}(window,document);
2
2
  //# sourceMappingURL=kaschber.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["jquery.fitvids.js","infinitescroll.js"],"names":["$","fn","fitVids","options","head","div","settings","customSelector","ignore","document","getElementById","getElementsByTagName","createElement","innerHTML","appendChild","childNodes","extend","this","each","selectors","ignoreList","push","$allVideos","find","join","not","aspectRatio","videoName","$this","parents","length","tagName","toLowerCase","parent","css","isNaN","attr","parseInt","height","width","_count","wrap","removeAttr","window","jQuery","Zepto","feedElement","buffer","ticking","loading","lastScrollY","lastWindowHeight","lastDocumentHeight","nextElement","querySelector","onPageLoad","resNextElement","status","removeEventListener","onScroll","onResize","response","querySelectorAll","forEach","item","importNode","href","documentElement","scrollHeight","onUpdate","xhr","XMLHttpRequest","responseType","addEventListener","open","send","requestTick","requestAnimationFrame","scrollY","innerHeight","passive"],"mappings":"AAYA,CAAA,SAAAA,GAEA,aAEAA,EAAAC,GAAAC,QAAA,SAAAC,GACA,IAOAC,EAEAC,EATAC,EAAA,CACAC,eAAA,KACAC,OAAA,IACA,EAeA,OAbAC,SAAAC,eAAA,gBAAA,IAEAN,EAAAK,SAAAL,MAAAK,SAAAE,qBAAA,MAAA,EAAA,IAEAN,EAAAI,SAAAG,cAAA,KAAA,GACAC,UAAA,oUACAT,EAAAU,YAAAT,EAAAU,WAAA,EAAA,GAGAZ,GACAH,EAAAgB,OAAAV,EAAAH,CAAA,EAGAc,KAAAC,KAAA,WACA,IAAAC,EAAA,CACA,kCACA,6BACA,sCACA,oDACA,SACA,SAOAC,GAJAd,EAAAC,gBACAY,EAAAE,KAAAf,EAAAC,cAAA,EAGA,kBAMAe,GAJAhB,EAAAE,SACAY,EAAAA,EAAA,KAAAd,EAAAE,QAGAR,EAAAiB,IAAA,EAAAM,KAAAJ,EAAAK,KAAA,GAAA,CAAA,IAEAF,GAAAA,EADAA,EAAAG,IAAA,eAAA,GACAA,IAAAL,CAAA,GAEAF,KAAA,WACA,IAYAQ,EAEAC,EAdAC,EAAA5B,EAAAiB,IAAA,EACA,EAAAW,EAAAC,QAAAT,CAAA,EAAAU,QAGA,UAAAb,KAAAc,QAAAC,YAAA,GAAAJ,EAAAK,OAAA,QAAA,EAAAH,QAAAF,EAAAK,OAAA,4BAAA,EAAAH,SACAF,EAAAM,IAAA,QAAA,GAAAN,EAAAM,IAAA,OAAA,GAAAC,CAAAA,MAAAP,EAAAQ,KAAA,QAAA,CAAA,GAAAD,CAAAA,MAAAP,EAAAQ,KAAA,OAAA,CAAA,IAEAR,EAAAQ,KAAA,SAAA,CAAA,EACAR,EAAAQ,KAAA,QAAA,EAAA,GAIAV,GAFA,WAAAT,KAAAc,QAAAC,YAAA,GAAAJ,EAAAQ,KAAA,QAAA,GAAA,CAAAD,MAAAE,SAAAT,EAAAQ,KAAA,QAAA,EAAA,EAAA,CAAA,EAAAC,SAAAT,EAAAQ,KAAA,QAAA,EAAA,EAAA,EAAAR,EAAAU,OAAA,IACAH,MAAAE,SAAAT,EAAAQ,KAAA,OAAA,EAAA,EAAA,CAAA,EAAAR,EAAAW,MAAA,EAAAF,SAAAT,EAAAQ,KAAA,OAAA,EAAA,EAAA,GAEAR,EAAAQ,KAAA,MAAA,IACAT,EAAA,SAAA3B,EAAAC,GAAAC,QAAAsC,OACAZ,EAAAQ,KAAA,OAAAT,CAAA,EACA3B,EAAAC,GAAAC,QAAAsC,MAAA,IAEAZ,EAAAa,KAAA,8FAAA,EAAAR,OAAA,4BAAA,EAAAC,IAAA,cAAA,IAAAR,EAAA,GAAA,EACAE,EAAAc,WAAA,QAAA,EAAAA,WAAA,OAAA,EACA,CAAA,CACA,CAAA,CACA,EAGA1C,EAAAC,GAAAC,QAAAsC,OAAA,CAGA,EAAAG,OAAAC,QAAAD,OAAAE,KAAA,ECzEA,SAAAF,EAAAlC,GAEA,IAMAqC,EAKAC,EAEAC,EACAC,EAEAC,EACAC,EACAC,EAlBAC,EAAA5C,EAAA6C,cAAA,gBAAA,EAoBA,SAAAC,IACA,IAgBAC,EAhBA,MAAAvC,KAAAwC,QACAd,EAAAe,oBAAA,SAAAC,CAAA,EACAhB,EAAAe,oBAAA,SAAAE,CAAA,IAKA3C,KAAA4C,SAAAC,iBAAA,mBAAA,EACAC,QAAA,SAAAC,GAIAlB,EAAAhC,YAAAL,EAAAwD,WAAAD,EAAA,CAAA,CAAA,CAAA,CACA,CAAA,GAGAR,EAAAvC,KAAA4C,SAAAP,cAAA,gBAAA,GAEAD,EAAAa,KAAAV,EAAAU,MAEAvB,EAAAe,oBAAA,SAAAC,CAAA,EACAhB,EAAAe,oBAAA,SAAAE,CAAA,GAIAR,EAAA3C,EAAA0D,gBAAAC,aAEAnB,EADAD,EAAA,CAAA,EAEA,CAEA,SAAAqB,IAEA,IAYAC,EAZArB,IAKAC,EAAAC,GAAAC,EAAAL,EACAC,EAAA,CAAA,GAIAC,EAAA,CAAA,GAEAqB,EAAA,IAAA3B,EAAA4B,gBACAC,aAAA,WAEAF,EAAAG,iBAAA,OAAAlB,CAAA,EAEAe,EAAAI,KAAA,MAAArB,EAAAa,IAAA,EACAI,EAAAK,KAAA,IAAA,GACA,CAEA,SAAAC,IACA5B,GAAAL,EAAAkC,sBAAAR,CAAA,EACArB,EAAA,CAAA,CACA,CAEA,SAAAW,IACAT,EAAAP,EAAAmC,QACAF,EAAA,CACA,CAEA,SAAAhB,IACAT,EAAAR,EAAAoC,YACA3B,EAAA3C,EAAA0D,gBAAAC,aACAQ,EAAA,CACA,CAvFAvB,IAKAP,EAAArC,EAAA6C,cAAA,YAAA,KAQAL,EADAD,EAAA,EAFAD,EAAA,KAKAG,EAAAP,EAAAmC,QACA3B,EAAAR,EAAAoC,YACA3B,EAAA3C,EAAA0D,gBAAAC,aAwEAzB,EAAA8B,iBAAA,SAAAd,EAAA,CAAAqB,QAAA,CAAA,CAAA,CAAA,EACArC,EAAA8B,iBAAA,SAAAb,CAAA,EAEAgB,EAAA,EACA,EAAAjC,OAAAlC,QAAA","file":"kaschber.js","sourcesContent":["/*jshint browser:true */\n/*!\n* FitVids 1.3\n*\n*\n* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation\n* This is an unofficial release, ported by John O'Nolan\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the MIT license\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.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%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '<p>x</p><style id=\"fit-vids-style\">' + css + '</style>';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('<div class=\"fluid-width-video-container\"><div class=\"fluid-width-video-wrapper\"></div></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n\n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","/* eslint-env browser */\n\n/**\n * Infinite Scroll\n * Used on all pages where there is a list of posts (homepage, tag index, etc).\n *\n * When the page is scrolled to 300px from the bottom, the next page of posts\n * is fetched by following the the <link rel=\"next\" href=\"...\"> that is output\n * by {{ghost_head}}.\n *\n * The individual post items are extracted from the fetched pages by looking for\n * a wrapper element with the class \"post-card\". Any found elements are appended\n * to the element with the class \"post-feed\" in the currently viewed page.\n */\n\n (function (window, document) {\n // next link element\n var nextElement = document.querySelector('link[rel=next]');\n if (!nextElement) {\n return;\n }\n\n // post feed element\n var feedElement = document.querySelector('.post-feed');\n if (!feedElement) {\n return;\n }\n\n var buffer = 300;\n\n var ticking = false;\n var loading = false;\n\n var lastScrollY = window.scrollY;\n var lastWindowHeight = window.innerHeight;\n var lastDocumentHeight = document.documentElement.scrollHeight;\n\n function onPageLoad() {\n if (this.status === 404) {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n return;\n }\n\n // append contents\n var postElements = this.response.querySelectorAll('article.post-card');\n postElements.forEach(function (item) {\n // document.importNode is important, without it the item's owner\n // document will be different which can break resizing of\n // `object-fit: cover` images in Safari\n feedElement.appendChild(document.importNode(item, true));\n });\n\n // set next link\n var resNextElement = this.response.querySelector('link[rel=next]');\n if (resNextElement) {\n nextElement.href = resNextElement.href;\n } else {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n }\n\n // sync status\n lastDocumentHeight = document.documentElement.scrollHeight;\n ticking = false;\n loading = false;\n }\n\n function onUpdate() {\n // return if already loading\n if (loading) {\n return;\n }\n\n // return if not scroll to the bottom\n if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {\n ticking = false;\n return;\n }\n\n loading = true;\n\n var xhr = new window.XMLHttpRequest();\n xhr.responseType = 'document';\n\n xhr.addEventListener('load', onPageLoad);\n\n xhr.open('GET', nextElement.href);\n xhr.send(null);\n }\n\n function requestTick() {\n ticking || window.requestAnimationFrame(onUpdate);\n ticking = true;\n }\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function onResize() {\n lastWindowHeight = window.innerHeight;\n lastDocumentHeight = document.documentElement.scrollHeight;\n requestTick();\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n window.addEventListener('resize', onResize);\n\n requestTick();\n})(window, document);\n"]}
1
+ {"version":3,"sources":["imagesloaded.pkgd.min.js","jquery.fitvids.js","dropdown.js","infinitescroll.js"],"names":["e","t","define","amd","module","exports","EvEmitter","window","this","prototype","on","n","i","_events","indexOf","push","once","_onceEvents","off","length","splice","emitEvent","slice","o","r","apply","allOff","require","imagesLoaded","s","document","querySelectorAll","elements","Array","isArray","d","call","options","getImages","h","jqDeferred","Deferred","setTimeout","check","bind","a","error","img","url","element","Image","jQuery","console","u","Object","create","images","forEach","addElementImages","nodeName","addImage","background","addElementBackgroundImages","nodeType","1","9","11","getComputedStyle","exec","backgroundImage","addBackground","progress","progressedCount","hasAnyBroken","complete","isLoaded","notify","debug","log","isComplete","getIsImageComplete","confirm","naturalWidth","proxyImage","addEventListener","src","handleEvent","type","onload","unbindEvents","onerror","removeEventListener","makeJQueryPlugin","fn","promise","$","fitVids","head","div","settings","customSelector","ignore","getElementById","getElementsByTagName","createElement","innerHTML","appendChild","childNodes","extend","each","selectors","ignoreList","$allVideos","find","join","not","aspectRatio","videoName","$this","parents","tagName","toLowerCase","parent","css","isNaN","attr","parseInt","height","width","_count","wrap","removeAttr","Zepto","mediaQuery","matchMedia","menu","querySelector","nav","logo","navHTML","makeDropdown","matches","item","index","style","transitionDelay","submenuItems","offsetWidth","lastElementChild","unshift","remove","toggle","wrapper","setAttribute","body","classList","add","gridTemplateRows","Math","ceil","child","contains","target","nextElement","feedElement","buffer","ticking","loading","lastScrollY","lastWindowHeight","lastDocumentHeight","onPageLoad","resNextElement","status","onScroll","onResize","response","importNode","href","documentElement","scrollHeight","onUpdate","xhr","XMLHttpRequest","responseType","open","send","requestTick","requestAnimationFrame","scrollY","innerHeight","passive"],"mappings":"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","file":"kaschber.js","sourcesContent":["/*!\n * imagesLoaded PACKAGED v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n!function(e,t){\"function\"==typeof define&&define.amd?define(\"ev-emitter/ev-emitter\",t):\"object\"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}(\"undefined\"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){\"use strict\";\"function\"==typeof define&&define.amd?define([\"ev-emitter/ev-emitter\"],function(i){return t(e,i)}):\"object\"==typeof module&&module.exports?module.exports=t(e,require(\"ev-emitter\")):e.imagesLoaded=t(e,e.EvEmitter)}(\"undefined\"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t=\"object\"==typeof e&&\"number\"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return\"string\"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),\"function\"==typeof t?r=t:i(this.options,t),r&&this.on(\"always\",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error(\"Bad element for imagesLoaded \"+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},o.prototype.addElementImages=function(e){\"IMG\"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll(\"img\"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if(\"string\"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\\((['\"])?(.*?)\\1\\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once(\"progress\",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent(\"progress\",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log(\"progress: \"+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?\"fail\":\"done\";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent(\"always\",[this]),this.jqDeferred){var t=this.hasAnyBroken?\"reject\":\"resolve\";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,\"naturalWidth\"):(this.proxyImage=new Image,this.proxyImage.addEventListener(\"load\",this),this.proxyImage.addEventListener(\"error\",this),this.img.addEventListener(\"load\",this),this.img.addEventListener(\"error\",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent(\"progress\",[this,this.img,t])},r.prototype.handleEvent=function(e){var t=\"on\"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,\"onload\"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,\"onerror\"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener(\"load\",this),this.proxyImage.removeEventListener(\"error\",this),this.img.removeEventListener(\"load\",this),this.img.removeEventListener(\"error\",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener(\"load\",this),this.img.addEventListener(\"error\",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,\"naturalWidth\"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener(\"load\",this),this.img.removeEventListener(\"error\",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent(\"progress\",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});","/*jshint browser:true */\n/*!\n* FitVids 1.3\n*\n*\n* Copyright 2017, Chris Coyier + Dave Rupert + Ghost Foundation\n* This is an unofficial release, ported by John O'Nolan\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the MIT license\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-container{flex-grow: 1;width:100%;}.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%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '<p>x</p><style id=\"fit-vids-style\">' + css + '</style>';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('<div class=\"fluid-width-video-container\"><div class=\"fluid-width-video-wrapper\"></div></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n\n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n\n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","(function () {\n const mediaQuery = window.matchMedia('(max-width: 991px)');\n\n const menu = document.querySelector('.gh-head-menu');\n const nav = menu.querySelector('.nav');\n if (!nav) return;\n\n const logo = document.querySelector('.gh-head-logo');\n const navHTML = nav.innerHTML;\n\n if (mediaQuery.matches) {\n const items = nav.querySelectorAll('li');\n items.forEach(function (item, index) {\n item.style.transitionDelay = 0.03 * (index + 1) + 's';\n });\n }\n\n const makeDropdown = function () {\n if (mediaQuery.matches) return;\n const submenuItems = [];\n\n while ((nav.offsetWidth + 64) > menu.offsetWidth) {\n if (nav.lastElementChild) {\n submenuItems.unshift(nav.lastElementChild);\n nav.lastElementChild.remove();\n } else {\n return;\n }\n }\n\n if (!submenuItems.length) {\n document.body.classList.add('is-dropdown-loaded');\n return;\n }\n\n const toggle = document.createElement('button');\n toggle.setAttribute('class', 'nav-more-toggle');\n toggle.setAttribute('aria-label', 'More');\n toggle.innerHTML = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" fill=\"currentColor\"><path d=\"M21.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM13.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0zM5.333 16c0-1.473 1.194-2.667 2.667-2.667v0c1.473 0 2.667 1.194 2.667 2.667v0c0 1.473-1.194 2.667-2.667 2.667v0c-1.473 0-2.667-1.194-2.667-2.667v0z\"></path></svg>';\n\n const wrapper = document.createElement('div');\n wrapper.setAttribute('class', 'gh-dropdown');\n\n if (submenuItems.length >= 10) {\n document.body.classList.add('is-dropdown-mega');\n wrapper.style.gridTemplateRows = 'repeat(' + Math.ceil(submenuItems.length / 2) + ', 1fr)';\n } else {\n document.body.classList.remove('is-dropdown-mega');\n }\n\n submenuItems.forEach(function (child) {\n wrapper.appendChild(child);\n });\n\n toggle.appendChild(wrapper);\n nav.appendChild(toggle);\n\n document.body.classList.add('is-dropdown-loaded');\n\n toggle.addEventListener('click', function () {\n document.body.classList.toggle('is-dropdown-open');\n });\n\n window.addEventListener('click', function (e) {\n if (!toggle.contains(e.target) && document.body.classList.contains('is-dropdown-open')) {\n document.body.classList.remove('is-dropdown-open');\n }\n });\n }\n\n imagesLoaded(logo, function () {\n makeDropdown();\n });\n\n window.addEventListener('resize', function () {\n setTimeout(function () {\n nav.innerHTML = navHTML;\n makeDropdown();\n }, 1);\n });\n})();\n","/* eslint-env browser */\n\n/**\n * Infinite Scroll\n * Used on all pages where there is a list of posts (homepage, tag index, etc).\n *\n * When the page is scrolled to 300px from the bottom, the next page of posts\n * is fetched by following the the <link rel=\"next\" href=\"...\"> that is output\n * by {{ghost_head}}.\n *\n * The individual post items are extracted from the fetched pages by looking for\n * a wrapper element with the class \"post-card\". Any found elements are appended\n * to the element with the class \"post-feed\" in the currently viewed page.\n */\n\n(function (window, document) {\n if (document.documentElement.classList.contains('no-infinite-scroll')) return;\n\n // next link element\n var nextElement = document.querySelector('link[rel=next]');\n if (!nextElement) {\n return;\n }\n\n // post feed element\n var feedElement = document.querySelector('.post-feed');\n if (!feedElement) {\n return;\n }\n\n var buffer = 300;\n\n var ticking = false;\n var loading = false;\n\n var lastScrollY = window.scrollY;\n var lastWindowHeight = window.innerHeight;\n var lastDocumentHeight = document.documentElement.scrollHeight;\n\n function onPageLoad() {\n if (this.status === 404) {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n return;\n }\n\n // append contents\n var postElements = this.response.querySelectorAll('article.post-card');\n postElements.forEach(function (item) {\n // document.importNode is important, without it the item's owner\n // document will be different which can break resizing of\n // `object-fit: cover` images in Safari\n feedElement.appendChild(document.importNode(item, true));\n });\n\n // set next link\n var resNextElement = this.response.querySelector('link[rel=next]');\n if (resNextElement) {\n nextElement.href = resNextElement.href;\n } else {\n window.removeEventListener('scroll', onScroll);\n window.removeEventListener('resize', onResize);\n }\n\n // sync status\n lastDocumentHeight = document.documentElement.scrollHeight;\n ticking = false;\n loading = false;\n }\n\n function onUpdate() {\n // return if already loading\n if (loading) {\n return;\n }\n\n // return if not scroll to the bottom\n if (lastScrollY + lastWindowHeight <= lastDocumentHeight - buffer) {\n ticking = false;\n return;\n }\n\n loading = true;\n\n var xhr = new window.XMLHttpRequest();\n xhr.responseType = 'document';\n\n xhr.addEventListener('load', onPageLoad);\n\n xhr.open('GET', nextElement.href);\n xhr.send(null);\n }\n\n function requestTick() {\n ticking || window.requestAnimationFrame(onUpdate);\n ticking = true;\n }\n\n function onScroll() {\n lastScrollY = window.scrollY;\n requestTick();\n }\n\n function onResize() {\n lastWindowHeight = window.innerHeight;\n lastDocumentHeight = document.documentElement.scrollHeight;\n requestTick();\n }\n\n window.addEventListener('scroll', onScroll, {passive: true});\n window.addEventListener('resize', onResize);\n\n requestTick();\n})(window, document);\n"]}