benimal-mistakes-jekyll 0.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 +1095 -0
- data/LICENSE.txt +63 -0
- data/README.md +245 -0
- data/_data/navigation.yml +12 -0
- data/_data/ui-text.yml +1079 -0
- data/_includes/analytics-providers/custom.html +3 -0
- data/_includes/analytics-providers/google-gtag.html +9 -0
- data/_includes/analytics-providers/google-universal.html +10 -0
- data/_includes/analytics-providers/google.html +14 -0
- data/_includes/analytics.html +14 -0
- data/_includes/archive-single.html +38 -0
- data/_includes/author-profile-custom-links.html +7 -0
- data/_includes/author-profile.html +263 -0
- data/_includes/base_path +5 -0
- data/_includes/breadcrumbs.html +39 -0
- data/_includes/browser-upgrade.html +3 -0
- data/_includes/category-list.html +26 -0
- data/_includes/comment.html +22 -0
- data/_includes/comments-providers/custom.html +3 -0
- data/_includes/comments-providers/discourse.html +13 -0
- data/_includes/comments-providers/disqus.html +15 -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-providers/staticman_v2.html +42 -0
- data/_includes/comments.html +171 -0
- data/_includes/documents-collection.html +19 -0
- data/_includes/feature_row +53 -0
- data/_includes/figure +12 -0
- data/_includes/footer.html +25 -0
- data/_includes/footer/custom.html +3 -0
- data/_includes/gallery +47 -0
- data/_includes/group-by-array +47 -0
- data/_includes/head.html +43 -0
- data/_includes/head/custom.html +5 -0
- data/_includes/masthead.html +33 -0
- data/_includes/nav_list +47 -0
- data/_includes/page__hero.html +61 -0
- data/_includes/page__hero_video.html +4 -0
- data/_includes/page__taxonomy.html +7 -0
- data/_includes/paginator.html +69 -0
- data/_includes/post_pagination.html +14 -0
- data/_includes/posts-category.html +3 -0
- data/_includes/posts-tag.html +3 -0
- data/_includes/read-time.html +15 -0
- data/_includes/schedule.html +57 -0
- data/_includes/scripts.html +28 -0
- data/_includes/search/algolia-search-scripts.html +54 -0
- data/_includes/search/google-search-scripts.html +30 -0
- data/_includes/search/lunr-search-scripts.html +10 -0
- data/_includes/search/search_form.html +18 -0
- data/_includes/seo.html +164 -0
- data/_includes/sidebar.html +23 -0
- data/_includes/social-share.html +13 -0
- data/_includes/tag-list.html +26 -0
- data/_includes/toc +7 -0
- data/_includes/toc.html +75 -0
- data/_includes/two-day-schedule.html +71 -0
- data/_includes/video +11 -0
- data/_layouts/archive-taxonomy.html +15 -0
- data/_layouts/archive.html +26 -0
- data/_layouts/categories.html +42 -0
- data/_layouts/category.html +9 -0
- data/_layouts/collection.html +9 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +42 -0
- data/_layouts/home.html +11 -0
- data/_layouts/posts.html +29 -0
- data/_layouts/search.html +42 -0
- data/_layouts/single.html +92 -0
- data/_layouts/splash.html +22 -0
- data/_layouts/tag.html +9 -0
- data/_layouts/tags.html +42 -0
- data/_sass/minimal-mistakes.scss +40 -0
- data/_sass/minimal-mistakes/_animations.scss +21 -0
- data/_sass/minimal-mistakes/_archive.scss +362 -0
- data/_sass/minimal-mistakes/_base.scss +358 -0
- data/_sass/minimal-mistakes/_buttons.scss +98 -0
- data/_sass/minimal-mistakes/_footer.scss +91 -0
- data/_sass/minimal-mistakes/_forms.scss +393 -0
- data/_sass/minimal-mistakes/_masthead.scss +83 -0
- data/_sass/minimal-mistakes/_mixins.scss +92 -0
- data/_sass/minimal-mistakes/_navigation.scss +544 -0
- data/_sass/minimal-mistakes/_notices.scss +100 -0
- data/_sass/minimal-mistakes/_page.scss +520 -0
- data/_sass/minimal-mistakes/_print.scss +252 -0
- data/_sass/minimal-mistakes/_reset.scss +187 -0
- data/_sass/minimal-mistakes/_search.scss +125 -0
- data/_sass/minimal-mistakes/_sidebar.scss +310 -0
- data/_sass/minimal-mistakes/_syntax.scss +324 -0
- data/_sass/minimal-mistakes/_tables.scss +37 -0
- data/_sass/minimal-mistakes/_utilities.scss +524 -0
- data/_sass/minimal-mistakes/_variables.scss +154 -0
- data/_sass/minimal-mistakes/skins/_air.scss +23 -0
- data/_sass/minimal-mistakes/skins/_aqua.scss +30 -0
- data/_sass/minimal-mistakes/skins/_contrast.scss +51 -0
- data/_sass/minimal-mistakes/skins/_dark.scss +42 -0
- data/_sass/minimal-mistakes/skins/_default.scss +5 -0
- data/_sass/minimal-mistakes/skins/_dirt.scss +33 -0
- data/_sass/minimal-mistakes/skins/_mint.scss +23 -0
- data/_sass/minimal-mistakes/skins/_neon.scss +53 -0
- data/_sass/minimal-mistakes/skins/_plum.scss +60 -0
- data/_sass/minimal-mistakes/skins/_sunrise.scss +44 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss +114 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_context.scss +95 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss +151 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss +50 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss +15 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss +215 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss +82 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss +71 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss +33 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss +82 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss +31 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss +26 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss +36 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss +22 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss +13 -0
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss +18 -0
- data/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss +649 -0
- data/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss +46 -0
- data/_sass/minimal-mistakes/vendor/susy/_su.scss +4 -0
- data/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss +13 -0
- data/_sass/minimal-mistakes/vendor/susy/_susy.scss +5 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss +5 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss +7 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss +114 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss +67 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss +14 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss +18 -0
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss +133 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_api.scss +318 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss +261 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss +163 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss +329 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss +441 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss +213 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss +191 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss +56 -0
- data/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss +167 -0
- data/assets/css/main.scss +8 -0
- data/assets/js/_main.js +106 -0
- data/assets/js/lunr/lunr-en.js +75 -0
- data/assets/js/lunr/lunr-gr.js +528 -0
- data/assets/js/lunr/lunr-store.js +52 -0
- data/assets/js/lunr/lunr.js +2977 -0
- data/assets/js/lunr/lunr.min.js +6 -0
- data/assets/js/main.min.js +9 -0
- data/assets/js/plugins/jquery.fitvids.js +82 -0
- data/assets/js/plugins/jquery.greedy-navigation.js +83 -0
- data/assets/js/plugins/jquery.magnific-popup.js +1860 -0
- data/assets/js/plugins/jquery.smooth-scroll.min.js +9 -0
- data/assets/js/vendor/jquery/jquery-3.3.1.min.js +2 -0
- metadata +327 -0
@@ -0,0 +1,28 @@
|
|
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 | relative_url }}{% endcapture %}
|
7
|
+
{% endif %}
|
8
|
+
<script src="{{ script_path }}"></script>
|
9
|
+
{% endfor %}
|
10
|
+
{% else %}
|
11
|
+
<script src="{{ '/assets/js/main.min.js' | relative_url }}"></script>
|
12
|
+
<script src="https://use.fontawesome.com/releases/v5.1.0/js/all.js"></script>
|
13
|
+
{% endif %}
|
14
|
+
|
15
|
+
{% if site.search == true or page.layout == "search" %}
|
16
|
+
{%- assign search_provider = site.search_provider | default: "lunr" -%}
|
17
|
+
{%- case search_provider -%}
|
18
|
+
{%- when "lunr" -%}
|
19
|
+
{% include search/lunr-search-scripts.html %}
|
20
|
+
{%- when "google" -%}
|
21
|
+
{% include search/google-search-scripts.html %}
|
22
|
+
{%- when "algolia" -%}
|
23
|
+
{% include search/algolia-search-scripts.html %}
|
24
|
+
{%- endcase -%}
|
25
|
+
{% endif %}
|
26
|
+
|
27
|
+
{% include analytics.html %}
|
28
|
+
{% include /comments-providers/scripts.html %}
|
@@ -0,0 +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" type="text/css" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
|
4
|
+
<link rel="stylesheet" type="text/css" 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>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<script>
|
2
|
+
(function () {
|
3
|
+
var cx = '{{ site.google.search_engine_id }}';
|
4
|
+
var gcse = document.createElement('script');
|
5
|
+
gcse.type = 'text/javascript';
|
6
|
+
gcse.async = true;
|
7
|
+
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
|
8
|
+
var s = document.getElementsByTagName('script')[0];
|
9
|
+
s.parentNode.insertBefore(gcse, s);
|
10
|
+
})();
|
11
|
+
|
12
|
+
function googleCustomSearchExecute() {
|
13
|
+
var input = document.getElementById('cse-search-input-box-id');
|
14
|
+
var element = google.search.cse.element.getElement('searchresults-only0');
|
15
|
+
if (input.value == '') {
|
16
|
+
element.clearAllResults();
|
17
|
+
} else {
|
18
|
+
element.execute(input.value);
|
19
|
+
}
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
|
23
|
+
{% if site.google.instant_search %}
|
24
|
+
$(document).ready(function () {
|
25
|
+
$('input#cse-search-input-box-id').on('keyup', function () {
|
26
|
+
googleCustomSearchExecute();
|
27
|
+
});
|
28
|
+
});
|
29
|
+
{% endif %}
|
30
|
+
</script>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{% assign lang = site.locale | slice: 0,2 | default: "en" %}
|
2
|
+
{% case lang %}
|
3
|
+
{% when "gr" %}
|
4
|
+
{% assign lang = "gr" %}
|
5
|
+
{% else %}
|
6
|
+
{% assign lang = "en" %}
|
7
|
+
{% endcase %}
|
8
|
+
<script src="{{ '/assets/js/lunr/lunr.min.js' | relative_url }}"></script>
|
9
|
+
<script src="{{ '/assets/js/lunr/lunr-store.js' | relative_url }}"></script>
|
10
|
+
<script src="{{ '/assets/js/lunr/lunr-' | append: lang | append: '.js' | relative_url }}"></script>
|
@@ -0,0 +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 -%}
|
18
|
+
</div>
|
data/_includes/seo.html
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
<!-- begin _includes/seo.html -->
|
2
|
+
{%- if site.url -%}
|
3
|
+
{%- assign seo_url = site.url | append: site.baseurl -%}
|
4
|
+
{%- endif -%}
|
5
|
+
{%- assign seo_url = seo_url | default: site.github.url -%}
|
6
|
+
|
7
|
+
{% assign title_separator = site.title_separator | default: '-' | replace: '|', '|' %}
|
8
|
+
|
9
|
+
{%- if page.title -%}
|
10
|
+
{%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
|
11
|
+
{%- endif -%}
|
12
|
+
|
13
|
+
{%- if seo_title -%}
|
14
|
+
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
|
15
|
+
{%- endif -%}
|
16
|
+
|
17
|
+
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
|
18
|
+
|
19
|
+
{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
|
20
|
+
{%- if seo_description -%}
|
21
|
+
{%- assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once -%}
|
22
|
+
{%- endif -%}
|
23
|
+
|
24
|
+
{%- assign author = page.author | default: page.authors[0] | default: site:author -%}
|
25
|
+
{%- assign author = site.data.authors[author] | default: author -%}
|
26
|
+
|
27
|
+
{%- if author.twitter -%}
|
28
|
+
{%- assign author_twitter = author.twitter | replace: "@", "" -%}
|
29
|
+
{%- endif -%}
|
30
|
+
|
31
|
+
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image -%}
|
32
|
+
{%- unless page_large_image contains '://' -%}
|
33
|
+
{%- assign page_large_image = page_large_image | absolute_url -%}
|
34
|
+
{%- endunless -%}
|
35
|
+
{%- assign page_large_image = page_large_image | escape -%}
|
36
|
+
|
37
|
+
{%- assign page_teaser_image = page.header.teaser | default: site.og_image -%}
|
38
|
+
{%- unless page_teaser_image contains '://' -%}
|
39
|
+
{%- assign page_teaser_image = page_teaser_image | absolute_url -%}
|
40
|
+
{%- endunless -%}
|
41
|
+
{%- assign page_teaser_image = page_teaser_image | escape -%}
|
42
|
+
|
43
|
+
{%- assign site_og_image = site.og_image -%}
|
44
|
+
{%- unless site_og_image contains '://' -%}
|
45
|
+
{%- assign site_og_image = site_og_image | absolute_url -%}
|
46
|
+
{%- endunless -%}
|
47
|
+
{%- assign site_og_image = site_og_image | escape -%}
|
48
|
+
|
49
|
+
{%- if page.date -%}
|
50
|
+
{%- assign og_type = "article" -%}
|
51
|
+
{%- else -%}
|
52
|
+
{%- assign og_type = "website" -%}
|
53
|
+
{%- endif -%}
|
54
|
+
|
55
|
+
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
|
56
|
+
<meta name="description" content="{{ seo_description }}">
|
57
|
+
|
58
|
+
{% if author.name %}
|
59
|
+
<meta name="author" content="{{ author.name | default: author }}">
|
60
|
+
{% endif %}
|
61
|
+
|
62
|
+
<meta property="og:type" content="{{ og_type }}">
|
63
|
+
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
|
64
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
65
|
+
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
66
|
+
<meta property="og:url" content="{{ canonical_url }}">
|
67
|
+
|
68
|
+
{% if page.excerpt %}
|
69
|
+
<meta property="og:description" content="{{ seo_description }}">
|
70
|
+
{% endif %}
|
71
|
+
|
72
|
+
{% if page_large_image %}
|
73
|
+
<meta property="og:image" content="{{ page_large_image }}">
|
74
|
+
{% elsif page_teaser_image %}
|
75
|
+
<meta property="og:image" content="{{ page_teaser_image }}">
|
76
|
+
{% endif %}
|
77
|
+
|
78
|
+
{% if site.twitter.username %}
|
79
|
+
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
|
80
|
+
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
|
81
|
+
<meta name="twitter:description" content="{{ seo_description }}">
|
82
|
+
<meta name="twitter:url" content="{{ canonical_url }}">
|
83
|
+
|
84
|
+
{% if page_large_image %}
|
85
|
+
<meta name="twitter:card" content="summary_large_image">
|
86
|
+
<meta name="twitter:image" content="{{ page_large_image }}">
|
87
|
+
{% else %}
|
88
|
+
<meta name="twitter:card" content="summary">
|
89
|
+
{% if page_teaser_image %}
|
90
|
+
<meta name="twitter:image" content="{{ page_teaser_image }}">
|
91
|
+
{% endif %}
|
92
|
+
{% endif %}
|
93
|
+
|
94
|
+
{% if author_twitter %}
|
95
|
+
<meta name="twitter:creator" content="@{{ author_twitter }}">
|
96
|
+
{% endif %}
|
97
|
+
{% endif %}
|
98
|
+
|
99
|
+
{% if page.date %}
|
100
|
+
<meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
101
|
+
{% endif %}
|
102
|
+
|
103
|
+
{% if og_type == "article" and page.last_modified_at %}
|
104
|
+
<meta property="article:modified_time" content="{{ page.last_modified_at | date_to_xmlschema }}">
|
105
|
+
{% endif %}
|
106
|
+
|
107
|
+
{% if site.facebook %}
|
108
|
+
{% if site.facebook.publisher %}
|
109
|
+
<meta property="article:publisher" content="{{ site.facebook.publisher }}">
|
110
|
+
{% endif %}
|
111
|
+
|
112
|
+
{% if site.facebook.app_id %}
|
113
|
+
<meta property="fb:app_id" content="{{ site.facebook.app_id }}">
|
114
|
+
{% endif %}
|
115
|
+
{% endif %}
|
116
|
+
|
117
|
+
<link rel="canonical" href="{{ canonical_url }}">
|
118
|
+
|
119
|
+
{% if paginator.previous_page %}
|
120
|
+
<link rel="prev" href="{{ paginator.previous_page_path | absolute_url }}">
|
121
|
+
{% endif %}
|
122
|
+
{% if paginator.next_page %}
|
123
|
+
<link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
|
124
|
+
{% endif %}
|
125
|
+
|
126
|
+
{% if site.og_image %}
|
127
|
+
<script type="application/ld+json">
|
128
|
+
{
|
129
|
+
"@context": "http://schema.org",
|
130
|
+
"@type": "Organization",
|
131
|
+
"url": {{ seo_url | jsonify }},
|
132
|
+
"logo": {{ site_og_image | jsonify }}
|
133
|
+
}
|
134
|
+
</script>
|
135
|
+
{% endif %}
|
136
|
+
|
137
|
+
{% if site.social %}
|
138
|
+
<script type="application/ld+json">
|
139
|
+
{
|
140
|
+
"@context": "http://schema.org",
|
141
|
+
"@type": "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
|
142
|
+
"name": {{ site.social.name | default: site.name | jsonify }},
|
143
|
+
"url": {{ seo_url | jsonify }},
|
144
|
+
"sameAs": {{ site.social.links | jsonify }}
|
145
|
+
}
|
146
|
+
</script>
|
147
|
+
{% endif %}
|
148
|
+
|
149
|
+
{% if site.google_site_verification %}
|
150
|
+
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
|
151
|
+
{% endif %}
|
152
|
+
{% if site.bing_site_verification %}
|
153
|
+
<meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
|
154
|
+
{% endif %}
|
155
|
+
{% if site.alexa_site_verification %}
|
156
|
+
<meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
|
157
|
+
{% endif %}
|
158
|
+
{% if site.yandex_site_verification %}
|
159
|
+
<meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
|
160
|
+
{% endif %}
|
161
|
+
{% if site.naver_site_verification %}
|
162
|
+
<meta name="naver-site-verification" content="{{ site.naver_site_verification }}">
|
163
|
+
{% endif %}
|
164
|
+
<!-- end _includes/seo.html -->
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{% if page.author_profile or layout.author_profile or page.sidebar %}
|
2
|
+
<div class="sidebar sticky">
|
3
|
+
{% if page.author_profile or layout.author_profile %}{% include author-profile.html %}{% endif %}
|
4
|
+
{% if page.sidebar %}
|
5
|
+
{% for s in page.sidebar %}
|
6
|
+
{% if s.image %}
|
7
|
+
<img src=
|
8
|
+
{% if s.image contains "://" %}
|
9
|
+
"{{ s.image }}"
|
10
|
+
{% else %}
|
11
|
+
"{{ s.image | relative_url }}"
|
12
|
+
{% endif %}
|
13
|
+
alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
|
14
|
+
{% endif %}
|
15
|
+
{% if s.title %}<h3>{{ s.title }}</h3>{% endif %}
|
16
|
+
{% if s.text %}{{ s.text | markdownify }}{% endif %}
|
17
|
+
{% endfor %}
|
18
|
+
{% if page.sidebar.nav %}
|
19
|
+
{% include nav_list nav=page.sidebar.nav %}
|
20
|
+
{% endif %}
|
21
|
+
{% endif %}
|
22
|
+
</div>
|
23
|
+
{% endif %}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<section class="page__share">
|
2
|
+
{% if site.data.ui-text[site.locale].share_on_label %}
|
3
|
+
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
|
4
|
+
{% endif %}
|
5
|
+
|
6
|
+
<a href="https://twitter.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
7
|
+
|
8
|
+
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
|
9
|
+
|
10
|
+
<a href="https://plus.google.com/share?url={{ page.url | absolute_url | url_encode }}" class="btn btn--google-plus" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Google Plus"><i class="fab fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
|
11
|
+
|
12
|
+
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url | url_encode }}" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
13
|
+
</section>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{% case site.tag_archive.type %}
|
2
|
+
{% when "liquid" %}
|
3
|
+
{% assign path_type = "#" %}
|
4
|
+
{% when "jekyll-archives" %}
|
5
|
+
{% assign path_type = nil %}
|
6
|
+
{% endcase %}
|
7
|
+
|
8
|
+
{% if site.tag_archive.path %}
|
9
|
+
{% comment %}
|
10
|
+
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
|
11
|
+
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
|
12
|
+
{% endcomment %}
|
13
|
+
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
|
14
|
+
{% assign tag_hashes = page_tags | split: ',' | sort %}
|
15
|
+
|
16
|
+
<p class="page__taxonomy">
|
17
|
+
<strong><i class="fas fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
|
18
|
+
<span itemprop="keywords">
|
19
|
+
{% for hash in tag_hashes %}
|
20
|
+
{% assign keyValue = hash | split: '#' %}
|
21
|
+
{% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
|
22
|
+
<a href="{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path | relative_url }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
|
23
|
+
{% endfor %}
|
24
|
+
</span>
|
25
|
+
</p>
|
26
|
+
{% 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="fas fa-{{ include.icon | default: 'file-alt' }}"></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>
|
data/_includes/toc.html
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
{% capture tocWorkspace %}
|
2
|
+
{%- comment -%}
|
3
|
+
Version 1.0.2
|
4
|
+
|
5
|
+
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
6
|
+
|
7
|
+
Usage:
|
8
|
+
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
|
9
|
+
|
10
|
+
Parameters:
|
11
|
+
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
12
|
+
|
13
|
+
Optional Parameters:
|
14
|
+
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
|
15
|
+
* class (string) : '' - a CSS class assigned to the TOC
|
16
|
+
* id (string) : '' - an ID to assigned to the TOC
|
17
|
+
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
|
18
|
+
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
|
19
|
+
|
20
|
+
Output:
|
21
|
+
An unordered list representing the table of contents of a markdown block. This snippet will only generate the table of contents and will NOT output the markdown given to it
|
22
|
+
{%- endcomment -%}
|
23
|
+
|
24
|
+
{% capture my_toc %}{% endcapture %}
|
25
|
+
{% assign minHeader = include.h_min | default: 1 %}
|
26
|
+
{% assign maxHeader = include.h_max | default: 6 %}
|
27
|
+
{% assign nodes = include.html | split: '<h' %}
|
28
|
+
{% assign firstHeader = true %}
|
29
|
+
|
30
|
+
{% for node in nodes %}
|
31
|
+
{% if node == "" %}
|
32
|
+
{% continue %}
|
33
|
+
{% endif %}
|
34
|
+
|
35
|
+
{% assign headerLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
|
36
|
+
|
37
|
+
{% if headerLevel < minHeader or headerLevel > maxHeader %}
|
38
|
+
{% continue %}
|
39
|
+
{% endif %}
|
40
|
+
|
41
|
+
{% if firstHeader %}
|
42
|
+
{% assign firstHeader = false %}
|
43
|
+
{% assign minHeader = headerLevel %}
|
44
|
+
{% endif %}
|
45
|
+
|
46
|
+
{% assign indentAmount = headerLevel | minus: minHeader | add: 1 %}
|
47
|
+
{% assign _workspace = node | split: '</h' %}
|
48
|
+
|
49
|
+
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
50
|
+
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
51
|
+
{% assign html_id = _idWorkspace[0] %}
|
52
|
+
|
53
|
+
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
54
|
+
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
55
|
+
|
56
|
+
{% assign space = '' %}
|
57
|
+
{% for i in (1..indentAmount) %}
|
58
|
+
{% assign space = space | prepend: ' ' %}
|
59
|
+
{% endfor %}
|
60
|
+
|
61
|
+
{% capture my_toc %}{{ my_toc }}
|
62
|
+
{{ space }}- [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}](#{{ html_id }}){% endcapture %}
|
63
|
+
|
64
|
+
{% endfor %}
|
65
|
+
|
66
|
+
{% if include.class %}
|
67
|
+
{% capture my_toc %}{:.{{ include.class }}}
|
68
|
+
{{ my_toc | lstrip }}{% endcapture %}
|
69
|
+
{% endif %}
|
70
|
+
|
71
|
+
{% if include.id %}
|
72
|
+
{% capture my_toc %}{: #{{ include.id }}}
|
73
|
+
{{ my_toc | lstrip }}{% endcapture %}
|
74
|
+
{% endif %}
|
75
|
+
{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
|