minimal-mistakes-jekyll 4.6.0 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/LICENSE.txt +59 -21
- data/README.md +217 -160
- data/_data/navigation.yml +11 -11
- data/_data/ui-text.yml +931 -888
- data/_includes/analytics-providers/custom.html +2 -2
- data/_includes/analytics-providers/google-universal.html +9 -9
- data/_includes/analytics-providers/google.html +10 -10
- data/_includes/analytics.html +11 -11
- data/_includes/archive-single.html +37 -37
- data/_includes/author-profile-custom-links.html +6 -6
- data/_includes/author-profile.html +249 -249
- data/_includes/base_path +4 -4
- data/_includes/breadcrumbs.html +39 -39
- data/_includes/browser-upgrade.html +2 -2
- data/_includes/category-list.html +25 -25
- data/_includes/comment.html +22 -22
- data/_includes/comments-providers/custom.html +2 -2
- data/_includes/comments-providers/discourse.html +13 -13
- data/_includes/comments-providers/facebook.html +7 -7
- data/_includes/comments-providers/google-plus.html +1 -1
- data/_includes/comments-providers/scripts.html +17 -15
- data/_includes/comments-providers/staticman.html +41 -41
- data/_includes/comments-providers/staticman_v2.html +42 -0
- data/_includes/comments.html +168 -96
- data/_includes/feature_row +49 -49
- data/_includes/figure +12 -12
- data/_includes/footer.html +25 -25
- data/_includes/footer/custom.html +2 -2
- data/_includes/gallery +46 -46
- data/_includes/group-by-array +46 -46
- data/_includes/head.html +42 -42
- data/_includes/head/custom.html +4 -4
- data/_includes/masthead.html +23 -20
- data/_includes/nav_list +46 -46
- data/_includes/page__hero_video.html +4 -4
- data/_includes/page__taxonomy.html +6 -6
- data/_includes/paginator.html +69 -69
- data/_includes/post_pagination.html +13 -13
- data/_includes/read-time.html +14 -14
- data/_includes/scripts.html +15 -15
- data/_includes/seo.html +162 -147
- data/_includes/sidebar.html +22 -22
- data/_includes/social-share.html +13 -13
- data/_includes/tag-list.html +25 -25
- data/_includes/toc +6 -6
- data/_includes/toc.html +75 -0
- data/_includes/video +11 -11
- data/_layouts/archive-taxonomy.html +14 -14
- data/_layouts/archive.html +25 -25
- data/_layouts/compress.html +10 -10
- data/_layouts/default.html +1 -1
- data/_layouts/home.html +11 -11
- data/_layouts/single.html +92 -84
- data/_layouts/splash.html +21 -21
- data/_sass/minimal-mistakes.scss +1 -1
- data/_sass/minimal-mistakes/_animations.scss +20 -20
- data/_sass/minimal-mistakes/_archive.scss +317 -317
- data/_sass/minimal-mistakes/_base.scss +315 -315
- data/_sass/minimal-mistakes/_buttons.scss +97 -97
- data/_sass/minimal-mistakes/_footer.scss +82 -82
- data/_sass/minimal-mistakes/_forms.scss +399 -389
- data/_sass/minimal-mistakes/_masthead.scss +82 -82
- data/_sass/minimal-mistakes/_mixins.scss +91 -91
- data/_sass/minimal-mistakes/_navigation.scss +552 -552
- data/_sass/minimal-mistakes/_notices.scss +99 -99
- data/_sass/minimal-mistakes/_page.scss +430 -430
- data/_sass/minimal-mistakes/_reset.scss +186 -186
- data/_sass/minimal-mistakes/_sidebar.scss +262 -262
- data/_sass/minimal-mistakes/_syntax.scss +286 -146
- data/_sass/minimal-mistakes/_tables.scss +36 -36
- data/_sass/minimal-mistakes/_utilities.scss +519 -519
- data/_sass/minimal-mistakes/_variables.scss +137 -137
- data/_sass/minimal-mistakes/skins/_air.scss +22 -22
- data/_sass/minimal-mistakes/skins/_aqua.scss +30 -0
- data/_sass/minimal-mistakes/skins/_contrast.scss +33 -33
- data/_sass/minimal-mistakes/skins/_dark.scss +23 -23
- data/_sass/minimal-mistakes/skins/_default.scss +5 -5
- data/_sass/minimal-mistakes/skins/_dirt.scss +14 -14
- data/_sass/minimal-mistakes/skins/_mint.scss +22 -22
- data/_sass/minimal-mistakes/skins/_neon.scss +35 -0
- data/_sass/minimal-mistakes/skins/_plum.scss +42 -0
- data/_sass/minimal-mistakes/skins/_sunrise.scss +25 -25
- data/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss +114 -114
- data/_sass/minimal-mistakes/vendor/breakpoint/_context.scss +94 -94
- data/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss +151 -151
- data/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss +49 -49
- data/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss +15 -15
- data/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss +215 -215
- data/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss +82 -82
- data/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss +70 -70
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss +33 -33
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss +82 -82
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss +31 -31
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss +26 -26
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss +36 -36
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss +21 -21
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss +22 -22
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss +21 -21
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -60
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss +13 -13
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss +18 -18
- data/_sass/minimal-mistakes/vendor/font-awesome/_animated.scss +34 -34
- data/_sass/minimal-mistakes/vendor/font-awesome/_bordered-pulled.scss +25 -25
- data/_sass/minimal-mistakes/vendor/font-awesome/_core.scss +12 -12
- data/_sass/minimal-mistakes/vendor/font-awesome/_fixed-width.scss +6 -6
- data/_sass/minimal-mistakes/vendor/font-awesome/_font-awesome.scss +18 -18
- data/_sass/minimal-mistakes/vendor/font-awesome/_icons.scss +789 -789
- data/_sass/minimal-mistakes/vendor/font-awesome/_larger.scss +13 -13
- data/_sass/minimal-mistakes/vendor/font-awesome/_list.scss +19 -19
- data/_sass/minimal-mistakes/vendor/font-awesome/_mixins.scss +60 -60
- data/_sass/minimal-mistakes/vendor/font-awesome/_path.scss +15 -15
- data/_sass/minimal-mistakes/vendor/font-awesome/_rotated-flipped.scss +20 -20
- data/_sass/minimal-mistakes/vendor/font-awesome/_screen-reader.scss +5 -5
- data/_sass/minimal-mistakes/vendor/font-awesome/_stacked.scss +20 -20
- data/_sass/minimal-mistakes/vendor/font-awesome/_variables.scss +800 -800
- data/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss +649 -649
- data/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss +45 -45
- data/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss +13 -13
- data/_sass/minimal-mistakes/vendor/susy/_susy.scss +5 -5
- data/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss +5 -5
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss +7 -7
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss +114 -114
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss +67 -67
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss +14 -14
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss +18 -18
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss +133 -133
- data/_sass/minimal-mistakes/vendor/susy/susy/_api.scss +318 -318
- data/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss +261 -261
- data/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss +163 -163
- data/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss +329 -329
- data/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss +441 -441
- data/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss +213 -213
- data/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss +191 -191
- data/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss +56 -56
- data/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss +167 -167
- data/assets/css/main.scss +7 -7
- data/assets/fonts/fontawesome-webfont.svg +2671 -2671
- data/assets/js/_main.js +72 -72
- data/assets/js/main.min.js +1 -1
- data/assets/js/plugins/jquery.fitvids.js +81 -81
- data/assets/js/plugins/jquery.greedy-navigation.js +77 -77
- metadata +8 -3
data/_includes/head/custom.html
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
<!-- start custom head snippets -->
|
2
|
-
|
3
|
-
<!-- insert favicons. use http://realfavicongenerator.net/ -->
|
4
|
-
|
1
|
+
<!-- start custom head snippets -->
|
2
|
+
|
3
|
+
<!-- insert favicons. use http://realfavicongenerator.net/ -->
|
4
|
+
|
5
5
|
<!-- end custom head snippets -->
|
data/_includes/masthead.html
CHANGED
@@ -1,21 +1,24 @@
|
|
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="{{ '/' | absolute_url }}">{{ site.title }}</a>
|
6
|
-
<ul class="visible-links">
|
7
|
-
{% for link in site.data.navigation.main %}
|
8
|
-
{% if link.url contains 'http' %}
|
9
|
-
{% assign domain = '' %}
|
10
|
-
{% else %}
|
11
|
-
{% assign domain = site.url | append: site.baseurl %}
|
12
|
-
{% endif %}
|
13
|
-
<li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}">{{ link.title }}</a></li>
|
14
|
-
{% endfor %}
|
15
|
-
</ul>
|
16
|
-
<button
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
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="{{ '/' | absolute_url }}">{{ site.title }}</a>
|
6
|
+
<ul class="visible-links">
|
7
|
+
{% for link in site.data.navigation.main %}
|
8
|
+
{% if link.url contains 'http' %}
|
9
|
+
{% assign domain = '' %}
|
10
|
+
{% else %}
|
11
|
+
{% assign domain = site.url | append: site.baseurl %}
|
12
|
+
{% endif %}
|
13
|
+
<li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}">{{ link.title }}</a></li>
|
14
|
+
{% endfor %}
|
15
|
+
</ul>
|
16
|
+
<button type="button">
|
17
|
+
<span class="visually-hidden">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</span>
|
18
|
+
<div class="navicon"></div>
|
19
|
+
</button>
|
20
|
+
<ul class="hidden-links hidden"></ul>
|
21
|
+
</nav>
|
22
|
+
</div>
|
23
|
+
</div>
|
21
24
|
</div>
|
data/_includes/nav_list
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
{% assign navigation = site.data.navigation[include.nav] %}
|
2
|
-
|
3
|
-
<nav class="nav__list">
|
4
|
-
{% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
|
5
|
-
<input id="ac-toc" name="accordion-toc" type="checkbox" />
|
6
|
-
<label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
|
7
|
-
<ul class="nav__items">
|
8
|
-
{% for nav in navigation %}
|
9
|
-
<li>
|
10
|
-
{% if nav.url %}
|
11
|
-
{% comment %} internal/external URL check {% endcomment %}
|
12
|
-
{% if nav.url contains "://" %}
|
13
|
-
{% assign domain = "" %}
|
14
|
-
{% else %}
|
15
|
-
{% assign domain = site.url | append: site.baseurl %}
|
16
|
-
{% endif %}
|
17
|
-
|
18
|
-
<a href="{{ domain }}{{ nav.url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
|
19
|
-
{% else %}
|
20
|
-
<span class="nav__sub-title">{{ nav.title }}</span>
|
21
|
-
{% endif %}
|
22
|
-
|
23
|
-
{% if nav.children != null %}
|
24
|
-
<ul>
|
25
|
-
{% for child in nav.children %}
|
26
|
-
{% comment %} internal/external URL check {% endcomment %}
|
27
|
-
{% if child.url contains "://" %}
|
28
|
-
{% assign domain = "" %}
|
29
|
-
{% else %}
|
30
|
-
{% assign domain = site.url | append: site.baseurl %}
|
31
|
-
{% endif %}
|
32
|
-
|
33
|
-
{% comment %} set "active" class on current page {% endcomment %}
|
34
|
-
{% if child.url == page.url %}
|
35
|
-
{% assign active = "active" %}
|
36
|
-
{% else %}
|
37
|
-
{% assign active = "" %}
|
38
|
-
{% endif %}
|
39
|
-
|
40
|
-
<li><a href="{{ domain }}{{ child.url }}" class="{{ active }}">{{ child.title }}</a></li>
|
41
|
-
{% endfor %}
|
42
|
-
</ul>
|
43
|
-
{% endif %}
|
44
|
-
</li>
|
45
|
-
{% endfor %}
|
46
|
-
</ul>
|
1
|
+
{% assign navigation = site.data.navigation[include.nav] %}
|
2
|
+
|
3
|
+
<nav class="nav__list">
|
4
|
+
{% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
|
5
|
+
<input id="ac-toc" name="accordion-toc" type="checkbox" />
|
6
|
+
<label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
|
7
|
+
<ul class="nav__items">
|
8
|
+
{% for nav in navigation %}
|
9
|
+
<li>
|
10
|
+
{% if nav.url %}
|
11
|
+
{% comment %} internal/external URL check {% endcomment %}
|
12
|
+
{% if nav.url contains "://" %}
|
13
|
+
{% assign domain = "" %}
|
14
|
+
{% else %}
|
15
|
+
{% assign domain = site.url | append: site.baseurl %}
|
16
|
+
{% endif %}
|
17
|
+
|
18
|
+
<a href="{{ domain }}{{ nav.url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
|
19
|
+
{% else %}
|
20
|
+
<span class="nav__sub-title">{{ nav.title }}</span>
|
21
|
+
{% endif %}
|
22
|
+
|
23
|
+
{% if nav.children != null %}
|
24
|
+
<ul>
|
25
|
+
{% for child in nav.children %}
|
26
|
+
{% comment %} internal/external URL check {% endcomment %}
|
27
|
+
{% if child.url contains "://" %}
|
28
|
+
{% assign domain = "" %}
|
29
|
+
{% else %}
|
30
|
+
{% assign domain = site.url | append: site.baseurl %}
|
31
|
+
{% endif %}
|
32
|
+
|
33
|
+
{% comment %} set "active" class on current page {% endcomment %}
|
34
|
+
{% if child.url == page.url %}
|
35
|
+
{% assign active = "active" %}
|
36
|
+
{% else %}
|
37
|
+
{% assign active = "" %}
|
38
|
+
{% endif %}
|
39
|
+
|
40
|
+
<li><a href="{{ domain }}{{ child.url }}" class="{{ active }}">{{ child.title }}</a></li>
|
41
|
+
{% endfor %}
|
42
|
+
</ul>
|
43
|
+
{% endif %}
|
44
|
+
</li>
|
45
|
+
{% endfor %}
|
46
|
+
</ul>
|
47
47
|
</nav>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
{% capture video_id %}{{ page.header.video.id }}{% endcapture %}
|
2
|
-
{% capture video_provider %}{{ page.header.video.provider }}{% endcapture %}
|
3
|
-
|
4
|
-
{% include video id=video_id provider=video_provider %}
|
1
|
+
{% capture video_id %}{{ page.header.video.id }}{% endcapture %}
|
2
|
+
{% capture video_provider %}{{ page.header.video.provider }}{% endcapture %}
|
3
|
+
|
4
|
+
{% include video id=video_id provider=video_provider %}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
{% if site.tag_archive.type and page.tags[0] %}
|
2
|
-
{% include tag-list.html %}
|
3
|
-
{% endif %}
|
4
|
-
|
5
|
-
{% if site.category_archive.type and page.categories[0] %}
|
6
|
-
{% include category-list.html %}
|
1
|
+
{% if site.tag_archive.type and page.tags[0] %}
|
2
|
+
{% include tag-list.html %}
|
3
|
+
{% endif %}
|
4
|
+
|
5
|
+
{% if site.category_archive.type and page.categories[0] %}
|
6
|
+
{% include category-list.html %}
|
7
7
|
{% endif %}
|
data/_includes/paginator.html
CHANGED
@@ -1,69 +1,69 @@
|
|
1
|
-
{% if paginator.total_pages > 1 %}
|
2
|
-
<nav class="pagination">
|
3
|
-
{% assign first_page_path = site.paginate_path | replace: 'page:num', '' | replace: '//', '/' | absolute_url %}
|
4
|
-
<ul>
|
5
|
-
{% comment %} Link for previous page {% endcomment %}
|
6
|
-
{% if paginator.previous_page %}
|
7
|
-
{% if paginator.previous_page == 1 %}
|
8
|
-
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
9
|
-
{% else %}
|
10
|
-
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
11
|
-
{% endif %}
|
12
|
-
{% else %}
|
13
|
-
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
14
|
-
{% endif %}
|
15
|
-
|
16
|
-
{% comment %} First page {% endcomment %}
|
17
|
-
{% if paginator.page == 1 %}
|
18
|
-
<li><a href="#" class="disabled current">1</a></li>
|
19
|
-
{% else %}
|
20
|
-
<li><a href="{{ first_page_path }}">1</a></li>
|
21
|
-
{% endif %}
|
22
|
-
|
23
|
-
{% assign page_start = 2 %}
|
24
|
-
{% if paginator.page > 4 %}
|
25
|
-
{% assign page_start = paginator.page | minus: 2 %}
|
26
|
-
{% comment %} Ellipsis for truncated links {% endcomment %}
|
27
|
-
<li><a href="#" class="disabled">…</a></li>
|
28
|
-
{% endif %}
|
29
|
-
|
30
|
-
{% assign page_end = paginator.total_pages | minus: 1 %}
|
31
|
-
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
32
|
-
{% if pages_to_end > 4 %}
|
33
|
-
{% assign page_end = paginator.page | plus: 2 %}
|
34
|
-
{% endif %}
|
35
|
-
|
36
|
-
{% for index in (page_start..page_end) %}
|
37
|
-
{% if index == paginator.page %}
|
38
|
-
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | absolute_url }}" class="disabled current">{{ index }}</a></li>
|
39
|
-
{% else %}
|
40
|
-
{% comment %} Distance from current page and this link {% endcomment %}
|
41
|
-
{% assign dist = paginator.page | minus: index %}
|
42
|
-
{% if dist < 0 %}
|
43
|
-
{% comment %} Distance must be a positive value {% endcomment %}
|
44
|
-
{% assign dist = 0 | minus: dist %}
|
45
|
-
{% endif %}
|
46
|
-
<li><a href="{{ site.paginate_path | replace: ':num', index | absolute_url }}">{{ index }}</a></li>
|
47
|
-
{% endif %}
|
48
|
-
{% endfor %}
|
49
|
-
|
50
|
-
{% comment %} Ellipsis for truncated links {% endcomment %}
|
51
|
-
{% if pages_to_end > 3 %}
|
52
|
-
<li><a href="#" class="disabled">…</a></li>
|
53
|
-
{% endif %}
|
54
|
-
|
55
|
-
{% if paginator.page == paginator.total_pages %}
|
56
|
-
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
57
|
-
{% else %}
|
58
|
-
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | absolute_url }}">{{ paginator.total_pages }}</a></li>
|
59
|
-
{% endif %}
|
60
|
-
|
61
|
-
{% comment %} Link next page {% endcomment %}
|
62
|
-
{% if paginator.next_page %}
|
63
|
-
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
64
|
-
{% else %}
|
65
|
-
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
66
|
-
{% endif %}
|
67
|
-
</ul>
|
68
|
-
</nav>
|
69
|
-
{% endif %}
|
1
|
+
{% if paginator.total_pages > 1 %}
|
2
|
+
<nav class="pagination">
|
3
|
+
{% assign first_page_path = site.paginate_path | replace: 'page:num', '' | replace: '//', '/' | absolute_url %}
|
4
|
+
<ul>
|
5
|
+
{% comment %} Link for previous page {% endcomment %}
|
6
|
+
{% if paginator.previous_page %}
|
7
|
+
{% if paginator.previous_page == 1 %}
|
8
|
+
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
9
|
+
{% else %}
|
10
|
+
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
11
|
+
{% endif %}
|
12
|
+
{% else %}
|
13
|
+
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
14
|
+
{% endif %}
|
15
|
+
|
16
|
+
{% comment %} First page {% endcomment %}
|
17
|
+
{% if paginator.page == 1 %}
|
18
|
+
<li><a href="#" class="disabled current">1</a></li>
|
19
|
+
{% else %}
|
20
|
+
<li><a href="{{ first_page_path }}">1</a></li>
|
21
|
+
{% endif %}
|
22
|
+
|
23
|
+
{% assign page_start = 2 %}
|
24
|
+
{% if paginator.page > 4 %}
|
25
|
+
{% assign page_start = paginator.page | minus: 2 %}
|
26
|
+
{% comment %} Ellipsis for truncated links {% endcomment %}
|
27
|
+
<li><a href="#" class="disabled">…</a></li>
|
28
|
+
{% endif %}
|
29
|
+
|
30
|
+
{% assign page_end = paginator.total_pages | minus: 1 %}
|
31
|
+
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
32
|
+
{% if pages_to_end > 4 %}
|
33
|
+
{% assign page_end = paginator.page | plus: 2 %}
|
34
|
+
{% endif %}
|
35
|
+
|
36
|
+
{% for index in (page_start..page_end) %}
|
37
|
+
{% if index == paginator.page %}
|
38
|
+
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | absolute_url }}" class="disabled current">{{ index }}</a></li>
|
39
|
+
{% else %}
|
40
|
+
{% comment %} Distance from current page and this link {% endcomment %}
|
41
|
+
{% assign dist = paginator.page | minus: index %}
|
42
|
+
{% if dist < 0 %}
|
43
|
+
{% comment %} Distance must be a positive value {% endcomment %}
|
44
|
+
{% assign dist = 0 | minus: dist %}
|
45
|
+
{% endif %}
|
46
|
+
<li><a href="{{ site.paginate_path | replace: ':num', index | absolute_url }}">{{ index }}</a></li>
|
47
|
+
{% endif %}
|
48
|
+
{% endfor %}
|
49
|
+
|
50
|
+
{% comment %} Ellipsis for truncated links {% endcomment %}
|
51
|
+
{% if pages_to_end > 3 %}
|
52
|
+
<li><a href="#" class="disabled">…</a></li>
|
53
|
+
{% endif %}
|
54
|
+
|
55
|
+
{% if paginator.page == paginator.total_pages %}
|
56
|
+
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
57
|
+
{% else %}
|
58
|
+
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | absolute_url }}">{{ paginator.total_pages }}</a></li>
|
59
|
+
{% endif %}
|
60
|
+
|
61
|
+
{% comment %} Link next page {% endcomment %}
|
62
|
+
{% if paginator.next_page %}
|
63
|
+
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | absolute_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
64
|
+
{% else %}
|
65
|
+
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
66
|
+
{% endif %}
|
67
|
+
</ul>
|
68
|
+
</nav>
|
69
|
+
{% endif %}
|
@@ -1,14 +1,14 @@
|
|
1
|
-
{% if page.previous or page.next %}
|
2
|
-
<nav class="pagination">
|
3
|
-
{% if page.previous %}
|
4
|
-
<a href="{{ page.previous.url | absolute_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
5
|
-
{% else %}
|
6
|
-
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
7
|
-
{% endif %}
|
8
|
-
{% if page.next %}
|
9
|
-
<a href="{{ page.next.url | absolute_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
10
|
-
{% else %}
|
11
|
-
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
12
|
-
{% endif %}
|
13
|
-
</nav>
|
1
|
+
{% if page.previous or page.next %}
|
2
|
+
<nav class="pagination">
|
3
|
+
{% if page.previous %}
|
4
|
+
<a href="{{ page.previous.url | absolute_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
5
|
+
{% else %}
|
6
|
+
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
7
|
+
{% endif %}
|
8
|
+
{% if page.next %}
|
9
|
+
<a href="{{ page.next.url | absolute_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
10
|
+
{% else %}
|
11
|
+
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
12
|
+
{% endif %}
|
13
|
+
</nav>
|
14
14
|
{% endif %}
|
data/_includes/read-time.html
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
{% assign words_per_minute = site.words_per_minute | default: 200 %}
|
2
|
-
|
3
|
-
{% if post.read_time %}
|
4
|
-
{% assign words = post.content | strip_html | number_of_words %}
|
5
|
-
{% elsif page.read_time %}
|
6
|
-
{% assign words = page.content | strip_html | number_of_words %}
|
7
|
-
{% endif %}
|
8
|
-
|
9
|
-
{% if words < words_per_minute %}
|
10
|
-
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
11
|
-
{% elsif words == words_per_minute %}
|
12
|
-
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
13
|
-
{% else %}
|
14
|
-
{{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
1
|
+
{% assign words_per_minute = site.words_per_minute | default: 200 %}
|
2
|
+
|
3
|
+
{% if post.read_time %}
|
4
|
+
{% assign words = post.content | strip_html | number_of_words %}
|
5
|
+
{% elsif page.read_time %}
|
6
|
+
{% assign words = page.content | strip_html | number_of_words %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% if words < words_per_minute %}
|
10
|
+
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
11
|
+
{% elsif words == words_per_minute %}
|
12
|
+
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
13
|
+
{% else %}
|
14
|
+
{{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
15
15
|
{% endif %}
|
data/_includes/scripts.html
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
{% if site.footer_scripts %}
|
2
|
-
{% for script in site.footer_scripts %}
|
3
|
-
{% if script contains "://" %}
|
4
|
-
{% capture script_path %}{{ script }}{% endcapture %}
|
5
|
-
{% else %}
|
6
|
-
{% capture script_path %}{{ script | absolute_url }}{% endcapture %}
|
7
|
-
{% endif %}
|
8
|
-
<script src="{{ script_path }}"></script>
|
9
|
-
{% endfor %}
|
10
|
-
{% else %}
|
11
|
-
<script src="{{ '/assets/js/main.min.js' | absolute_url }}"></script>
|
12
|
-
{% endif %}
|
13
|
-
|
14
|
-
{% include analytics.html %}
|
15
|
-
{% include /comments-providers/scripts.html %}
|
1
|
+
{% if site.footer_scripts %}
|
2
|
+
{% for script in site.footer_scripts %}
|
3
|
+
{% if script contains "://" %}
|
4
|
+
{% capture script_path %}{{ script }}{% endcapture %}
|
5
|
+
{% else %}
|
6
|
+
{% capture script_path %}{{ script | absolute_url }}{% endcapture %}
|
7
|
+
{% endif %}
|
8
|
+
<script src="{{ script_path }}"></script>
|
9
|
+
{% endfor %}
|
10
|
+
{% else %}
|
11
|
+
<script src="{{ '/assets/js/main.min.js' | absolute_url }}"></script>
|
12
|
+
{% endif %}
|
13
|
+
|
14
|
+
{% include analytics.html %}
|
15
|
+
{% include /comments-providers/scripts.html %}
|
data/_includes/seo.html
CHANGED
@@ -1,147 +1,162 @@
|
|
1
|
-
<!-- begin SEO -->
|
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
|
-
{% if page.title %}
|
8
|
-
{% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %}
|
9
|
-
{% endif %}
|
10
|
-
|
11
|
-
{% if seo_title %}
|
12
|
-
{% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %}
|
13
|
-
{% endif %}
|
14
|
-
|
15
|
-
{% if site.url %}
|
16
|
-
{% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %}
|
17
|
-
{% endif %}
|
18
|
-
|
19
|
-
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
20
|
-
|
21
|
-
{% assign seo_description = page.description | default: page.excerpt | default: site.description %}
|
22
|
-
{% if seo_description %}
|
23
|
-
{% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %}
|
24
|
-
{% endif %}
|
25
|
-
|
26
|
-
<meta name="description" content="{{ seo_description }}">
|
27
|
-
|
28
|
-
{% assign seo_author = page.author | default: page.author[0] | default: site.author.name %}
|
29
|
-
{% if seo_author %}
|
30
|
-
{% if seo_author.twitter %}
|
31
|
-
{% assign seo_author_twitter = seo_author.twitter %}
|
32
|
-
{% else %}
|
33
|
-
{% if site.data.authors and site.data.authors[seo_author] %}
|
34
|
-
{% assign seo_author_twitter = site.data.authors[seo_author].twitter %}
|
35
|
-
{% else %}
|
36
|
-
{% assign seo_author_twitter = seo_author %}
|
37
|
-
{% endif %}
|
38
|
-
{% endif %}
|
39
|
-
{% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %}
|
40
|
-
{% endif %}
|
41
|
-
|
42
|
-
<meta name="author" content="{{ seo_author }}">
|
43
|
-
|
44
|
-
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
45
|
-
<meta property="og:site_name" content="{{ site.title }}">
|
46
|
-
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
47
|
-
|
48
|
-
{% if seo_url %}
|
49
|
-
<link rel="canonical" href="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
50
|
-
<meta property="og:url" content="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
51
|
-
{% endif %}
|
52
|
-
|
53
|
-
{% if page.excerpt %}
|
54
|
-
<meta property="og:description" content="{{ seo_description }}">
|
55
|
-
{% endif %}
|
56
|
-
|
57
|
-
{%
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
{
|
78
|
-
{
|
79
|
-
|
80
|
-
|
81
|
-
{% if
|
82
|
-
<meta
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
{% endif %}
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
{
|
93
|
-
|
94
|
-
{%
|
95
|
-
|
96
|
-
{%
|
97
|
-
|
98
|
-
{
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
{% endif %}
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
{
|
108
|
-
{%
|
109
|
-
<
|
110
|
-
{% endif %}
|
111
|
-
|
112
|
-
{% if
|
113
|
-
<
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
{
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
"@
|
128
|
-
"
|
129
|
-
"url"
|
130
|
-
"
|
131
|
-
}
|
132
|
-
</script>
|
133
|
-
{% endif %}
|
134
|
-
|
135
|
-
{% if site.
|
136
|
-
<
|
137
|
-
{
|
138
|
-
|
139
|
-
|
140
|
-
{
|
141
|
-
{
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
1
|
+
<!-- begin SEO -->
|
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
|
+
{% if page.title %}
|
8
|
+
{% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %}
|
9
|
+
{% endif %}
|
10
|
+
|
11
|
+
{% if seo_title %}
|
12
|
+
{% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %}
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
{% if site.url %}
|
16
|
+
{% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %}
|
17
|
+
{% endif %}
|
18
|
+
|
19
|
+
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
20
|
+
|
21
|
+
{% assign seo_description = page.description | default: page.excerpt | default: site.description %}
|
22
|
+
{% if seo_description %}
|
23
|
+
{% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %}
|
24
|
+
{% endif %}
|
25
|
+
|
26
|
+
<meta name="description" content="{{ seo_description }}">
|
27
|
+
|
28
|
+
{% assign seo_author = page.author | default: page.author[0] | default: site.author.name %}
|
29
|
+
{% if seo_author %}
|
30
|
+
{% if seo_author.twitter %}
|
31
|
+
{% assign seo_author_twitter = seo_author.twitter %}
|
32
|
+
{% else %}
|
33
|
+
{% if site.data.authors and site.data.authors[seo_author] %}
|
34
|
+
{% assign seo_author_twitter = site.data.authors[seo_author].twitter %}
|
35
|
+
{% else %}
|
36
|
+
{% assign seo_author_twitter = seo_author %}
|
37
|
+
{% endif %}
|
38
|
+
{% endif %}
|
39
|
+
{% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %}
|
40
|
+
{% endif %}
|
41
|
+
|
42
|
+
<meta name="author" content="{{ seo_author }}">
|
43
|
+
|
44
|
+
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
45
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
46
|
+
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
47
|
+
|
48
|
+
{% if seo_url %}
|
49
|
+
<link rel="canonical" href="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
50
|
+
<meta property="og:url" content="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
51
|
+
{% endif %}
|
52
|
+
|
53
|
+
{% if page.excerpt %}
|
54
|
+
<meta property="og:description" content="{{ seo_description }}">
|
55
|
+
{% endif %}
|
56
|
+
|
57
|
+
{% assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image %}
|
58
|
+
{% unless page_large_image contains '://' %}
|
59
|
+
{% assign page_large_image = page_large_image | absolute_url %}
|
60
|
+
{% endunless %}
|
61
|
+
{% assign page_large_image = page_large_image | escape %}
|
62
|
+
|
63
|
+
{% assign page_teaser_image = page.header.teaser | default: site.og_image %}
|
64
|
+
{% unless page_teaser_image contains '://' %}
|
65
|
+
{% assign page_teaser_image = page_teaser_image | absolute_url %}
|
66
|
+
{% endunless %}
|
67
|
+
{% assign page_teaser_image = page_teaser_image | escape %}
|
68
|
+
|
69
|
+
{% assign site_og_image = site.og_image %}
|
70
|
+
{% unless site_og_image contains '://' %}
|
71
|
+
{% assign site_og_image = site_og_image | absolute_url %}
|
72
|
+
{% endunless %}
|
73
|
+
{% assign site_og_image = site_og_image | escape %}
|
74
|
+
|
75
|
+
{% if site.twitter.username %}
|
76
|
+
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
77
|
+
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
78
|
+
<meta name="twitter:description" content="{{ seo_description }}">
|
79
|
+
<meta name="twitter:url" content="{{ canonical_url }}">
|
80
|
+
|
81
|
+
{% if page_large_image %}
|
82
|
+
<meta name="twitter:card" content="summary_large_image">
|
83
|
+
<meta name="twitter:image" content="{{ page_large_image }}">
|
84
|
+
{% else %}
|
85
|
+
<meta name="twitter:card" content="summary">
|
86
|
+
{% if page_teaser_image %}
|
87
|
+
<meta name="twitter:image" content="{{ page_teaser_image }}">
|
88
|
+
{% endif %}
|
89
|
+
{% endif %}
|
90
|
+
|
91
|
+
{% if seo_author_twitter %}
|
92
|
+
<meta name="twitter:creator" content="@{{ seo_author_twitter }}">
|
93
|
+
{% endif %}
|
94
|
+
{% endif %}
|
95
|
+
|
96
|
+
{% if site.facebook %}
|
97
|
+
{% if site.facebook.publisher %}
|
98
|
+
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
|
99
|
+
{% endif %}
|
100
|
+
|
101
|
+
{% if site.facebook.app_id %}
|
102
|
+
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
|
103
|
+
{% endif %}
|
104
|
+
{% endif %}
|
105
|
+
|
106
|
+
{% if page_large_image %}
|
107
|
+
<meta property="og:image" content="{{ page_large_image }}">
|
108
|
+
{% elsif page_teaser_image %}
|
109
|
+
<meta property="og:image" content="{{ page_teaser_image }}">
|
110
|
+
{% endif %}
|
111
|
+
|
112
|
+
{% if page.date %}
|
113
|
+
<meta property="og:type" content="article">
|
114
|
+
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
115
|
+
{% endif %}
|
116
|
+
|
117
|
+
{% if paginator.previous_page %}
|
118
|
+
<link rel="prev" href="{{ paginator.previous_page_path | prepend: seo_url }}">
|
119
|
+
{% endif %}
|
120
|
+
{% if paginator.next_page %}
|
121
|
+
<link rel="next" href="{{ paginator.next_page_path | prepend: seo_url }}">
|
122
|
+
{% endif %}
|
123
|
+
|
124
|
+
{% if site.og_image %}
|
125
|
+
<script type="application/ld+json">
|
126
|
+
{
|
127
|
+
"@context": "http://schema.org",
|
128
|
+
"@type": "Organization",
|
129
|
+
"url": {{ seo_url | jsonify }},
|
130
|
+
"logo": {{ site_og_image | jsonify }}
|
131
|
+
}
|
132
|
+
</script>
|
133
|
+
{% endif %}
|
134
|
+
|
135
|
+
{% if site.social %}
|
136
|
+
<script type="application/ld+json">
|
137
|
+
{
|
138
|
+
"@context" : "http://schema.org",
|
139
|
+
"@type" : "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
|
140
|
+
"name" : "{{ site.social.name | default: site.name }}",
|
141
|
+
"url" : {{ seo_url | jsonify }},
|
142
|
+
"sameAs" : {{ site.social.links | jsonify }}
|
143
|
+
}
|
144
|
+
</script>
|
145
|
+
{% endif %}
|
146
|
+
|
147
|
+
{% if site.google_site_verification %}
|
148
|
+
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
149
|
+
{% endif %}
|
150
|
+
{% if site.bing_site_verification %}
|
151
|
+
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
|
152
|
+
{% endif %}
|
153
|
+
{% if site.alexa_site_verification %}
|
154
|
+
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
|
155
|
+
{% endif %}
|
156
|
+
{% if site.yandex_site_verification %}
|
157
|
+
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
|
158
|
+
{% endif %}
|
159
|
+
{% if site.naver-site-verification %}
|
160
|
+
<meta name="naver-site-verification" content="{{ site.naver-site-verification }}">
|
161
|
+
{% endif %}
|
162
|
+
<!-- end SEO -->
|