minimal-mistakes-jekyll 4.14.0 → 4.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -1
  3. data/LICENSE +20 -20
  4. data/README.md +1 -1
  5. data/_data/ui-text.yml +1176 -1176
  6. data/_includes/analytics-providers/google-gtag.html +9 -9
  7. data/_includes/analytics-providers/google-universal.html +10 -10
  8. data/_includes/analytics-providers/google.html +13 -13
  9. data/_includes/analytics.html +13 -13
  10. data/_includes/author-profile-custom-links.html +6 -6
  11. data/_includes/author-profile.html +271 -271
  12. data/_includes/breadcrumbs.html +39 -39
  13. data/_includes/comments-providers/scripts.html +19 -19
  14. data/_includes/comments-providers/utterances.html +19 -19
  15. data/_includes/comments.html +174 -174
  16. data/_includes/footer.html +19 -19
  17. data/_includes/head.html +41 -41
  18. data/_includes/masthead.html +33 -33
  19. data/_includes/search/algolia-search-scripts.html +54 -54
  20. data/_includes/search/search_form.html +17 -17
  21. data/_includes/seo.html +164 -164
  22. data/_includes/video +13 -13
  23. data/_layouts/default.html +1 -1
  24. data/_layouts/home.html +13 -13
  25. data/_layouts/posts.html +29 -29
  26. data/_layouts/single.html +94 -94
  27. data/_layouts/splash.html +21 -21
  28. data/_layouts/tags.html +42 -42
  29. data/_sass/minimal-mistakes.scss +1 -1
  30. data/_sass/minimal-mistakes/_archive.scss +437 -437
  31. data/_sass/minimal-mistakes/_base.scss +357 -357
  32. data/_sass/minimal-mistakes/_footer.scss +91 -91
  33. data/_sass/minimal-mistakes/_mixins.scss +91 -91
  34. data/_sass/minimal-mistakes/_navigation.scss +556 -556
  35. data/_sass/minimal-mistakes/_search.scss +126 -126
  36. data/_sass/minimal-mistakes/_sidebar.scss +318 -318
  37. data/_sass/minimal-mistakes/_utilities.scss +6 -0
  38. data/_sass/minimal-mistakes/_variables.scss +159 -159
  39. data/_sass/minimal-mistakes/skins/_dark.scss +27 -27
  40. data/_sass/minimal-mistakes/skins/_neon.scss +56 -56
  41. data/_sass/minimal-mistakes/skins/_plum.scss +63 -63
  42. data/assets/js/_main.js +106 -106
  43. data/assets/js/lunr/lunr-store.js +54 -54
  44. data/assets/js/lunr/lunr.js +3483 -3483
  45. data/assets/js/lunr/lunr.min.js +5 -5
  46. data/assets/js/main.min.js +5 -5
  47. metadata +2 -2
@@ -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">&copy; {{ 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> &amp; <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">&copy; {{ 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> &amp; <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 %}
@@ -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: '|', '&#124;' %}
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: '|', '&#124;' %}
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 -->