minimal-mistakes-jekyll 4.14.0 → 4.14.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/LICENSE +20 -20
- data/README.md +1 -1
- data/_data/ui-text.yml +1176 -1176
- data/_includes/analytics-providers/google-gtag.html +9 -9
- data/_includes/analytics-providers/google-universal.html +10 -10
- data/_includes/analytics-providers/google.html +13 -13
- data/_includes/analytics.html +13 -13
- data/_includes/author-profile-custom-links.html +6 -6
- data/_includes/author-profile.html +271 -271
- data/_includes/breadcrumbs.html +39 -39
- data/_includes/comments-providers/scripts.html +19 -19
- data/_includes/comments-providers/utterances.html +19 -19
- data/_includes/comments.html +174 -174
- data/_includes/footer.html +19 -19
- data/_includes/head.html +41 -41
- data/_includes/masthead.html +33 -33
- data/_includes/search/algolia-search-scripts.html +54 -54
- data/_includes/search/search_form.html +17 -17
- data/_includes/seo.html +164 -164
- data/_includes/video +13 -13
- data/_layouts/default.html +1 -1
- data/_layouts/home.html +13 -13
- data/_layouts/posts.html +29 -29
- data/_layouts/single.html +94 -94
- data/_layouts/splash.html +21 -21
- data/_layouts/tags.html +42 -42
- data/_sass/minimal-mistakes.scss +1 -1
- data/_sass/minimal-mistakes/_archive.scss +437 -437
- data/_sass/minimal-mistakes/_base.scss +357 -357
- data/_sass/minimal-mistakes/_footer.scss +91 -91
- data/_sass/minimal-mistakes/_mixins.scss +91 -91
- data/_sass/minimal-mistakes/_navigation.scss +556 -556
- data/_sass/minimal-mistakes/_search.scss +126 -126
- data/_sass/minimal-mistakes/_sidebar.scss +318 -318
- data/_sass/minimal-mistakes/_utilities.scss +6 -0
- data/_sass/minimal-mistakes/_variables.scss +159 -159
- data/_sass/minimal-mistakes/skins/_dark.scss +27 -27
- data/_sass/minimal-mistakes/skins/_neon.scss +56 -56
- data/_sass/minimal-mistakes/skins/_plum.scss +63 -63
- data/assets/js/_main.js +106 -106
- data/assets/js/lunr/lunr-store.js +54 -54
- data/assets/js/lunr/lunr.js +3483 -3483
- data/assets/js/lunr/lunr.min.js +5 -5
- data/assets/js/main.min.js +5 -5
- metadata +2 -2
data/_includes/footer.html
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
<div class="page__footer-follow">
|
2
|
-
<ul class="social-icons">
|
3
|
-
{% if site.data.ui-text[site.locale].follow_label %}
|
4
|
-
<li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li>
|
5
|
-
{% endif %}
|
6
|
-
|
7
|
-
{% if site.footer.links %}
|
8
|
-
{% for link in site.footer.links %}
|
9
|
-
{% if link.label and link.url %}
|
10
|
-
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer"><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i> {{ link.label }}</a></li>
|
11
|
-
{% endif %}
|
12
|
-
{% endfor %}
|
13
|
-
{% endif %}
|
14
|
-
|
15
|
-
<li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li>
|
16
|
-
</ul>
|
17
|
-
</div>
|
18
|
-
|
19
|
-
<div class="page__footer-copyright">© {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
1
|
+
<div class="page__footer-follow">
|
2
|
+
<ul class="social-icons">
|
3
|
+
{% if site.data.ui-text[site.locale].follow_label %}
|
4
|
+
<li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li>
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
{% if site.footer.links %}
|
8
|
+
{% for link in site.footer.links %}
|
9
|
+
{% if link.label and link.url %}
|
10
|
+
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer"><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i> {{ link.label }}</a></li>
|
11
|
+
{% endif %}
|
12
|
+
{% endfor %}
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
<li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="page__footer-copyright">© {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
|
data/_includes/head.html
CHANGED
@@ -1,41 +1,41 @@
|
|
1
|
-
<meta charset="utf-8">
|
2
|
-
|
3
|
-
{% include seo.html %}
|
4
|
-
|
5
|
-
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
|
6
|
-
|
7
|
-
<!-- http://t.co/dKP3o1e -->
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
9
|
-
|
10
|
-
<script>
|
11
|
-
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
|
12
|
-
</script>
|
13
|
-
|
14
|
-
<!-- For all browsers -->
|
15
|
-
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
|
16
|
-
|
17
|
-
<!--[if lte IE 9]>
|
18
|
-
<style>
|
19
|
-
/* old IE unsupported flexbox fixes */
|
20
|
-
.greedy-nav .site-title {
|
21
|
-
padding-right: 3em;
|
22
|
-
}
|
23
|
-
.greedy-nav button {
|
24
|
-
position: absolute;
|
25
|
-
top: 0;
|
26
|
-
right: 0;
|
27
|
-
height: 100%;
|
28
|
-
}
|
29
|
-
</style>
|
30
|
-
<![endif]-->
|
31
|
-
|
32
|
-
{% if site.head_scripts %}
|
33
|
-
{% for script in site.head_scripts %}
|
34
|
-
{% if script contains "://" %}
|
35
|
-
{% capture script_path %}{{ script }}{% endcapture %}
|
36
|
-
{% else %}
|
37
|
-
{% capture script_path %}{{ script | relative_url }}{% endcapture %}
|
38
|
-
{% endif %}
|
39
|
-
<script src="{{ script_path }}"></script>
|
40
|
-
{% endfor %}
|
41
|
-
{% endif %}
|
1
|
+
<meta charset="utf-8">
|
2
|
+
|
3
|
+
{% include seo.html %}
|
4
|
+
|
5
|
+
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
|
6
|
+
|
7
|
+
<!-- http://t.co/dKP3o1e -->
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
9
|
+
|
10
|
+
<script>
|
11
|
+
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
|
12
|
+
</script>
|
13
|
+
|
14
|
+
<!-- For all browsers -->
|
15
|
+
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
|
16
|
+
|
17
|
+
<!--[if lte IE 9]>
|
18
|
+
<style>
|
19
|
+
/* old IE unsupported flexbox fixes */
|
20
|
+
.greedy-nav .site-title {
|
21
|
+
padding-right: 3em;
|
22
|
+
}
|
23
|
+
.greedy-nav button {
|
24
|
+
position: absolute;
|
25
|
+
top: 0;
|
26
|
+
right: 0;
|
27
|
+
height: 100%;
|
28
|
+
}
|
29
|
+
</style>
|
30
|
+
<![endif]-->
|
31
|
+
|
32
|
+
{% if site.head_scripts %}
|
33
|
+
{% for script in site.head_scripts %}
|
34
|
+
{% if script contains "://" %}
|
35
|
+
{% capture script_path %}{{ script }}{% endcapture %}
|
36
|
+
{% else %}
|
37
|
+
{% capture script_path %}{{ script | relative_url }}{% endcapture %}
|
38
|
+
{% endif %}
|
39
|
+
<script src="{{ script_path }}"></script>
|
40
|
+
{% endfor %}
|
41
|
+
{% endif %}
|
data/_includes/masthead.html
CHANGED
@@ -1,33 +1,33 @@
|
|
1
|
-
<div class="masthead">
|
2
|
-
<div class="masthead__inner-wrap">
|
3
|
-
<div class="masthead__menu">
|
4
|
-
<nav id="site-nav" class="greedy-nav">
|
5
|
-
<a class="site-title" href="{{ '/' | relative_url }}">{{ site.title }}</a>
|
6
|
-
<ul class="visible-links">
|
7
|
-
{%- for link in site.data.navigation.main -%}
|
8
|
-
{%- if link.url contains '://' -%}
|
9
|
-
{%- assign url = link.url -%}
|
10
|
-
{%- else -%}
|
11
|
-
{%- assign url = link.url | relative_url -%}
|
12
|
-
{%- endif -%}
|
13
|
-
<li class="masthead__menu-item">
|
14
|
-
<a href="{{ url }}" {% if link.description %}title="{{ link.description }}"{% endif %}>{{ link.title }}</a>
|
15
|
-
</li>
|
16
|
-
{%- endfor -%}
|
17
|
-
</ul>
|
18
|
-
{% if site.search == true %}
|
19
|
-
<button class="search__toggle" type="button">
|
20
|
-
<svg class="icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.99 16">
|
21
|
-
<path d="M15.5,13.12L13.19,10.8a1.69,1.69,0,0,0-1.28-.55l-0.06-.06A6.5,6.5,0,0,0,5.77,0,6.5,6.5,0,0,0,2.46,11.59a6.47,6.47,0,0,0,7.74.26l0.05,0.05a1.65,1.65,0,0,0,.5,1.24l2.38,2.38A1.68,1.68,0,0,0,15.5,13.12ZM6.4,2A4.41,4.41,0,1,1,2,6.4,4.43,4.43,0,0,1,6.4,2Z" transform="translate(-.01)"></path>
|
22
|
-
</svg>
|
23
|
-
</button>
|
24
|
-
{% endif %}
|
25
|
-
<button class="greedy-nav__toggle hidden" type="button">
|
26
|
-
<span class="visually-hidden">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</span>
|
27
|
-
<div class="navicon"></div>
|
28
|
-
</button>
|
29
|
-
<ul class="hidden-links hidden"></ul>
|
30
|
-
</nav>
|
31
|
-
</div>
|
32
|
-
</div>
|
33
|
-
</div>
|
1
|
+
<div class="masthead">
|
2
|
+
<div class="masthead__inner-wrap">
|
3
|
+
<div class="masthead__menu">
|
4
|
+
<nav id="site-nav" class="greedy-nav">
|
5
|
+
<a class="site-title" href="{{ '/' | relative_url }}">{{ site.title }}</a>
|
6
|
+
<ul class="visible-links">
|
7
|
+
{%- for link in site.data.navigation.main -%}
|
8
|
+
{%- if link.url contains '://' -%}
|
9
|
+
{%- assign url = link.url -%}
|
10
|
+
{%- else -%}
|
11
|
+
{%- assign url = link.url | relative_url -%}
|
12
|
+
{%- endif -%}
|
13
|
+
<li class="masthead__menu-item">
|
14
|
+
<a href="{{ url }}" {% if link.description %}title="{{ link.description }}"{% endif %}>{{ link.title }}</a>
|
15
|
+
</li>
|
16
|
+
{%- endfor -%}
|
17
|
+
</ul>
|
18
|
+
{% if site.search == true %}
|
19
|
+
<button class="search__toggle" type="button">
|
20
|
+
<svg class="icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.99 16">
|
21
|
+
<path d="M15.5,13.12L13.19,10.8a1.69,1.69,0,0,0-1.28-.55l-0.06-.06A6.5,6.5,0,0,0,5.77,0,6.5,6.5,0,0,0,2.46,11.59a6.47,6.47,0,0,0,7.74.26l0.05,0.05a1.65,1.65,0,0,0,.5,1.24l2.38,2.38A1.68,1.68,0,0,0,15.5,13.12ZM6.4,2A4.41,4.41,0,1,1,2,6.4,4.43,4.43,0,0,1,6.4,2Z" transform="translate(-.01)"></path>
|
22
|
+
</svg>
|
23
|
+
</button>
|
24
|
+
{% endif %}
|
25
|
+
<button class="greedy-nav__toggle hidden" type="button">
|
26
|
+
<span class="visually-hidden">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</span>
|
27
|
+
<div class="navicon"></div>
|
28
|
+
</button>
|
29
|
+
<ul class="hidden-links hidden"></ul>
|
30
|
+
</nav>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</div>
|
@@ -1,54 +1,54 @@
|
|
1
|
-
<!-- Including InstantSearch.js library and styling -->
|
2
|
-
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js"></script>
|
3
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
|
4
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css">
|
5
|
-
|
6
|
-
<script>
|
7
|
-
// Instanciating InstantSearch.js with Algolia credentials
|
8
|
-
const search = instantsearch({
|
9
|
-
appId: '{{ site.algolia.application_id }}',
|
10
|
-
apiKey: '{{ site.algolia.search_only_api_key }}',
|
11
|
-
indexName: '{{ site.algolia.index_name }}',
|
12
|
-
searchParameters: {
|
13
|
-
restrictSearchableAttributes: [
|
14
|
-
'title',
|
15
|
-
'content'
|
16
|
-
]
|
17
|
-
}
|
18
|
-
});
|
19
|
-
|
20
|
-
const hitTemplate = function(hit) {
|
21
|
-
const url = hit.url;
|
22
|
-
const title = hit._highlightResult.title.value;
|
23
|
-
const content = hit._highlightResult.html.value;
|
24
|
-
|
25
|
-
return `
|
26
|
-
<div class="list__item">
|
27
|
-
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
|
28
|
-
<h2 class="archive__item-title" itemprop="headline"><a href="{{ site.baseurl }}${url}">${title}</a></h2>
|
29
|
-
<div class="archive__item-excerpt" itemprop="description">${content}</div>
|
30
|
-
</article>
|
31
|
-
</div>
|
32
|
-
`;
|
33
|
-
}
|
34
|
-
|
35
|
-
// Adding searchbar and results widgets
|
36
|
-
search.addWidget(
|
37
|
-
instantsearch.widgets.searchBox({
|
38
|
-
container: '.search-searchbar',
|
39
|
-
{% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
|
40
|
-
placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}'
|
41
|
-
})
|
42
|
-
);
|
43
|
-
search.addWidget(
|
44
|
-
instantsearch.widgets.hits({
|
45
|
-
container: '.search-hits',
|
46
|
-
templates: {
|
47
|
-
item: hitTemplate
|
48
|
-
}
|
49
|
-
})
|
50
|
-
);
|
51
|
-
|
52
|
-
// Starting the search
|
53
|
-
search.start();
|
54
|
-
</script>
|
1
|
+
<!-- Including InstantSearch.js library and styling -->
|
2
|
+
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js"></script>
|
3
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
|
4
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css">
|
5
|
+
|
6
|
+
<script>
|
7
|
+
// Instanciating InstantSearch.js with Algolia credentials
|
8
|
+
const search = instantsearch({
|
9
|
+
appId: '{{ site.algolia.application_id }}',
|
10
|
+
apiKey: '{{ site.algolia.search_only_api_key }}',
|
11
|
+
indexName: '{{ site.algolia.index_name }}',
|
12
|
+
searchParameters: {
|
13
|
+
restrictSearchableAttributes: [
|
14
|
+
'title',
|
15
|
+
'content'
|
16
|
+
]
|
17
|
+
}
|
18
|
+
});
|
19
|
+
|
20
|
+
const hitTemplate = function(hit) {
|
21
|
+
const url = hit.url;
|
22
|
+
const title = hit._highlightResult.title.value;
|
23
|
+
const content = hit._highlightResult.html.value;
|
24
|
+
|
25
|
+
return `
|
26
|
+
<div class="list__item">
|
27
|
+
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
|
28
|
+
<h2 class="archive__item-title" itemprop="headline"><a href="{{ site.baseurl }}${url}">${title}</a></h2>
|
29
|
+
<div class="archive__item-excerpt" itemprop="description">${content}</div>
|
30
|
+
</article>
|
31
|
+
</div>
|
32
|
+
`;
|
33
|
+
}
|
34
|
+
|
35
|
+
// Adding searchbar and results widgets
|
36
|
+
search.addWidget(
|
37
|
+
instantsearch.widgets.searchBox({
|
38
|
+
container: '.search-searchbar',
|
39
|
+
{% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
|
40
|
+
placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}'
|
41
|
+
})
|
42
|
+
);
|
43
|
+
search.addWidget(
|
44
|
+
instantsearch.widgets.hits({
|
45
|
+
container: '.search-hits',
|
46
|
+
templates: {
|
47
|
+
item: hitTemplate
|
48
|
+
}
|
49
|
+
})
|
50
|
+
);
|
51
|
+
|
52
|
+
// Starting the search
|
53
|
+
search.start();
|
54
|
+
</script>
|
@@ -1,18 +1,18 @@
|
|
1
|
-
<div class="search-content__inner-wrap">
|
2
|
-
{%- assign search_provider = site.search_provider | default: "lunr" -%}
|
3
|
-
{%- case search_provider -%}
|
4
|
-
{%- when "lunr" -%}
|
5
|
-
<input type="text" id="search" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
6
|
-
<div id="results" class="results"></div>
|
7
|
-
{%- when "google" -%}
|
8
|
-
<form onsubmit="return executeQuery();" id="cse-search-box-form-id">
|
9
|
-
<input type="text" id="cse-search-input-box-id" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
10
|
-
</form>
|
11
|
-
<div id="results" class="results">
|
12
|
-
<gcse:searchresults-only></gcse:searchresults-only>
|
13
|
-
</div>
|
14
|
-
{%- when "algolia" -%}
|
15
|
-
<div class="search-searchbar"></div>
|
16
|
-
<div class="search-hits"></div>
|
17
|
-
{%- endcase -%}
|
1
|
+
<div class="search-content__inner-wrap">
|
2
|
+
{%- assign search_provider = site.search_provider | default: "lunr" -%}
|
3
|
+
{%- case search_provider -%}
|
4
|
+
{%- when "lunr" -%}
|
5
|
+
<input type="text" id="search" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
6
|
+
<div id="results" class="results"></div>
|
7
|
+
{%- when "google" -%}
|
8
|
+
<form onsubmit="return executeQuery();" id="cse-search-box-form-id">
|
9
|
+
<input type="text" id="cse-search-input-box-id" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
|
10
|
+
</form>
|
11
|
+
<div id="results" class="results">
|
12
|
+
<gcse:searchresults-only></gcse:searchresults-only>
|
13
|
+
</div>
|
14
|
+
{%- when "algolia" -%}
|
15
|
+
<div class="search-searchbar"></div>
|
16
|
+
<div class="search-hits"></div>
|
17
|
+
{%- endcase -%}
|
18
18
|
</div>
|
data/_includes/seo.html
CHANGED
@@ -1,164 +1,164 @@
|
|
1
|
-
<!-- begin _includes/seo.html -->
|
2
|
-
{%- if site.url -%}
|
3
|
-
{%- assign seo_url = site.url | append: site.baseurl -%}
|
4
|
-
{%- endif -%}
|
5
|
-
{%- assign seo_url = seo_url | default: site.github.url -%}
|
6
|
-
|
7
|
-
{% assign title_separator = site.title_separator | default: '-' | replace: '|', '|' %}
|
8
|
-
|
9
|
-
{%- if page.title -%}
|
10
|
-
{%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
|
11
|
-
{%- endif -%}
|
12
|
-
|
13
|
-
{%- if seo_title -%}
|
14
|
-
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
|
15
|
-
{%- endif -%}
|
16
|
-
|
17
|
-
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
|
18
|
-
|
19
|
-
{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
|
20
|
-
{%- if seo_description -%}
|
21
|
-
{%- assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once -%}
|
22
|
-
{%- endif -%}
|
23
|
-
|
24
|
-
{%- assign author = page.author | default: page.authors[0] | default: site:author -%}
|
25
|
-
{%- assign author = site.data.authors[author] | default: author -%}
|
26
|
-
|
27
|
-
{%- if author.twitter -%}
|
28
|
-
{%- assign author_twitter = author.twitter | replace: "@", "" -%}
|
29
|
-
{%- endif -%}
|
30
|
-
|
31
|
-
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image -%}
|
32
|
-
{%- unless page_large_image contains '://' -%}
|
33
|
-
{%- assign page_large_image = page_large_image | absolute_url -%}
|
34
|
-
{%- endunless -%}
|
35
|
-
{%- assign page_large_image = page_large_image | escape -%}
|
36
|
-
|
37
|
-
{%- assign page_teaser_image = page.header.teaser | default: site.og_image -%}
|
38
|
-
{%- unless page_teaser_image contains '://' -%}
|
39
|
-
{%- assign page_teaser_image = page_teaser_image | absolute_url -%}
|
40
|
-
{%- endunless -%}
|
41
|
-
{%- assign page_teaser_image = page_teaser_image | escape -%}
|
42
|
-
|
43
|
-
{%- assign site_og_image = site.og_image -%}
|
44
|
-
{%- unless site_og_image contains '://' -%}
|
45
|
-
{%- assign site_og_image = site_og_image | absolute_url -%}
|
46
|
-
{%- endunless -%}
|
47
|
-
{%- assign site_og_image = site_og_image | escape -%}
|
48
|
-
|
49
|
-
{%- if page.date -%}
|
50
|
-
{%- assign og_type = "article" -%}
|
51
|
-
{%- else -%}
|
52
|
-
{%- assign og_type = "website" -%}
|
53
|
-
{%- endif -%}
|
54
|
-
|
55
|
-
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
56
|
-
<meta name="description" content="{{ seo_description }}">
|
57
|
-
|
58
|
-
{% if author.name %}
|
59
|
-
<meta name="author" content="{{ author.name | default: author }}">
|
60
|
-
{% endif %}
|
61
|
-
|
62
|
-
<meta property="og:type" content="{{ og_type }}">
|
63
|
-
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
64
|
-
<meta property="og:site_name" content="{{ site.title }}">
|
65
|
-
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
66
|
-
<meta property="og:url" content="{{ canonical_url }}">
|
67
|
-
|
68
|
-
{% if page.excerpt %}
|
69
|
-
<meta property="og:description" content="{{ seo_description }}">
|
70
|
-
{% endif %}
|
71
|
-
|
72
|
-
{% if page_large_image %}
|
73
|
-
<meta property="og:image" content="{{ page_large_image }}">
|
74
|
-
{% elsif page_teaser_image %}
|
75
|
-
<meta property="og:image" content="{{ page_teaser_image }}">
|
76
|
-
{% endif %}
|
77
|
-
|
78
|
-
{% if site.twitter.username %}
|
79
|
-
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
80
|
-
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
81
|
-
<meta name="twitter:description" content="{{ seo_description }}">
|
82
|
-
<meta name="twitter:url" content="{{ canonical_url }}">
|
83
|
-
|
84
|
-
{% if page_large_image %}
|
85
|
-
<meta name="twitter:card" content="summary_large_image">
|
86
|
-
<meta name="twitter:image" content="{{ page_large_image }}">
|
87
|
-
{% else %}
|
88
|
-
<meta name="twitter:card" content="summary">
|
89
|
-
{% if page_teaser_image %}
|
90
|
-
<meta name="twitter:image" content="{{ page_teaser_image }}">
|
91
|
-
{% endif %}
|
92
|
-
{% endif %}
|
93
|
-
|
94
|
-
{% if author_twitter %}
|
95
|
-
<meta name="twitter:creator" content="@{{ author_twitter }}">
|
96
|
-
{% endif %}
|
97
|
-
{% endif %}
|
98
|
-
|
99
|
-
{% if page.date %}
|
100
|
-
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
101
|
-
{% endif %}
|
102
|
-
|
103
|
-
{% if og_type == "article" and page.last_modified_at %}
|
104
|
-
<meta property="article:modified_time" content="{{ page.last_modified_at | date_to_xmlschema }}">
|
105
|
-
{% endif %}
|
106
|
-
|
107
|
-
{% if site.facebook %}
|
108
|
-
{% if site.facebook.publisher %}
|
109
|
-
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
|
110
|
-
{% endif %}
|
111
|
-
|
112
|
-
{% if site.facebook.app_id %}
|
113
|
-
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
|
114
|
-
{% endif %}
|
115
|
-
{% endif %}
|
116
|
-
|
117
|
-
<link rel="canonical" href="{{ canonical_url }}">
|
118
|
-
|
119
|
-
{% if paginator.previous_page %}
|
120
|
-
<link rel="prev" href="{{ paginator.previous_page_path | absolute_url }}">
|
121
|
-
{% endif %}
|
122
|
-
{% if paginator.next_page %}
|
123
|
-
<link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
|
124
|
-
{% endif %}
|
125
|
-
|
126
|
-
{% if site.og_image %}
|
127
|
-
<script type="application/ld+json">
|
128
|
-
{
|
129
|
-
"@context": "http://schema.org",
|
130
|
-
"@type": "Organization",
|
131
|
-
"url": {{ seo_url | jsonify }},
|
132
|
-
"logo": {{ site_og_image | jsonify }}
|
133
|
-
}
|
134
|
-
</script>
|
135
|
-
{% endif %}
|
136
|
-
|
137
|
-
{% if site.social %}
|
138
|
-
<script type="application/ld+json">
|
139
|
-
{
|
140
|
-
"@context": "http://schema.org",
|
141
|
-
"@type": "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
|
142
|
-
"name": {{ site.social.name | default: site.name | jsonify }},
|
143
|
-
"url": {{ seo_url | jsonify }},
|
144
|
-
"sameAs": {{ site.social.links | jsonify }}
|
145
|
-
}
|
146
|
-
</script>
|
147
|
-
{% endif %}
|
148
|
-
|
149
|
-
{% if site.google_site_verification %}
|
150
|
-
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
151
|
-
{% endif %}
|
152
|
-
{% if site.bing_site_verification %}
|
153
|
-
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
|
154
|
-
{% endif %}
|
155
|
-
{% if site.alexa_site_verification %}
|
156
|
-
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
|
157
|
-
{% endif %}
|
158
|
-
{% if site.yandex_site_verification %}
|
159
|
-
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
|
160
|
-
{% endif %}
|
161
|
-
{% if site.naver_site_verification %}
|
162
|
-
<meta name="naver-site-verification" content="{{ site.naver_site_verification }}">
|
163
|
-
{% endif %}
|
164
|
-
<!-- end _includes/seo.html -->
|
1
|
+
<!-- begin _includes/seo.html -->
|
2
|
+
{%- if site.url -%}
|
3
|
+
{%- assign seo_url = site.url | append: site.baseurl -%}
|
4
|
+
{%- endif -%}
|
5
|
+
{%- assign seo_url = seo_url | default: site.github.url -%}
|
6
|
+
|
7
|
+
{% assign title_separator = site.title_separator | default: '-' | replace: '|', '|' %}
|
8
|
+
|
9
|
+
{%- if page.title -%}
|
10
|
+
{%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
|
11
|
+
{%- endif -%}
|
12
|
+
|
13
|
+
{%- if seo_title -%}
|
14
|
+
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
|
15
|
+
{%- endif -%}
|
16
|
+
|
17
|
+
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
|
18
|
+
|
19
|
+
{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
|
20
|
+
{%- if seo_description -%}
|
21
|
+
{%- assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once -%}
|
22
|
+
{%- endif -%}
|
23
|
+
|
24
|
+
{%- assign author = page.author | default: page.authors[0] | default: site:author -%}
|
25
|
+
{%- assign author = site.data.authors[author] | default: author -%}
|
26
|
+
|
27
|
+
{%- if author.twitter -%}
|
28
|
+
{%- assign author_twitter = author.twitter | replace: "@", "" -%}
|
29
|
+
{%- endif -%}
|
30
|
+
|
31
|
+
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image -%}
|
32
|
+
{%- unless page_large_image contains '://' -%}
|
33
|
+
{%- assign page_large_image = page_large_image | absolute_url -%}
|
34
|
+
{%- endunless -%}
|
35
|
+
{%- assign page_large_image = page_large_image | escape -%}
|
36
|
+
|
37
|
+
{%- assign page_teaser_image = page.header.teaser | default: site.og_image -%}
|
38
|
+
{%- unless page_teaser_image contains '://' -%}
|
39
|
+
{%- assign page_teaser_image = page_teaser_image | absolute_url -%}
|
40
|
+
{%- endunless -%}
|
41
|
+
{%- assign page_teaser_image = page_teaser_image | escape -%}
|
42
|
+
|
43
|
+
{%- assign site_og_image = site.og_image -%}
|
44
|
+
{%- unless site_og_image contains '://' -%}
|
45
|
+
{%- assign site_og_image = site_og_image | absolute_url -%}
|
46
|
+
{%- endunless -%}
|
47
|
+
{%- assign site_og_image = site_og_image | escape -%}
|
48
|
+
|
49
|
+
{%- if page.date -%}
|
50
|
+
{%- assign og_type = "article" -%}
|
51
|
+
{%- else -%}
|
52
|
+
{%- assign og_type = "website" -%}
|
53
|
+
{%- endif -%}
|
54
|
+
|
55
|
+
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
56
|
+
<meta name="description" content="{{ seo_description }}">
|
57
|
+
|
58
|
+
{% if author.name %}
|
59
|
+
<meta name="author" content="{{ author.name | default: author }}">
|
60
|
+
{% endif %}
|
61
|
+
|
62
|
+
<meta property="og:type" content="{{ og_type }}">
|
63
|
+
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
64
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
65
|
+
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
66
|
+
<meta property="og:url" content="{{ canonical_url }}">
|
67
|
+
|
68
|
+
{% if page.excerpt %}
|
69
|
+
<meta property="og:description" content="{{ seo_description }}">
|
70
|
+
{% endif %}
|
71
|
+
|
72
|
+
{% if page_large_image %}
|
73
|
+
<meta property="og:image" content="{{ page_large_image }}">
|
74
|
+
{% elsif page_teaser_image %}
|
75
|
+
<meta property="og:image" content="{{ page_teaser_image }}">
|
76
|
+
{% endif %}
|
77
|
+
|
78
|
+
{% if site.twitter.username %}
|
79
|
+
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
80
|
+
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
81
|
+
<meta name="twitter:description" content="{{ seo_description }}">
|
82
|
+
<meta name="twitter:url" content="{{ canonical_url }}">
|
83
|
+
|
84
|
+
{% if page_large_image %}
|
85
|
+
<meta name="twitter:card" content="summary_large_image">
|
86
|
+
<meta name="twitter:image" content="{{ page_large_image }}">
|
87
|
+
{% else %}
|
88
|
+
<meta name="twitter:card" content="summary">
|
89
|
+
{% if page_teaser_image %}
|
90
|
+
<meta name="twitter:image" content="{{ page_teaser_image }}">
|
91
|
+
{% endif %}
|
92
|
+
{% endif %}
|
93
|
+
|
94
|
+
{% if author_twitter %}
|
95
|
+
<meta name="twitter:creator" content="@{{ author_twitter }}">
|
96
|
+
{% endif %}
|
97
|
+
{% endif %}
|
98
|
+
|
99
|
+
{% if page.date %}
|
100
|
+
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
101
|
+
{% endif %}
|
102
|
+
|
103
|
+
{% if og_type == "article" and page.last_modified_at %}
|
104
|
+
<meta property="article:modified_time" content="{{ page.last_modified_at | date_to_xmlschema }}">
|
105
|
+
{% endif %}
|
106
|
+
|
107
|
+
{% if site.facebook %}
|
108
|
+
{% if site.facebook.publisher %}
|
109
|
+
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
|
110
|
+
{% endif %}
|
111
|
+
|
112
|
+
{% if site.facebook.app_id %}
|
113
|
+
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
|
114
|
+
{% endif %}
|
115
|
+
{% endif %}
|
116
|
+
|
117
|
+
<link rel="canonical" href="{{ canonical_url }}">
|
118
|
+
|
119
|
+
{% if paginator.previous_page %}
|
120
|
+
<link rel="prev" href="{{ paginator.previous_page_path | absolute_url }}">
|
121
|
+
{% endif %}
|
122
|
+
{% if paginator.next_page %}
|
123
|
+
<link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
|
124
|
+
{% endif %}
|
125
|
+
|
126
|
+
{% if site.og_image %}
|
127
|
+
<script type="application/ld+json">
|
128
|
+
{
|
129
|
+
"@context": "http://schema.org",
|
130
|
+
"@type": "Organization",
|
131
|
+
"url": {{ seo_url | jsonify }},
|
132
|
+
"logo": {{ site_og_image | jsonify }}
|
133
|
+
}
|
134
|
+
</script>
|
135
|
+
{% endif %}
|
136
|
+
|
137
|
+
{% if site.social %}
|
138
|
+
<script type="application/ld+json">
|
139
|
+
{
|
140
|
+
"@context": "http://schema.org",
|
141
|
+
"@type": "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
|
142
|
+
"name": {{ site.social.name | default: site.name | jsonify }},
|
143
|
+
"url": {{ seo_url | jsonify }},
|
144
|
+
"sameAs": {{ site.social.links | jsonify }}
|
145
|
+
}
|
146
|
+
</script>
|
147
|
+
{% endif %}
|
148
|
+
|
149
|
+
{% if site.google_site_verification %}
|
150
|
+
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
151
|
+
{% endif %}
|
152
|
+
{% if site.bing_site_verification %}
|
153
|
+
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
|
154
|
+
{% endif %}
|
155
|
+
{% if site.alexa_site_verification %}
|
156
|
+
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
|
157
|
+
{% endif %}
|
158
|
+
{% if site.yandex_site_verification %}
|
159
|
+
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
|
160
|
+
{% endif %}
|
161
|
+
{% if site.naver_site_verification %}
|
162
|
+
<meta name="naver-site-verification" content="{{ site.naver_site_verification }}">
|
163
|
+
{% endif %}
|
164
|
+
<!-- end _includes/seo.html -->
|