alembic-jekyll-theme 3.0.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +12 -1
- data/_includes/nav-categories.html +1 -1
- data/_includes/nav-default.html +6 -6
- data/_includes/nav-footer.html +2 -2
- data/_includes/nav-header.html +2 -2
- data/_includes/post-categories.html +20 -20
- data/_includes/post-comments.html +6 -6
- data/_includes/post-list.html +27 -27
- data/_includes/site-analytics.html +9 -0
- data/_includes/site-feature.html +3 -3
- data/_includes/site-form.html +18 -18
- data/_includes/site-search.html +44 -44
- data/_includes/site-styles.html +3 -0
- data/_layouts/blog.html +10 -10
- data/_layouts/categories.html +8 -8
- data/_layouts/default.html +35 -26
- data/_layouts/page.html +2 -2
- data/_layouts/post.html +5 -5
- data/_sass/_flex.scss +131 -131
- data/assets/styles.scss +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab9fa3ba491d2ffc1ae5b57c648fdd204fbe3cbe
|
4
|
+
data.tar.gz: 6262e65b5b168f94b074fb3c400bf65c968588bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b202fa28d896b412ede8efe8c7914a77b480d1f53a32319a61b3958eb2f714c3fe3898af6d1d48e5f3868a6a8fc77c81345ee67bcf9947f4bfc0a6a43bd9ea32
|
7
|
+
data.tar.gz: 761d89f4cc803c81de5955edb5754b526e56b29691840a84c18fda998be432bf02d8a16e116a6e80e57295c2ffe5b88c9b073438243818bccaf99de09b90bc3e
|
data/README.md
CHANGED
@@ -16,6 +16,7 @@
|
|
16
16
|
- [Configuration](#configuration)
|
17
17
|
- [Gem dependency settings](#gem-dependency-settings)
|
18
18
|
- [Site settings](#site-settings)
|
19
|
+
- [Site performance settings](#site-performance-settings)
|
19
20
|
- [Site navigation](#site-navigation)
|
20
21
|
- [Using includes](#using-includes)
|
21
22
|
- [Page layouts](#page-layouts)
|
@@ -109,7 +110,17 @@ There are a number of optional settings for you to configure. Use the example [`
|
|
109
110
|
|
110
111
|
You'll need to change the `description`, `title` and `url` to match with the project. You'll also need to replace the `/assets/logo.svg` and `/assets/default-social-image.png` with the project logo and default social image. Setting the site language can be done with `lang`, the theme will default to `en-US`. The `email` needs to be changed to the email you want to receive contact form enquires with. The `disqus` value can be changed to your project username on [Disqus](https://disqus.com), remove this from the `/_config.yml` file if you don't want comments enabled. Look for the `Site settings` comment within the `/_config.yml` file. The `repo` setting is optional, for now, and can be removed entirely, if you wish.
|
111
112
|
|
112
|
-
|
113
|
+
Google Analytics can be enabled via the site configuration too. Add your tracking ID to the `/_config.yml` file in the following method: `google_analytics: 'UA-XXXXXXXX-1'`
|
114
|
+
|
115
|
+
### Site performance settings
|
116
|
+
|
117
|
+
Alembic comes with a couple of options to enhance the speed and overall performance of the site you build upon it.
|
118
|
+
|
119
|
+
By default the built in Service Worker is enabled, and will work on a 'network first' method. That is, if there is no internet connection then the content the Service Worker has cached will be used until the connection comes back. It will always look for a live version of the code first. To disable the Service Worker set an option called `service_worker` to false in the `/_config.yml`.
|
120
|
+
|
121
|
+
Another option to speed up Alembic is to enable inline CSS, which is off by default. You can enable this by setting `css_inline: true` inside your `/_config.yml` file.
|
122
|
+
|
123
|
+
Please note that these options aren't a "silver bullet" for making your site faster, make sure to audit and debug your site to get the best performance for your situation.
|
113
124
|
|
114
125
|
### Site navigation
|
115
126
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<ul class="list list--categories">
|
3
3
|
{% for item in site.categories %}
|
4
4
|
<li class="item item--category">
|
5
|
-
|
5
|
+
<a href="#{{ item | first | slugify }}">{{ item | first }}</a>
|
6
6
|
</li>
|
7
7
|
{% endfor %}
|
8
8
|
</ul>
|
data/_includes/nav-default.html
CHANGED
@@ -5,17 +5,17 @@
|
|
5
5
|
<li class="item item--nav{% if item.url == page.url %} item--current{% endif %}">
|
6
6
|
|
7
7
|
{% if item.url contains '://' %}
|
8
|
-
|
8
|
+
{% assign url = item.url %}
|
9
9
|
{% else %}
|
10
|
-
|
10
|
+
{% assign url = item.url | relative_url %}
|
11
11
|
{% endif %}
|
12
12
|
|
13
13
|
{% if item.collectionpage %}
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
{% assign collectiondata = site.collections | where: "label", item.collectionpage | first %}
|
15
|
+
<a href="{{ url }}">{{ collectiondata.title }}</a>
|
16
|
+
{% else %}
|
17
17
|
<a href="{{ url }}">{{ item.title }}</a>
|
18
|
-
|
18
|
+
{% endif %}
|
19
19
|
</li>
|
20
20
|
{% endunless %}
|
21
21
|
{% endfor %}
|
data/_includes/nav-footer.html
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
{% for item in site.navigation_footer %}
|
5
5
|
|
6
6
|
{% if item[1] contains '://' %}
|
7
|
-
|
7
|
+
{% assign url = item[1] %}
|
8
8
|
{% else %}
|
9
|
-
|
9
|
+
{% assign url = item[1] | relative_url %}
|
10
10
|
{% endif %}
|
11
11
|
|
12
12
|
<li class="item item--nav{% if item[1] == page.url %} item--current{% endif %}">
|
data/_includes/nav-header.html
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
{% for item in site.navigation_header %}
|
5
5
|
|
6
6
|
{% if item[1] contains '://' %}
|
7
|
-
|
7
|
+
{% assign url = item[1] %}
|
8
8
|
{% else %}
|
9
|
-
|
9
|
+
{% assign url = item[1] | relative_url %}
|
10
10
|
{% endif %}
|
11
11
|
|
12
12
|
<li class="item item--nav{% if item[1] == page.url %} item--current{% endif %}">
|
@@ -1,25 +1,25 @@
|
|
1
1
|
{% for category in site.categories %}
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
2
|
+
{% assign category_name = category | first %}
|
3
|
+
<section class="section typeset">
|
4
|
+
<h2 id="{{ category_name | slugify }}">{{ category_name }}</h2>
|
5
|
+
<ul class="list list--posts">
|
6
|
+
{% for page in site.categories[category_name] %}
|
7
|
+
{% assign has_categories = true %}
|
8
|
+
<li class="item item--post">
|
9
|
+
<article class="article article--post typeset">
|
10
|
+
<h3><a href="{{ site.baseurl }}{{ page.url }}">{{ page.title }}</a></h3>
|
11
|
+
{% include post-meta.html %}
|
12
|
+
{{ page.excerpt | truncatewords: 60 | markdownify }}
|
13
|
+
</article>
|
14
|
+
</li>
|
15
|
+
{% endfor %}
|
16
|
+
</ul>
|
17
|
+
{% unless forloop.last %}<hr/>{% endunless %}
|
18
|
+
</section>
|
19
19
|
{% endfor %}
|
20
20
|
|
21
21
|
{% if has_categories != true %}
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
<section class="section typeset">
|
23
|
+
<p>There are no categorised posts</p>
|
24
|
+
</section>
|
25
25
|
{% endif %}
|
@@ -2,15 +2,15 @@
|
|
2
2
|
<div id="disqus_thread"></div>
|
3
3
|
<script>
|
4
4
|
var disqus_config = function () {
|
5
|
-
|
6
|
-
|
5
|
+
this.page.url = "{{ site.url }}{{ site.baseurl }}{{ page.url }}";
|
6
|
+
this.page.identifier = "{{ site.baseurl }}{{ page.url }}";
|
7
7
|
};
|
8
8
|
|
9
9
|
(function() {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
var d = document, s = d.createElement('script');
|
11
|
+
s.src = '//{{ site.disqus }}.disqus.com/embed.js';
|
12
|
+
s.setAttribute('data-timestamp', +new Date());
|
13
|
+
(d.head || d.body).appendChild(s);
|
14
14
|
})();
|
15
15
|
</script>
|
16
16
|
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
data/_includes/post-list.html
CHANGED
@@ -1,34 +1,34 @@
|
|
1
1
|
{% if paginator.posts %}
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
<section class="section typeset">
|
3
|
+
<ul class="list list--posts">
|
4
|
+
{% for page in paginator.posts %}
|
5
|
+
<li class="item item--post">
|
6
|
+
<article class="article article--post">
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
<h2><a href="{{ site.baseurl }}{{ page.url }}">{{ page.title }}</a></h2>
|
9
|
+
{% include post-meta.html %}
|
10
|
+
{{ page.excerpt | markdownify | truncatewords: 60 }}
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
</article>
|
13
|
+
</li>
|
14
|
+
{% endfor %}
|
15
|
+
</ul>
|
16
|
+
{% include post-pagination.html %}
|
17
|
+
</section>
|
18
18
|
{% else %}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
<section class="section typeset">
|
20
|
+
<ul class="list list--posts">
|
21
|
+
{% for page in site.posts %}
|
22
|
+
<li class="item item--post">
|
23
|
+
<article class="article article--post">
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
<h2><a href="{{ site.baseurl }}{{ page.url }}">{{ page.title }}</a></h2>
|
26
|
+
{% include post-meta.html %}
|
27
|
+
{{ page.excerpt | markdownify | truncatewords: 60 }}
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
</article>
|
30
|
+
</li>
|
31
|
+
{% endfor %}
|
32
|
+
</ul>
|
33
|
+
</section>
|
34
34
|
{% endif %}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
2
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.googleanalytics }}"></script>
|
3
|
+
<script>
|
4
|
+
window.dataLayer = window.dataLayer || [];
|
5
|
+
function gtag(){dataLayer.push(arguments);}
|
6
|
+
gtag('js', new Date());
|
7
|
+
|
8
|
+
gtag('config', '{{ site.googleanalytics }}');
|
9
|
+
</script>
|
data/_includes/site-feature.html
CHANGED
@@ -8,8 +8,8 @@
|
|
8
8
|
|
9
9
|
{% if feature_text or feature_image %}
|
10
10
|
<div class="feature"{% if feature_image %} style="background-image: url({{ feature_image }})"{% endif %}>
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
<div class="container typeset">
|
12
|
+
{{ feature_text | markdownify }}
|
13
|
+
</div>
|
14
14
|
</div>
|
15
15
|
{% endif %}
|
data/_includes/site-form.html
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
<div class="form form--contact">
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
<form class="contact-form" action="" method="POST">
|
3
|
+
<label class="label" for="name">Name: <span class="required">*</span></label>
|
4
|
+
<input class="input" id="name" type="text" name="name" value="" placeholder="Your Name" required="required" />
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
<label class="label" for="_replyto">Email Address: <span class="required">*</span></label>
|
7
|
+
<input class="input" id="_replyto" type="email" name="_replyto" value="" placeholder="email@website.com" required="required" />
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
<label class="label" for="message">Message: <span class="required">*</span></label>
|
10
|
+
<textarea class="textarea" id="message" name="message" placeholder="Your message..." required="required"></textarea>
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
<input class="button" type="submit" value="Send message" />
|
13
|
+
<br/>
|
14
|
+
<small class="small"><span class="required">*</span> indicates a required field</small>
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
<input type="text" name="_gotcha" style="display:none">
|
17
|
+
<input type="hidden" name="_subject" value="Message from {{ site.name }} website">
|
18
|
+
<input type="hidden" name="_next" value="/thanks/" />
|
19
|
+
</form>
|
20
20
|
</div>
|
21
21
|
<script>
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
var email = "{{ site.email | split: "" | reverse | join: "" }}";
|
23
|
+
var unraveledEmail = email.split("").reverse().join("");
|
24
|
+
var form = document.querySelector(".contact-form");
|
25
|
+
form.setAttribute("action", "https://formspree.io/" + unraveledEmail);
|
26
26
|
</script>
|
27
27
|
<noscript>Please enable JavaScript to use the form.</noscript>
|
data/_includes/site-search.html
CHANGED
@@ -1,58 +1,58 @@
|
|
1
1
|
<div class="form form--search">
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
<form id="contact-form" action="">
|
3
|
+
<label class="label" for="search">Search term:</label>
|
4
|
+
<input class="input" id="search" type="search" name="search" placeholder="e.g. About us" autocomplete="off" />
|
5
|
+
|
6
|
+
<ul class="list list--results" id="list">
|
7
|
+
<!-- results go here -->
|
8
|
+
</ul>
|
9
|
+
</form>
|
10
10
|
</div>
|
11
11
|
|
12
12
|
<script type="text/javascript" src="{{ "/assets/scripts/fetch.js" | relative_url }}"></script>
|
13
13
|
<script type="text/javascript">
|
14
|
-
|
14
|
+
const endpoint = '{{ "/assets/search.json" | relative_url }}';
|
15
15
|
|
16
|
-
|
16
|
+
const pages = [];
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
fetch(endpoint)
|
19
|
+
.then(blob => blob.json())
|
20
|
+
.then(data => pages.push(...data))
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
}
|
22
|
+
function findResults(termToMatch, pages) {
|
23
|
+
return pages.filter(item => {
|
24
|
+
const regex = new RegExp(termToMatch, 'gi');
|
25
|
+
return item.title.match(regex) || item.content.match(regex);
|
26
|
+
});
|
27
|
+
}
|
28
|
+
|
29
|
+
function displayResults() {
|
30
|
+
const resultsArray = findResults(this.value, pages);
|
31
|
+
const html = resultsArray.map(item => {
|
32
|
+
return `
|
33
|
+
<li class="item item--result">
|
34
|
+
<article class="article typeset">
|
35
|
+
<h4><a href="${item.url}">${item.title}</a></h4>
|
36
|
+
<p>${item.excerpt}</p>
|
37
|
+
</article>
|
38
|
+
</li>`;
|
39
|
+
}).join('');
|
40
|
+
if ((resultsArray.length == 0) || (this.value == '')) {
|
41
|
+
resultsList.innerHTML = `<p>Sorry, nothing was found</p>`;
|
42
|
+
} else {
|
43
|
+
resultsList.innerHTML = html;
|
45
44
|
}
|
45
|
+
}
|
46
46
|
|
47
|
-
|
48
|
-
|
47
|
+
const field = document.querySelector('#search');
|
48
|
+
const resultsList = document.querySelector('#list');
|
49
49
|
|
50
|
-
|
50
|
+
field.addEventListener('keyup', displayResults);
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
field.addEventListener('keypress', function(event) {
|
53
|
+
if (event.keyCode == 13) {
|
54
|
+
event.preventDefault();
|
55
|
+
}
|
56
|
+
});
|
57
57
|
</script>
|
58
58
|
<noscript>Please enable JavaScript to use the search form.</noscript>
|
data/_layouts/blog.html
CHANGED
@@ -6,20 +6,20 @@ layout: default
|
|
6
6
|
|
7
7
|
<main class="main container">
|
8
8
|
|
9
|
-
|
9
|
+
<div class="content">
|
10
10
|
|
11
11
|
<article class="article article--page typeset">
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
{% if paginator.posts %}
|
14
|
+
{% assign collectiondata = site.collections | where: "label", page.collectionpage | first %}
|
15
|
+
<h1>{{ collectiondata.title }}</h1>
|
16
|
+
{{ collectiondata.description | markdownify }}
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
{% else %}
|
19
|
+
<h1>{{ page.title }}</h1>
|
20
|
+
{{ content }}
|
21
|
+
|
22
|
+
{% endif %}
|
23
23
|
|
24
24
|
</article>
|
25
25
|
|
data/_layouts/categories.html
CHANGED
@@ -6,21 +6,21 @@ layout: default
|
|
6
6
|
|
7
7
|
<main class="main container">
|
8
8
|
|
9
|
-
|
9
|
+
<div class="content">
|
10
10
|
|
11
|
-
|
11
|
+
<article class="article article--page typeset">
|
12
12
|
|
13
|
-
|
13
|
+
<h1>{{ page.title }}</h1>
|
14
14
|
|
15
|
-
|
15
|
+
{{ content }}
|
16
16
|
|
17
|
-
|
17
|
+
</article>
|
18
18
|
|
19
|
-
|
19
|
+
{% include post-categories.html %}
|
20
20
|
|
21
|
-
|
21
|
+
</div>
|
22
22
|
|
23
|
-
|
23
|
+
{% if page.aside == true %}{% include site-aside.html align="left" %}{% endif %}
|
24
24
|
|
25
25
|
</main>
|
26
26
|
|
data/_layouts/default.html
CHANGED
@@ -1,37 +1,46 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html lang="{{ site.lang | default: "en-US" }}">
|
3
|
-
<head>
|
4
|
-
<!-- General meta -->
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
6
3
|
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
<head>
|
5
|
+
<!-- General meta -->
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
10
7
|
|
11
|
-
|
12
|
-
|
8
|
+
{% if page.indexing == false %}
|
9
|
+
<meta name="robots" content="noindex">
|
10
|
+
{% endif %}
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
<meta property="og:title" content="{{ collectiondata.title }}">
|
17
|
-
<meta name="description" content="{{ collectiondata.description }}">
|
18
|
-
<meta property="og:description" content="{{ collectiondata.description }}">
|
19
|
-
{% else %}
|
20
|
-
{% seo %}
|
21
|
-
{% endif %}
|
12
|
+
{% if page.collectionpage %}
|
13
|
+
{% seo title=false %}
|
22
14
|
|
23
|
-
|
24
|
-
|
15
|
+
{% assign collectiondata = site.collections | where: "label", page.collectionpage | first %}
|
16
|
+
<title>{{ collectiondata.title }} - {{ site.title }}</title>
|
17
|
+
<meta property="og:title" content="{{ collectiondata.title }}">
|
18
|
+
<meta name="description" content="{{ collectiondata.description }}">
|
19
|
+
<meta property="og:description" content="{{ collectiondata.description }}">
|
20
|
+
{% else %}
|
21
|
+
{% seo %}
|
22
|
+
{% endif %}
|
25
23
|
|
26
|
-
<link rel="
|
24
|
+
<link rel="manifest" href="{{ "/manifest.json" | relative_url }}">
|
25
|
+
<meta name="theme-color" content="{{ site.manifest.theme_color | default: '#242e2b' }}"/>
|
27
26
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
27
|
+
{% if site.css_inline == true %}
|
28
|
+
{% include site-styles.html %}
|
29
|
+
{% else %}
|
30
|
+
<link rel="stylesheet" href="{{ "/assets/styles.css" | relative_url }}">
|
31
|
+
{% endif %}
|
32
32
|
|
33
|
-
|
33
|
+
{% if site.avatarurl %}{% include site-favicons.html %}{% endif %}
|
34
|
+
|
35
|
+
{% if site.google_analytics %}{% include site-analytics.html %}{% endif %}
|
36
|
+
</head>
|
37
|
+
|
38
|
+
<body class="layout-{{ page.layout }}{% if page.title %} {{ page.title | slugify }}{% endif %}">
|
39
|
+
{% include site-icons.svg %}
|
40
|
+
|
41
|
+
{{ content }}
|
42
|
+
|
43
|
+
{% if site.service_worker != false %}{% include site-sw.html %}{% endif %}
|
44
|
+
</body>
|
34
45
|
|
35
|
-
{% if site.serviceWorker != false %}{% include site-sw.html %}{% endif %}
|
36
|
-
</body>
|
37
46
|
</html>
|
data/_layouts/page.html
CHANGED
@@ -6,7 +6,7 @@ layout: default
|
|
6
6
|
|
7
7
|
<main class="main container">
|
8
8
|
|
9
|
-
|
9
|
+
<article class="article article--page content typeset">
|
10
10
|
|
11
11
|
<h1>{{ page.title }}</h1>
|
12
12
|
|
@@ -14,7 +14,7 @@ layout: default
|
|
14
14
|
|
15
15
|
</article>
|
16
16
|
|
17
|
-
|
17
|
+
{% if page.aside == true %}{% include site-aside.html %}{% endif %}
|
18
18
|
|
19
19
|
</main>
|
20
20
|
|
data/_layouts/post.html
CHANGED
@@ -6,19 +6,19 @@ layout: default
|
|
6
6
|
|
7
7
|
<main class="main container">
|
8
8
|
|
9
|
-
|
9
|
+
<article class="article article--post content typeset">
|
10
10
|
|
11
11
|
<h1>{{ page.title }}</h1>
|
12
|
-
|
12
|
+
{% include post-meta.html %}
|
13
13
|
{{ content }}
|
14
14
|
|
15
|
-
|
15
|
+
{% include nav-share.html %}
|
16
16
|
|
17
|
-
|
17
|
+
{% include post-comments.html %}
|
18
18
|
|
19
19
|
</article>
|
20
20
|
|
21
|
-
|
21
|
+
{% if page.aside == true %}{% include site-aside.html %}{% endif %}
|
22
22
|
|
23
23
|
</main>
|
24
24
|
|
data/_sass/_flex.scss
CHANGED
@@ -60,11 +60,11 @@
|
|
60
60
|
// (Placeholder selectors for each type, for those who rather @extend)
|
61
61
|
|
62
62
|
@mixin flexbox {
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
63
|
+
display: -webkit-box;
|
64
|
+
display: -webkit-flex;
|
65
|
+
display: -moz-flex;
|
66
|
+
display: -ms-flexbox;
|
67
|
+
display: flex;
|
68
68
|
}
|
69
69
|
|
70
70
|
%flexbox { @include flexbox; }
|
@@ -72,11 +72,11 @@
|
|
72
72
|
//----------------------------------
|
73
73
|
|
74
74
|
@mixin inline-flex {
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
75
|
+
display: -webkit-inline-box;
|
76
|
+
display: -webkit-inline-flex;
|
77
|
+
display: -moz-inline-flex;
|
78
|
+
display: -ms-inline-flexbox;
|
79
|
+
display: inline-flex;
|
80
80
|
}
|
81
81
|
|
82
82
|
%inline-flex { @include inline-flex; }
|
@@ -95,26 +95,26 @@
|
|
95
95
|
// http://w3.org/tr/css3-flexbox/#flex-direction-property
|
96
96
|
|
97
97
|
@mixin flex-direction($value: row) {
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
98
|
+
@if $value == row-reverse {
|
99
|
+
-webkit-box-direction: reverse;
|
100
|
+
-webkit-box-orient: horizontal;
|
101
|
+
} @else if $value == column {
|
102
|
+
-webkit-box-direction: normal;
|
103
|
+
-webkit-box-orient: vertical;
|
104
|
+
} @else if $value == column-reverse {
|
105
|
+
-webkit-box-direction: reverse;
|
106
|
+
-webkit-box-orient: vertical;
|
107
|
+
} @else {
|
108
|
+
-webkit-box-direction: normal;
|
109
|
+
-webkit-box-orient: horizontal;
|
110
|
+
}
|
111
|
+
-webkit-flex-direction: $value;
|
112
|
+
-moz-flex-direction: $value;
|
113
|
+
-ms-flex-direction: $value;
|
114
|
+
flex-direction: $value;
|
115
115
|
}
|
116
|
-
|
117
|
-
|
116
|
+
// Shorter version:
|
117
|
+
@mixin flex-dir($args...) { @include flex-direction($args...); }
|
118
118
|
|
119
119
|
//----------------------------------------------------------------------
|
120
120
|
|
@@ -130,15 +130,15 @@
|
|
130
130
|
// http://w3.org/tr/css3-flexbox/#flex-wrap-property
|
131
131
|
|
132
132
|
@mixin flex-wrap($value: nowrap) {
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
133
|
+
// No Webkit Box fallback.
|
134
|
+
-webkit-flex-wrap: $value;
|
135
|
+
-moz-flex-wrap: $value;
|
136
|
+
@if $value == nowrap {
|
137
|
+
-ms-flex-wrap: none;
|
138
|
+
} @else {
|
139
|
+
-ms-flex-wrap: $value;
|
140
|
+
}
|
141
|
+
flex-wrap: $value;
|
142
142
|
}
|
143
143
|
|
144
144
|
//----------------------------------------------------------------------
|
@@ -155,11 +155,11 @@
|
|
155
155
|
// http://w3.org/tr/css3-flexbox/#flex-flow-property
|
156
156
|
|
157
157
|
@mixin flex-flow($values: (row nowrap)) {
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
158
|
+
// No Webkit Box fallback.
|
159
|
+
-webkit-flex-flow: $values;
|
160
|
+
-moz-flex-flow: $values;
|
161
|
+
-ms-flex-flow: $values;
|
162
|
+
flex-flow: $values;
|
163
163
|
}
|
164
164
|
|
165
165
|
//----------------------------------------------------------------------
|
@@ -174,11 +174,11 @@
|
|
174
174
|
// http://w3.org/tr/css3-flexbox/#order-property
|
175
175
|
|
176
176
|
@mixin order($int: 0) {
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
177
|
+
-webkit-box-ordinal-group: $int + 1;
|
178
|
+
-webkit-order: $int;
|
179
|
+
-moz-order: $int;
|
180
|
+
-ms-flex-order: $int;
|
181
|
+
order: $int;
|
182
182
|
}
|
183
183
|
|
184
184
|
//----------------------------------------------------------------------
|
@@ -193,11 +193,11 @@
|
|
193
193
|
// http://w3.org/tr/css3-flexbox/#flex-grow-property
|
194
194
|
|
195
195
|
@mixin flex-grow($int: 0) {
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
196
|
+
-webkit-box-flex: $int;
|
197
|
+
-webkit-flex-grow: $int;
|
198
|
+
-moz-flex-grow: $int;
|
199
|
+
-ms-flex-positive: $int;
|
200
|
+
flex-grow: $int;
|
201
201
|
}
|
202
202
|
|
203
203
|
//----------------------------------------------------------------------
|
@@ -212,10 +212,10 @@
|
|
212
212
|
// http://w3.org/tr/css3-flexbox/#flex-shrink-property
|
213
213
|
|
214
214
|
@mixin flex-shrink($int: 1) {
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
215
|
+
-webkit-flex-shrink: $int;
|
216
|
+
-moz-flex-shrink: $int;
|
217
|
+
-ms-flex-negative: $int;
|
218
|
+
flex-shrink: $int;
|
219
219
|
}
|
220
220
|
|
221
221
|
//----------------------------------------------------------------------
|
@@ -230,10 +230,10 @@
|
|
230
230
|
// http://www.w3.org/TR/css3-flexbox/#flex-basis-property
|
231
231
|
|
232
232
|
@mixin flex-basis($value: auto) {
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
233
|
+
-webkit-flex-basis: $value;
|
234
|
+
-moz-flex-basis: $value;
|
235
|
+
-ms-flex-preferred-size: $value;
|
236
|
+
flex-basis: $value;
|
237
237
|
}
|
238
238
|
|
239
239
|
//----------------------------------------------------------------------
|
@@ -253,21 +253,21 @@
|
|
253
253
|
|
254
254
|
@mixin flex($fg: 1, $fs: null, $fb: null) {
|
255
255
|
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
256
|
+
// Set a variable to be used by box-flex properties
|
257
|
+
$fg-boxflex: $fg;
|
258
|
+
|
259
|
+
// Box-Flex only supports a flex-grow value so let's grab the
|
260
|
+
// first item in the list and just return that.
|
261
|
+
@if type-of($fg) == 'list' {
|
262
|
+
$fg-boxflex: nth($fg, 1);
|
263
|
+
}
|
264
|
+
|
265
|
+
-webkit-box-flex: $fg-boxflex;
|
266
|
+
-webkit-flex: $fg $fs $fb;
|
267
|
+
-moz-box-flex: $fg-boxflex;
|
268
|
+
-moz-flex: $fg $fs $fb;
|
269
|
+
-ms-flex: $fg $fs $fb;
|
270
|
+
flex: $fg $fs $fb;
|
271
271
|
}
|
272
272
|
|
273
273
|
//----------------------------------------------------------------------
|
@@ -289,27 +289,27 @@
|
|
289
289
|
// http://w3.org/tr/css3-flexbox/#justify-content-property
|
290
290
|
|
291
291
|
@mixin justify-content($value: flex-start) {
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
292
|
+
@if $value == flex-start {
|
293
|
+
-webkit-box-pack: start;
|
294
|
+
-ms-flex-pack: start;
|
295
|
+
} @else if $value == flex-end {
|
296
|
+
-webkit-box-pack: end;
|
297
|
+
-ms-flex-pack: end;
|
298
|
+
} @else if $value == space-between {
|
299
|
+
-webkit-box-pack: justify;
|
300
|
+
-ms-flex-pack: justify;
|
301
|
+
} @else if $value == space-around {
|
302
|
+
-ms-flex-pack: distribute;
|
303
|
+
} @else {
|
304
|
+
-webkit-box-pack: $value;
|
305
|
+
-ms-flex-pack: $value;
|
306
|
+
}
|
307
|
+
-webkit-justify-content: $value;
|
308
|
+
-moz-justify-content: $value;
|
309
|
+
justify-content: $value;
|
310
310
|
}
|
311
|
-
|
312
|
-
|
311
|
+
// Shorter version:
|
312
|
+
@mixin flex-just($args...) { @include justify-content($args...); }
|
313
313
|
|
314
314
|
//----------------------------------------------------------------------
|
315
315
|
|
@@ -329,19 +329,19 @@
|
|
329
329
|
// http://w3.org/tr/css3-flexbox/#align-items-property
|
330
330
|
|
331
331
|
@mixin align-items($value: stretch) {
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
332
|
+
@if $value == flex-start {
|
333
|
+
-webkit-box-align: start;
|
334
|
+
-ms-flex-align: start;
|
335
|
+
} @else if $value == flex-end {
|
336
|
+
-webkit-box-align: end;
|
337
|
+
-ms-flex-align: end;
|
338
|
+
} @else {
|
339
|
+
-webkit-box-align: $value;
|
340
|
+
-ms-flex-align: $value;
|
341
|
+
}
|
342
|
+
-webkit-align-items: $value;
|
343
|
+
-moz-align-items: $value;
|
344
|
+
align-items: $value;
|
345
345
|
}
|
346
346
|
|
347
347
|
//----------------------------------
|
@@ -352,17 +352,17 @@
|
|
352
352
|
// Default: auto
|
353
353
|
|
354
354
|
@mixin align-self($value: auto) {
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
355
|
+
// No Webkit Box Fallback.
|
356
|
+
-webkit-align-self: $value;
|
357
|
+
-moz-align-self: $value;
|
358
|
+
@if $value == flex-start {
|
359
|
+
-ms-flex-item-align: start;
|
360
|
+
} @else if $value == flex-end {
|
361
|
+
-ms-flex-item-align: end;
|
362
|
+
} @else {
|
363
|
+
-ms-flex-item-align: $value;
|
364
|
+
}
|
365
|
+
align-self: $value;
|
366
366
|
}
|
367
367
|
|
368
368
|
//----------------------------------------------------------------------
|
@@ -380,15 +380,15 @@
|
|
380
380
|
// http://w3.org/tr/css3-flexbox/#align-content-property
|
381
381
|
|
382
382
|
@mixin align-content($value: stretch) {
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
383
|
+
// No Webkit Box Fallback.
|
384
|
+
-webkit-align-content: $value;
|
385
|
+
-moz-align-content: $value;
|
386
|
+
@if $value == flex-start {
|
387
|
+
-ms-flex-line-pack: start;
|
388
|
+
} @else if $value == flex-end {
|
389
|
+
-ms-flex-line-pack: end;
|
390
|
+
} @else {
|
391
|
+
-ms-flex-line-pack: $value;
|
392
|
+
}
|
393
|
+
align-content: $value;
|
394
394
|
}
|
data/assets/styles.scss
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alembic-jekyll-theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Darnes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- _includes/post-meta.html
|
178
178
|
- _includes/post-pagination.html
|
179
179
|
- _includes/post-related.html
|
180
|
+
- _includes/site-analytics.html
|
180
181
|
- _includes/site-aside.html
|
181
182
|
- _includes/site-favicons.html
|
182
183
|
- _includes/site-feature.html
|
@@ -186,6 +187,7 @@ files:
|
|
186
187
|
- _includes/site-icons.svg
|
187
188
|
- _includes/site-logo.html
|
188
189
|
- _includes/site-search.html
|
190
|
+
- _includes/site-styles.html
|
189
191
|
- _includes/site-sw.html
|
190
192
|
- _includes/video.html
|
191
193
|
- _layouts/blog.html
|