minimal-mistakes-jekyll 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +571 -0
- data/LICENSE +21 -0
- data/README.md +122 -0
- data/_includes/analytics-providers/custom.html +3 -0
- data/_includes/analytics-providers/google-universal.html +9 -0
- data/_includes/analytics-providers/google.html +11 -0
- data/_includes/analytics.html +12 -0
- data/_includes/archive-single.html +40 -0
- data/_includes/author-profile.html +102 -0
- data/_includes/base_path +5 -0
- data/_includes/breadcrumbs.html +41 -0
- data/_includes/browser-upgrade.html +3 -0
- data/_includes/category-list.html +28 -0
- data/_includes/comment.html +22 -0
- data/_includes/comments-providers/custom.html +3 -0
- data/_includes/comments-providers/discourse.html +14 -0
- data/_includes/comments-providers/disqus.html +22 -0
- data/_includes/comments-providers/facebook.html +8 -0
- data/_includes/comments-providers/google-plus.html +2 -0
- data/_includes/comments-providers/scripts.html +18 -0
- data/_includes/comments-providers/staticman.html +42 -0
- data/_includes/comments.html +82 -0
- data/_includes/feature_row +52 -0
- data/_includes/footer.html +24 -0
- data/_includes/footer/custom.html +3 -0
- data/_includes/gallery +49 -0
- data/_includes/group-by-array +47 -0
- data/_includes/head.html +21 -0
- data/_includes/head/custom.html +5 -0
- data/_includes/masthead.html +23 -0
- data/_includes/nav_list +46 -0
- data/_includes/page__hero.html +55 -0
- data/_includes/page__taxonomy.html +9 -0
- data/_includes/paginator.html +70 -0
- data/_includes/post_pagination.html +16 -0
- data/_includes/read-time.html +17 -0
- data/_includes/scripts.html +4 -0
- data/_includes/seo.html +145 -0
- data/_includes/sidebar.html +25 -0
- data/_includes/social-share.html +15 -0
- data/_includes/tag-list.html +28 -0
- data/_includes/toc +7 -0
- data/_layouts/archive-taxonomy.html +16 -0
- data/_layouts/archive.html +24 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +30 -0
- data/_layouts/single.html +76 -0
- data/_layouts/splash.html +22 -0
- data/_sass/_animations.scss +21 -0
- data/_sass/_archive.scss +238 -0
- data/_sass/_base.scss +315 -0
- data/_sass/_buttons.scss +153 -0
- data/_sass/_footer.scss +80 -0
- data/_sass/_forms.scss +391 -0
- data/_sass/_masthead.scss +53 -0
- data/_sass/_mixins.scss +53 -0
- data/_sass/_navigation.scss +432 -0
- data/_sass/_notices.scss +99 -0
- data/_sass/_page.scss +401 -0
- data/_sass/_print.scss +18 -0
- data/_sass/_reset.scss +187 -0
- data/_sass/_sidebar.scss +232 -0
- data/_sass/_syntax.scss +146 -0
- data/_sass/_tables.scss +38 -0
- data/_sass/_utilities.scss +470 -0
- data/_sass/_variables.scss +147 -0
- data/_sass/vendor/breakpoint/_breakpoint.scss +114 -0
- data/_sass/vendor/breakpoint/_context.scss +95 -0
- data/_sass/vendor/breakpoint/_helpers.scss +151 -0
- data/_sass/vendor/breakpoint/_legacy-settings.scss +50 -0
- data/_sass/vendor/breakpoint/_no-query.scss +15 -0
- data/_sass/vendor/breakpoint/_parsers.scss +215 -0
- data/_sass/vendor/breakpoint/_respond-to.scss +82 -0
- data/_sass/vendor/breakpoint/_settings.scss +71 -0
- data/_sass/vendor/breakpoint/parsers/_double.scss +33 -0
- data/_sass/vendor/breakpoint/parsers/_query.scss +82 -0
- data/_sass/vendor/breakpoint/parsers/_resolution.scss +31 -0
- data/_sass/vendor/breakpoint/parsers/_single.scss +26 -0
- data/_sass/vendor/breakpoint/parsers/_triple.scss +36 -0
- data/_sass/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
- data/_sass/vendor/breakpoint/parsers/double/_default.scss +22 -0
- data/_sass/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
- data/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
- data/_sass/vendor/breakpoint/parsers/single/_default.scss +13 -0
- data/_sass/vendor/breakpoint/parsers/triple/_default.scss +18 -0
- data/_sass/vendor/font-awesome/_animated.scss +34 -0
- data/_sass/vendor/font-awesome/_bordered-pulled.scss +25 -0
- data/_sass/vendor/font-awesome/_core.scss +12 -0
- data/_sass/vendor/font-awesome/_fixed-width.scss +6 -0
- data/_sass/vendor/font-awesome/_font-awesome.scss +18 -0
- data/_sass/vendor/font-awesome/_icons.scss +733 -0
- data/_sass/vendor/font-awesome/_larger.scss +13 -0
- data/_sass/vendor/font-awesome/_list.scss +19 -0
- data/_sass/vendor/font-awesome/_mixins.scss +60 -0
- data/_sass/vendor/font-awesome/_path.scss +15 -0
- data/_sass/vendor/font-awesome/_rotated-flipped.scss +20 -0
- data/_sass/vendor/font-awesome/_screen-reader.scss +5 -0
- data/_sass/vendor/font-awesome/_stacked.scss +20 -0
- data/_sass/vendor/font-awesome/_variables.scss +744 -0
- data/_sass/vendor/magnific-popup/_magnific-popup.scss +649 -0
- data/_sass/vendor/magnific-popup/_settings.scss +46 -0
- data/_sass/vendor/susy/_su.scss +4 -0
- data/_sass/vendor/susy/_susy.scss +4 -0
- data/_sass/vendor/susy/_susyone.scss +4 -0
- data/_sass/vendor/susy/susy/_su.scss +7 -0
- data/_sass/vendor/susy/susy/language/_susy.scss +24 -0
- data/_sass/vendor/susy/susy/language/_susyone.scss +13 -0
- data/_sass/vendor/susy/susy/language/susy/_background.scss +385 -0
- data/_sass/vendor/susy/susy/language/susy/_bleed.scss +200 -0
- data/_sass/vendor/susy/susy/language/susy/_box-sizing.scss +47 -0
- data/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss +185 -0
- data/_sass/vendor/susy/susy/language/susy/_container.scss +81 -0
- data/_sass/vendor/susy/susy/language/susy/_context.scss +36 -0
- data/_sass/vendor/susy/susy/language/susy/_gallery.scss +94 -0
- data/_sass/vendor/susy/susy/language/susy/_grids.scss +64 -0
- data/_sass/vendor/susy/susy/language/susy/_gutters.scss +154 -0
- data/_sass/vendor/susy/susy/language/susy/_isolate.scss +77 -0
- data/_sass/vendor/susy/susy/language/susy/_margins.scss +94 -0
- data/_sass/vendor/susy/susy/language/susy/_padding.scss +74 -0
- data/_sass/vendor/susy/susy/language/susy/_rows.scss +138 -0
- data/_sass/vendor/susy/susy/language/susy/_settings.scss +216 -0
- data/_sass/vendor/susy/susy/language/susy/_span.scss +163 -0
- data/_sass/vendor/susy/susy/language/susy/_validation.scss +16 -0
- data/_sass/vendor/susy/susy/language/susyone/_background.scss +18 -0
- data/_sass/vendor/susy/susy/language/susyone/_functions.scss +377 -0
- data/_sass/vendor/susy/susy/language/susyone/_grid.scss +312 -0
- data/_sass/vendor/susy/susy/language/susyone/_isolation.scss +51 -0
- data/_sass/vendor/susy/susy/language/susyone/_margin.scss +93 -0
- data/_sass/vendor/susy/susy/language/susyone/_media.scss +105 -0
- data/_sass/vendor/susy/susy/language/susyone/_padding.scss +92 -0
- data/_sass/vendor/susy/susy/language/susyone/_settings.scss +60 -0
- data/_sass/vendor/susy/susy/output/_float.scss +9 -0
- data/_sass/vendor/susy/susy/output/_shared.scss +15 -0
- data/_sass/vendor/susy/susy/output/_support.scss +9 -0
- data/_sass/vendor/susy/susy/output/float/_container.scss +16 -0
- data/_sass/vendor/susy/susy/output/float/_end.scss +40 -0
- data/_sass/vendor/susy/susy/output/float/_isolate.scss +22 -0
- data/_sass/vendor/susy/susy/output/float/_span.scss +35 -0
- data/_sass/vendor/susy/susy/output/shared/_background.scss +26 -0
- data/_sass/vendor/susy/susy/output/shared/_container.scss +21 -0
- data/_sass/vendor/susy/susy/output/shared/_direction.scss +42 -0
- data/_sass/vendor/susy/susy/output/shared/_inspect.scss +25 -0
- data/_sass/vendor/susy/susy/output/shared/_margins.scss +23 -0
- data/_sass/vendor/susy/susy/output/shared/_output.scss +14 -0
- data/_sass/vendor/susy/susy/output/shared/_padding.scss +23 -0
- data/_sass/vendor/susy/susy/output/support/_background.scss +58 -0
- data/_sass/vendor/susy/susy/output/support/_box-sizing.scss +19 -0
- data/_sass/vendor/susy/susy/output/support/_clearfix.scss +18 -0
- data/_sass/vendor/susy/susy/output/support/_prefix.scss +19 -0
- data/_sass/vendor/susy/susy/output/support/_rem.scss +22 -0
- data/_sass/vendor/susy/susy/output/support/_support.scss +85 -0
- data/_sass/vendor/susy/susy/su/_grid.scss +103 -0
- data/_sass/vendor/susy/susy/su/_settings.scss +73 -0
- data/_sass/vendor/susy/susy/su/_utilities.scss +111 -0
- data/_sass/vendor/susy/susy/su/_validation.scss +57 -0
- data/assets/css/main.scss +39 -0
- data/assets/fonts/FontAwesome.otf +0 -0
- data/assets/fonts/fontawesome-webfont.eot +0 -0
- data/assets/fonts/fontawesome-webfont.svg +685 -0
- data/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/assets/fonts/fontawesome-webfont.woff +0 -0
- data/assets/fonts/fontawesome-webfont.woff2 +0 -0
- data/assets/images/bio-photo.jpg +0 -0
- data/assets/images/mm-browser-mockups.png +0 -0
- data/assets/images/mm-layout-examples.png +0 -0
- data/assets/js/_main.js +100 -0
- data/assets/js/main.min.js +5 -0
- data/assets/js/plugins/jquery.fitvids.js +82 -0
- data/assets/js/plugins/jquery.greedy-navigation.js +72 -0
- data/assets/js/plugins/jquery.magnific-popup.js +2049 -0
- data/assets/js/plugins/jquery.smooth-scroll.min.js +8 -0
- data/assets/js/plugins/stickyfill.min.js +8 -0
- data/assets/js/vendor/jquery/jquery-1.12.4.min.js +5 -0
- metadata +259 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
{% if page.header.image contains "://" %}
|
4
|
+
{% capture img_path %}{{ page.header.image }}{% endcapture %}
|
5
|
+
{% else %}
|
6
|
+
{% capture img_path %}{{ page.header.image | prepend: "/" | prepend: base_path }}{% endcapture %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% if page.header.cta_url contains "://" %}
|
10
|
+
{% capture cta_path %}{{ page.header.cta_url }}{% endcapture %}
|
11
|
+
{% else %}
|
12
|
+
{% capture cta_path %}{{ page.header.cta_url | prepend: base_path }}{% endcapture %}
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
{% if page.header.overlay_image contains "://" %}
|
16
|
+
{% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %}
|
17
|
+
{% elsif page.header.overlay_image %}
|
18
|
+
{% capture overlay_img_path %}{{ page.header.overlay_image | prepend: "/" | prepend: base_path }}{% endcapture %}
|
19
|
+
{% endif %}
|
20
|
+
|
21
|
+
{% if page.header.overlay_filter contains "rgba" %}
|
22
|
+
{% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
|
23
|
+
{% elsif page.header.overlay_filter %}
|
24
|
+
{% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %}
|
25
|
+
{% endif %}
|
26
|
+
|
27
|
+
<div class="page__hero{% if page.header.overlay_color or page.header.overlay_image %}--overlay{% endif %}"
|
28
|
+
style="{% if page.header.overlay_color %}background-color: {{ page.header.overlay_color | default: 'transparent' }};{% endif %} {% if overlay_img_path %}background-image: {% if overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}), {% endif %}url('{{ overlay_img_path }}');{% endif %}"
|
29
|
+
>
|
30
|
+
{% if page.header.overlay_color or page.header.overlay_image %}
|
31
|
+
<div class="wrapper">
|
32
|
+
<h1 class="page__title" itemprop="headline">
|
33
|
+
{% if paginator %}
|
34
|
+
{{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}
|
35
|
+
{% else %}
|
36
|
+
{{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }}
|
37
|
+
{% endif %}
|
38
|
+
</h1>
|
39
|
+
{% if page.excerpt %}
|
40
|
+
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
|
41
|
+
{% endif %}
|
42
|
+
{% if site.read_time and page.read_time %}
|
43
|
+
<p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> {% include read-time.html %}</p>
|
44
|
+
{% endif %}
|
45
|
+
{% if page.header.cta_url %}
|
46
|
+
<p><a href="{{ cta_path }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
|
47
|
+
{% endif %}
|
48
|
+
</div>
|
49
|
+
{% else %}
|
50
|
+
<img src="{{ img_path }}" alt="{{ page.title }}" class="page__hero-image">
|
51
|
+
{% endif %}
|
52
|
+
{% if page.header.caption %}
|
53
|
+
<span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
|
54
|
+
{% endif %}
|
55
|
+
</div>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
{% if paginator.total_pages > 1 %}
|
4
|
+
<nav class="pagination">
|
5
|
+
<ul>
|
6
|
+
{% comment %} Link for previous page {% endcomment %}
|
7
|
+
{% if paginator.previous_page %}
|
8
|
+
{% if paginator.previous_page == 1 %}
|
9
|
+
<li><a href="{{ base_path }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
10
|
+
{% else %}
|
11
|
+
<li><a href="{{ base_path }}/page{{ paginator.previous_page }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
|
12
|
+
{% endif %}
|
13
|
+
{% else %}
|
14
|
+
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
|
15
|
+
{% endif %}
|
16
|
+
|
17
|
+
{% comment %} First page {% endcomment %}
|
18
|
+
{% if paginator.page == 1 %}
|
19
|
+
<li><a href="#" class="disabled current">1</a></li>
|
20
|
+
{% else %}
|
21
|
+
<li><a href="{{ base_path }}/">1</a></li>
|
22
|
+
{% endif %}
|
23
|
+
|
24
|
+
{% assign page_start = 2 %}
|
25
|
+
{% if paginator.page > 4 %}
|
26
|
+
{% assign page_start = paginator.page | minus: 2 %}
|
27
|
+
{% comment %} Ellipsis for truncated links {% endcomment %}
|
28
|
+
<li><a href="#" class="disabled">…</a></li>
|
29
|
+
{% endif %}
|
30
|
+
|
31
|
+
{% assign page_end = paginator.total_pages | minus: 1 %}
|
32
|
+
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
|
33
|
+
{% if pages_to_end > 4 %}
|
34
|
+
{% assign page_end = paginator.page | plus: 2 %}
|
35
|
+
{% endif %}
|
36
|
+
|
37
|
+
{% for index in (page_start..page_end) %}
|
38
|
+
{% if index == paginator.page %}
|
39
|
+
<li><a href="{{ base_path }}/page{{ index }}/" class="disabled current">{{ index }}</a></li>
|
40
|
+
{% else %}
|
41
|
+
{% comment %} Distance from current page and this link {% endcomment %}
|
42
|
+
{% assign dist = paginator.page | minus: index %}
|
43
|
+
{% if dist < 0 %}
|
44
|
+
{% comment %} Distance must be a positive value {% endcomment %}
|
45
|
+
{% assign dist = 0 | minus: dist %}
|
46
|
+
{% endif %}
|
47
|
+
<li><a href="{{ base_path }}/page{{ index }}/">{{ index }}</a></li>
|
48
|
+
{% endif %}
|
49
|
+
{% endfor %}
|
50
|
+
|
51
|
+
{% comment %} Ellipsis for truncated links {% endcomment %}
|
52
|
+
{% if pages_to_end > 3 %}
|
53
|
+
<li><a href="#" class="disabled">…</a></li>
|
54
|
+
{% endif %}
|
55
|
+
|
56
|
+
{% if paginator.page == paginator.total_pages %}
|
57
|
+
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
|
58
|
+
{% else %}
|
59
|
+
<li><a href="{{ base_path }}/page{{ paginator.total_pages }}/">{{ paginator.total_pages }}</a></li>
|
60
|
+
{% endif %}
|
61
|
+
|
62
|
+
{% comment %} Link next page {% endcomment %}
|
63
|
+
{% if paginator.next_page %}
|
64
|
+
<li><a href="{{ base_path }}/page{{ paginator.next_page }}/">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
|
65
|
+
{% else %}
|
66
|
+
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
|
67
|
+
{% endif %}
|
68
|
+
</ul>
|
69
|
+
</nav>
|
70
|
+
{% endif %}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
{% if page.previous or page.next %}
|
4
|
+
<nav class="pagination">
|
5
|
+
{% if page.previous %}
|
6
|
+
<a href="{{ base_path }}{{ page.previous.url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
7
|
+
{% else %}
|
8
|
+
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
|
9
|
+
{% endif %}
|
10
|
+
{% if page.next %}
|
11
|
+
<a href="{{ base_path }}{{ page.next.url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
12
|
+
{% else %}
|
13
|
+
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
|
14
|
+
{% endif %}
|
15
|
+
</nav>
|
16
|
+
{% endif %}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{% if post.read_time %}
|
2
|
+
{% assign words = post.content | strip_html | number_of_words %}
|
3
|
+
{% elsif page.read_time %}
|
4
|
+
{% assign words = page.content | strip_html | number_of_words %}
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
{% if site.words_per_minute %}
|
8
|
+
{% if words < 180 %}
|
9
|
+
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
10
|
+
{% elsif words < 360 %}
|
11
|
+
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
12
|
+
{% else %}
|
13
|
+
{{ words | divided_by:site.words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
|
14
|
+
{% endif %}
|
15
|
+
{% else %}
|
16
|
+
{{ site.data.ui-text[site.locale].undefined_wpm | "Undefined parameter words_per_minute at _config.yml" }}
|
17
|
+
{% endif %}
|
data/_includes/seo.html
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
<!-- begin SEO -->
|
4
|
+
{% if site.url %}
|
5
|
+
{% assign seo_url = site.url | append: site.baseurl %}
|
6
|
+
{% endif %}
|
7
|
+
{% assign seo_url = seo_url | default: site.github.url %}
|
8
|
+
|
9
|
+
{% if page.title %}
|
10
|
+
{% assign seo_title = page.title | append: " " | append: site.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
|
+
{% if site.url %}
|
18
|
+
{% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %}
|
19
|
+
{% endif %}
|
20
|
+
|
21
|
+
<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>
|
22
|
+
|
23
|
+
{% assign seo_description = page.description | default: page.excerpt | default: site.description %}
|
24
|
+
{% if seo_description %}
|
25
|
+
{% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %}
|
26
|
+
{% endif %}
|
27
|
+
|
28
|
+
{% assign seo_author = page.author | default: page.author[0] | default: site.author[0] %}
|
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 property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en" }}">
|
43
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
44
|
+
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
45
|
+
|
46
|
+
{% if seo_url %}
|
47
|
+
<link rel="canonical" href="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
48
|
+
<meta property="og:url" content="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
|
49
|
+
{% endif %}
|
50
|
+
|
51
|
+
{% if page.excerpt %}
|
52
|
+
<meta property="og:description" content="{{ seo_description }}">
|
53
|
+
{% endif %}
|
54
|
+
|
55
|
+
{% if site.twitter.username %}
|
56
|
+
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
57
|
+
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
58
|
+
<meta name="twitter:description" content="{{ seo_description }}">
|
59
|
+
<meta name="twitter:url" content="{{ canonical_url }}">
|
60
|
+
|
61
|
+
{% if page.header.image %}
|
62
|
+
<meta name="twitter:card" content="summary_large_image">
|
63
|
+
<meta name="twitter:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | prepend: "/" | prepend: base_path }}{% endif %}">
|
64
|
+
{% else %}
|
65
|
+
<meta name="twitter:card" content="summary">
|
66
|
+
{% if page.header.teaser %}
|
67
|
+
<meta name="twitter:image" content="{% if page.header.teaser contains "://" %}{{ page.header.teaser }}{% else %}{{ page.header.teaser | prepend: "/" | prepend: base_path }}{% endif %}">
|
68
|
+
{% elsif site.og_image %}
|
69
|
+
<meta name="twitter:image" content="{{ site.og_image | prepend: "/" | prepend: base_path }}">
|
70
|
+
{% endif %}
|
71
|
+
{% endif %}
|
72
|
+
|
73
|
+
{% if seo_author_twitter %}
|
74
|
+
<meta name="twitter:creator" content="@{{ seo_author_twitter }}">
|
75
|
+
{% endif %}
|
76
|
+
{% endif %}
|
77
|
+
|
78
|
+
{% if site.facebook %}
|
79
|
+
{% if site.facebook.publisher %}
|
80
|
+
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
|
81
|
+
{% endif %}
|
82
|
+
|
83
|
+
{% if site.facebook.app_id %}
|
84
|
+
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
|
85
|
+
{% endif %}
|
86
|
+
{% endif %}
|
87
|
+
|
88
|
+
{% if page.header.image %}
|
89
|
+
<meta property="og:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | prepend: "/" | prepend: base_path }}{% endif %}">
|
90
|
+
{% elsif page.header.overlay_image %}
|
91
|
+
<meta property="og:image" content="{% if page.header.overlay_image contains "://" %}{{ page.header.overlay_image }}{% else %}{{ page.header.overlay_image | prepend: "/" | prepend: base_path }}{% endif %}">
|
92
|
+
{% elsif page.header.teaser %}
|
93
|
+
<meta property="og:image" content="{% if page.header.teaser contains "://" %}{{ page.header.teaser }}{% else %}{{ page.header.teaser | prepend: "/" | prepend: base_path }}{% endif %}">
|
94
|
+
{% elsif site.og_image %}
|
95
|
+
<meta property="og:image" content="{% if site.og_image contains "://" %}{{ site.og_image }}{% else %}{{ site.og_image | prepend: "/" | prepend: base_path }}{% endif %}">
|
96
|
+
{% endif %}
|
97
|
+
|
98
|
+
{% if page.date %}
|
99
|
+
<meta property="og:type" content="article">
|
100
|
+
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
101
|
+
{% endif %}
|
102
|
+
|
103
|
+
{% if paginator.previous_page %}
|
104
|
+
<link rel="prev" href="{{ paginator.previous_page_path | prepend: seo_url }}">
|
105
|
+
{% endif %}
|
106
|
+
{% if paginator.next_page %}
|
107
|
+
<link rel="next" href="{{ paginator.next_page_path | prepend: seo_url }}">
|
108
|
+
{% endif %}
|
109
|
+
|
110
|
+
{% if site.og_image %}
|
111
|
+
<script type="application/ld+json">
|
112
|
+
{
|
113
|
+
"@context": "http://schema.org",
|
114
|
+
"@type": "Organization",
|
115
|
+
"url": {{ seo_url | jsonify }},
|
116
|
+
"logo": {{ site.og_image | prepend: "/" | prepend: base_path | jsonify }}
|
117
|
+
}
|
118
|
+
</script>
|
119
|
+
{% endif %}
|
120
|
+
|
121
|
+
{% if site.social %}
|
122
|
+
<script type="application/ld+json">
|
123
|
+
{
|
124
|
+
"@context" : "http://schema.org",
|
125
|
+
"@type" : "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
|
126
|
+
"name" : "{{ site.social.name | default: site.name }}",
|
127
|
+
"url" : {{ seo_url | jsonify }},
|
128
|
+
"sameAs" : {{ site.social.links | jsonify }}
|
129
|
+
}
|
130
|
+
</script>
|
131
|
+
{% endif %}
|
132
|
+
|
133
|
+
{% if site.google_site_verification %}
|
134
|
+
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
135
|
+
{% endif %}
|
136
|
+
{% if site.bing_site_verification %}
|
137
|
+
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
|
138
|
+
{% endif %}
|
139
|
+
{% if site.alexa_site_verification %}
|
140
|
+
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
|
141
|
+
{% endif %}
|
142
|
+
{% if site.yandex_site_verification %}
|
143
|
+
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
|
144
|
+
{% endif %}
|
145
|
+
<!-- end SEO -->
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
{% if page.author_profile or layout.author_profile or page.sidebar %}
|
4
|
+
<div class="sidebar sticky">
|
5
|
+
{% if page.author_profile or layout.author_profile %}{% include author-profile.html %}{% endif %}
|
6
|
+
{% if page.sidebar %}
|
7
|
+
{% for s in page.sidebar %}
|
8
|
+
{% if s.image %}
|
9
|
+
<img src=
|
10
|
+
{% if s.image contains "://" %}
|
11
|
+
"{{ s.image }}"
|
12
|
+
{% else %}
|
13
|
+
"{{ s.image | prepend: "/" | prepend: base_path }}"
|
14
|
+
{% endif %}
|
15
|
+
alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
|
16
|
+
{% endif %}
|
17
|
+
{% if s.title %}<h3>{{ s.title }}</h3>{% endif %}
|
18
|
+
{% if s.text %}{{ s.text | markdownify }}{% endif %}
|
19
|
+
{% endfor %}
|
20
|
+
{% if page.sidebar.nav %}
|
21
|
+
{% include nav_list nav=page.sidebar.nav %}
|
22
|
+
{% endif %}
|
23
|
+
{% endif %}
|
24
|
+
</div>
|
25
|
+
{% endif %}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
<section class="page__share">
|
4
|
+
{% if site.data.ui-text[site.locale].share_on_label %}
|
5
|
+
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
|
6
|
+
{% endif %}
|
7
|
+
|
8
|
+
<a href="https://twitter.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username }}&{% endif %}text={{ page.title }} {{ base_path }}{{ page.url }}" class="btn btn--twitter" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
9
|
+
|
10
|
+
<a href="https://www.facebook.com/sharer/sharer.php?u={{ base_path }}{{ page.url }}" class="btn btn--facebook" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
11
|
+
|
12
|
+
<a href="https://plus.google.com/share?url={{ base_path }}{{ page.url }}" class="btn btn--google-plus" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
|
13
|
+
|
14
|
+
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ base_path }}{{ page.url }}" class="btn btn--linkedin" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
15
|
+
</section>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
{% include base_path %}
|
2
|
+
|
3
|
+
{% case site.tag_archive.type %}
|
4
|
+
{% when "liquid" %}
|
5
|
+
{% assign path_type = "#" %}
|
6
|
+
{% when "jekyll-archives" %}
|
7
|
+
{% assign path_type = nil %}
|
8
|
+
{% endcase %}
|
9
|
+
|
10
|
+
{% if site.tag_archive.path %}
|
11
|
+
{% comment %}
|
12
|
+
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
|
13
|
+
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
|
14
|
+
{% endcomment %}
|
15
|
+
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
16
|
+
{% assign tag_hashes = (page_tags | split: ',' | sort:0) %}
|
17
|
+
|
18
|
+
<p class="page__taxonomy">
|
19
|
+
<strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
|
20
|
+
<span itemprop="keywords">
|
21
|
+
{% for hash in tag_hashes %}
|
22
|
+
{% assign keyValue = hash | split: '#' %}
|
23
|
+
{% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
|
24
|
+
<a href="{{ base_path }}{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
25
|
+
{% endfor %}
|
26
|
+
</span>
|
27
|
+
</p>
|
28
|
+
{% endif %}
|
data/_includes/toc
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
<aside class="sidebar__right">
|
2
|
+
<nav class="toc" markdown="1">
|
3
|
+
<header><h4 class="nav__title"><i class="fa fa-{{ include.icon | default: 'file-text' }}"></i> {{ include.title | default: site.data.ui-text[site.locale].toc_label }}</h4></header>
|
4
|
+
* Auto generated table of contents
|
5
|
+
{:toc .toc__menu}
|
6
|
+
</nav>
|
7
|
+
</aside>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
author_profile: false
|
4
|
+
---
|
5
|
+
|
6
|
+
<div id="main" role="main">
|
7
|
+
{% include sidebar.html %}
|
8
|
+
|
9
|
+
<div class="archive">
|
10
|
+
<h1 class="page__title">{{ page.title }}</h1>
|
11
|
+
{% include base_path %}
|
12
|
+
{% for post in page.posts %}
|
13
|
+
{% include archive-single.html %}
|
14
|
+
{% endfor %}
|
15
|
+
</div>
|
16
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
|
6
|
+
{% include page__hero.html %}
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% if page.url != "/" and site.breadcrumbs %}
|
10
|
+
{% unless paginator %}
|
11
|
+
{% include breadcrumbs.html %}
|
12
|
+
{% endunless %}
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
<div id="main" role="main">
|
16
|
+
{% include sidebar.html %}
|
17
|
+
|
18
|
+
<div class="archive">
|
19
|
+
{% unless page.header.overlay_color or page.header.overlay_image %}
|
20
|
+
<h1 class="page__title">{{ page.title }}</h1>
|
21
|
+
{% endunless %}
|
22
|
+
{{ content }}
|
23
|
+
</div>
|
24
|
+
</div>
|