jekyll-theme-abd3lraouf 5.2.4 → 5.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -21
  3. data/README.md +105 -105
  4. data/_config.yml +207 -206
  5. data/_data/assets/cross_origin.yml +62 -62
  6. data/_data/assets/self_host.yml +51 -51
  7. data/_data/authors.yml +17 -17
  8. data/_data/contact.yml +30 -30
  9. data/_data/locales/bg-BG.yml +83 -83
  10. data/_data/locales/en.yml +83 -83
  11. data/_data/locales/es-ES.yml +79 -79
  12. data/_data/locales/fr-FR.yml +79 -79
  13. data/_data/locales/hu-HU.yml +81 -81
  14. data/_data/locales/id-ID.yml +79 -79
  15. data/_data/locales/ko-KR.yml +79 -79
  16. data/_data/locales/my-MM.yml +79 -79
  17. data/_data/locales/pt-BR.yml +79 -79
  18. data/_data/locales/ru-RU.yml +79 -79
  19. data/_data/locales/tr-TR.yml +79 -79
  20. data/_data/locales/uk-UA.yml +79 -79
  21. data/_data/locales/vi-VN.yml +77 -77
  22. data/_data/locales/zh-CN.yml +78 -78
  23. data/_data/share.yml +27 -27
  24. data/_includes/assets-origin.html +12 -12
  25. data/_includes/comments/disqus.html +54 -54
  26. data/_includes/comments/giscus.html +56 -56
  27. data/_includes/comments/utterances.html +51 -51
  28. data/_includes/comments.html +5 -5
  29. data/_includes/datetime.html +21 -21
  30. data/_includes/favicons.html +17 -17
  31. data/_includes/footer.html +17 -36
  32. data/_includes/google-analytics.html +14 -14
  33. data/_includes/head.html +116 -116
  34. data/_includes/js-selector.html +104 -104
  35. data/_includes/jsdelivr-combine.html +32 -32
  36. data/_includes/lang.html +8 -8
  37. data/_includes/language-alias.html +70 -70
  38. data/_includes/mermaid.html +57 -57
  39. data/_includes/mode-toggle.html +129 -129
  40. data/_includes/no-linenos.html +10 -10
  41. data/_includes/post-nav.html +30 -30
  42. data/_includes/post-paginator.html +88 -88
  43. data/_includes/post-sharing.html +27 -27
  44. data/_includes/read-time.html +30 -30
  45. data/_includes/refactor-content.html +282 -282
  46. data/_includes/related-posts.html +103 -103
  47. data/_includes/search-loader.html +46 -46
  48. data/_includes/search-results.html +11 -11
  49. data/_includes/sidebar.html +93 -93
  50. data/_includes/toc.html +16 -16
  51. data/_includes/topbar.html +70 -70
  52. data/_includes/trending-tags.html +50 -50
  53. data/_includes/update-list.html +40 -40
  54. data/_layouts/archives.html +48 -48
  55. data/_layouts/categories.html +120 -120
  56. data/_layouts/category.html +24 -24
  57. data/_layouts/compress.html +10 -10
  58. data/_layouts/default.html +74 -74
  59. data/_layouts/home.html +103 -103
  60. data/_layouts/page.html +64 -64
  61. data/_layouts/post.html +159 -159
  62. data/_layouts/tag.html +23 -23
  63. data/_layouts/tags.html +23 -23
  64. data/_plugins/posts-lastmod-hook.rb +14 -14
  65. data/_sass/addon/commons.scss +1678 -1680
  66. data/_sass/addon/module.scss +151 -151
  67. data/_sass/addon/syntax.scss +289 -289
  68. data/_sass/addon/variables.scss +34 -34
  69. data/_sass/colors/dark-syntax.scss +88 -88
  70. data/_sass/colors/dark-typography.scss +157 -157
  71. data/_sass/colors/light-syntax.scss +84 -84
  72. data/_sass/colors/light-typography.scss +94 -94
  73. data/_sass/jekyll-theme-abd3lraouf.scss +1 -1
  74. data/_sass/layout/archives.scss +147 -147
  75. data/_sass/layout/categories.scss +67 -67
  76. data/_sass/layout/category-tag.scss +73 -73
  77. data/_sass/layout/home.scss +184 -184
  78. data/_sass/layout/post.scss +369 -369
  79. data/_sass/layout/tags.scss +19 -19
  80. data/_sass/variables-hook.scss +3 -3
  81. data/_tabs/about.md +8 -8
  82. data/_tabs/archives.md +7 -7
  83. data/_tabs/categories.md +6 -6
  84. data/_tabs/tags.md +6 -6
  85. data/assets/404.html +16 -16
  86. data/assets/css/style.scss +12 -12
  87. data/assets/feed.xml +61 -61
  88. data/assets/img/favicons/browserconfig.xml +13 -13
  89. data/assets/img/favicons/site.webmanifest +26 -26
  90. data/assets/js/data/search.json +18 -18
  91. data/assets/js/data/swcache.js +55 -55
  92. data/assets/js/dist/categories.min.js +1 -1
  93. data/assets/js/dist/commons.min.js +1 -1
  94. data/assets/js/dist/home.min.js +1 -1
  95. data/assets/js/dist/misc.min.js +1 -1
  96. data/assets/js/dist/page.min.js +1 -1
  97. data/assets/js/dist/post.min.js +1 -1
  98. data/assets/js/dist/pvreport.min.js +1 -1
  99. data/assets/js/pwa/app.js +47 -47
  100. data/assets/js/pwa/sw.js +89 -89
  101. data/assets/js/pwa/unregister.js +12 -12
  102. data/assets/robots.txt +10 -10
  103. data/index.html +4 -4
  104. metadata +7 -7
@@ -1,56 +1,56 @@
1
- <!-- https://giscus.app/ -->
2
- <script type="text/javascript">
3
- $(function () {
4
- const origin = "https://giscus.app";
5
- const iframe = "iframe.giscus-frame";
6
- const lightTheme = "light";
7
- const darkTheme = "dark_dimmed";
8
- let initTheme = lightTheme;
9
-
10
- if ($("html[data-mode=dark]").length > 0
11
- || ($("html[data-mode]").length == 0
12
- && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
13
- initTheme = darkTheme;
14
- }
15
-
16
- let giscusAttributes = {
17
- "src": "https://giscus.app/client.js",
18
- "data-repo": "{{ site.comments.giscus.repo}}",
19
- "data-repo-id": "{{ site.comments.giscus.repo_id }}",
20
- "data-category": "{{ site.comments.giscus.category }}",
21
- "data-category-id": "{{ site.comments.giscus.category_id }}",
22
- "data-mapping": "{{ site.comments.giscus.mapping | default: 'pathname' }}",
23
- "data-reactions-enabled": "1",
24
- "data-emit-metadata": "0",
25
- "data-theme": initTheme,
26
- "data-input-position": "{{ site.comments.giscus.input_position | default: 'bottom' }}",
27
- "data-lang": "{{ site.comments.giscus.lang | default: lang }}",
28
- "crossorigin": "anonymous",
29
- "async": ""
30
- };
31
-
32
- let giscusScript = document.createElement("script");
33
- Object.entries(giscusAttributes).forEach(([key, value]) => giscusScript.setAttribute(key, value));
34
- document.getElementById("tail-wrapper").appendChild(giscusScript);
35
-
36
- addEventListener("message", (event) => {
37
- if (event.source === window && event.data &&
38
- event.data.direction === ModeToggle.ID) {
39
- /* global theme mode changed */
40
- const mode = event.data.message;
41
- const theme = (mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme);
42
-
43
- const message = {
44
- setConfig: {
45
- theme: theme
46
- }
47
- };
48
-
49
- const giscus = document.querySelector(iframe).contentWindow;
50
- giscus.postMessage({ giscus: message }, origin);
51
- }
52
-
53
- });
54
-
55
- });
56
- </script>
1
+ <!-- https://giscus.app/ -->
2
+ <script type="text/javascript">
3
+ $(function () {
4
+ const origin = "https://giscus.app";
5
+ const iframe = "iframe.giscus-frame";
6
+ const lightTheme = "light";
7
+ const darkTheme = "dark_dimmed";
8
+ let initTheme = lightTheme;
9
+
10
+ if ($("html[data-mode=dark]").length > 0
11
+ || ($("html[data-mode]").length == 0
12
+ && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
13
+ initTheme = darkTheme;
14
+ }
15
+
16
+ let giscusAttributes = {
17
+ "src": "https://giscus.app/client.js",
18
+ "data-repo": "{{ site.comments.giscus.repo}}",
19
+ "data-repo-id": "{{ site.comments.giscus.repo_id }}",
20
+ "data-category": "{{ site.comments.giscus.category }}",
21
+ "data-category-id": "{{ site.comments.giscus.category_id }}",
22
+ "data-mapping": "{{ site.comments.giscus.mapping | default: 'pathname' }}",
23
+ "data-reactions-enabled": "1",
24
+ "data-emit-metadata": "0",
25
+ "data-theme": initTheme,
26
+ "data-input-position": "{{ site.comments.giscus.input_position | default: 'bottom' }}",
27
+ "data-lang": "{{ site.comments.giscus.lang | default: lang }}",
28
+ "crossorigin": "anonymous",
29
+ "async": ""
30
+ };
31
+
32
+ let giscusScript = document.createElement("script");
33
+ Object.entries(giscusAttributes).forEach(([key, value]) => giscusScript.setAttribute(key, value));
34
+ document.getElementById("tail-wrapper").appendChild(giscusScript);
35
+
36
+ addEventListener("message", (event) => {
37
+ if (event.source === window && event.data &&
38
+ event.data.direction === ModeToggle.ID) {
39
+ /* global theme mode changed */
40
+ const mode = event.data.message;
41
+ const theme = (mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme);
42
+
43
+ const message = {
44
+ setConfig: {
45
+ theme: theme
46
+ }
47
+ };
48
+
49
+ const giscus = document.querySelector(iframe).contentWindow;
50
+ giscus.postMessage({ giscus: message }, origin);
51
+ }
52
+
53
+ });
54
+
55
+ });
56
+ </script>
@@ -1,51 +1,51 @@
1
- <!-- https://utteranc.es/ -->
2
- <script src="https://utteranc.es/client.js"
3
- repo="{{ site.comments.utterances.repo }}"
4
- issue-term="{{ site.comments.utterances.issue_term }}"
5
- crossorigin="anonymous"
6
- async>
7
- </script>
8
-
9
- <script type="text/javascript">
10
- $(function() {
11
- const origin = "https://utteranc.es";
12
- const iframe = "iframe.utterances-frame";
13
- const lightTheme = "github-light";
14
- const darkTheme = "github-dark";
15
- let initTheme = lightTheme;
16
-
17
- if ($("html[data-mode=dark]").length > 0
18
- || ($("html[data-mode]").length == 0
19
- && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
20
- initTheme = darkTheme;
21
- }
22
-
23
- addEventListener("message", (event) => {
24
- let theme;
25
-
26
- /* credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347> */
27
- if (event.origin === origin) {
28
- /* page initial */
29
- theme = initTheme;
30
-
31
- } else if (event.source === window && event.data &&
32
- event.data.direction === ModeToggle.ID) {
33
- /* global theme mode changed */
34
- const mode = event.data.message;
35
- theme = (mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme);
36
-
37
- } else {
38
- return;
39
- }
40
-
41
- const message = {
42
- type: "set-theme",
43
- theme: theme
44
- };
45
-
46
- const utterances = document.querySelector(iframe).contentWindow;
47
- utterances.postMessage(message, origin);
48
- });
49
-
50
- });
51
- </script>
1
+ <!-- https://utteranc.es/ -->
2
+ <script src="https://utteranc.es/client.js"
3
+ repo="{{ site.comments.utterances.repo }}"
4
+ issue-term="{{ site.comments.utterances.issue_term }}"
5
+ crossorigin="anonymous"
6
+ async>
7
+ </script>
8
+
9
+ <script type="text/javascript">
10
+ $(function() {
11
+ const origin = "https://utteranc.es";
12
+ const iframe = "iframe.utterances-frame";
13
+ const lightTheme = "github-light";
14
+ const darkTheme = "github-dark";
15
+ let initTheme = lightTheme;
16
+
17
+ if ($("html[data-mode=dark]").length > 0
18
+ || ($("html[data-mode]").length == 0
19
+ && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
20
+ initTheme = darkTheme;
21
+ }
22
+
23
+ addEventListener("message", (event) => {
24
+ let theme;
25
+
26
+ /* credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347> */
27
+ if (event.origin === origin) {
28
+ /* page initial */
29
+ theme = initTheme;
30
+
31
+ } else if (event.source === window && event.data &&
32
+ event.data.direction === ModeToggle.ID) {
33
+ /* global theme mode changed */
34
+ const mode = event.data.message;
35
+ theme = (mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme);
36
+
37
+ } else {
38
+ return;
39
+ }
40
+
41
+ const message = {
42
+ type: "set-theme",
43
+ theme: theme
44
+ };
45
+
46
+ const utterances = document.querySelector(iframe).contentWindow;
47
+ utterances.postMessage(message, origin);
48
+ });
49
+
50
+ });
51
+ </script>
@@ -1,5 +1,5 @@
1
- <!-- The comments switcher -->
2
- {% if page.comments and site.comments.active %}
3
- {% capture path %}comments/{{ site.comments.active }}.html{% endcapture %}
4
- {% include {{ path }} %}
5
- {% endif %}
1
+ <!-- The comments switcher -->
2
+ {% if page.comments and site.comments.active %}
3
+ {% capture path %}comments/{{ site.comments.active }}.html{% endcapture %}
4
+ {% include {{ path }} %}
5
+ {% endif %}
@@ -1,21 +1,21 @@
1
- <!--
2
- Date format snippet
3
- See: ${JS_ROOT}/utils/locale-dateime.js
4
- -->
5
-
6
- {% assign wrap_elem = include.wrap | default: 'em' %}
7
-
8
- {% if site.prefer_datetime_locale == 'en' or lang == 'en' %}
9
- {% assign df_strftime = '%b %e, %Y' %}
10
- {% assign df_dayjs = 'll' %}
11
- {% else %}
12
- {% assign df_strftime = '%F' %}
13
- {% assign df_dayjs = 'YYYY-MM-DD' %}
14
- {% endif %}
15
-
16
- <{{ wrap_elem }} class="{% if include.class %}{{ include.class }}{% endif %}"
17
- data-ts="{{ include.date | date: '%s' }}"
18
- data-df="{{ df_dayjs }}"
19
- {% if include.tooltip %}data-toggle="tooltip" data-placement="bottom"{% endif %}>
20
- {{ include.date | date: df_strftime }}
21
- </{{ wrap_elem }}>
1
+ <!--
2
+ Date format snippet
3
+ See: ${JS_ROOT}/utils/locale-dateime.js
4
+ -->
5
+
6
+ {% assign wrap_elem = include.wrap | default: 'em' %}
7
+
8
+ {% if site.prefer_datetime_locale == 'en' or lang == 'en' %}
9
+ {% assign df_strftime = '%b %e, %Y' %}
10
+ {% assign df_dayjs = 'll' %}
11
+ {% else %}
12
+ {% assign df_strftime = '%F' %}
13
+ {% assign df_dayjs = 'YYYY-MM-DD' %}
14
+ {% endif %}
15
+
16
+ <{{ wrap_elem }} class="{% if include.class %}{{ include.class }}{% endif %}"
17
+ data-ts="{{ include.date | date: '%s' }}"
18
+ data-df="{{ df_dayjs }}"
19
+ {% if include.tooltip %}data-toggle="tooltip" data-placement="bottom"{% endif %}>
20
+ {{ include.date | date: df_strftime }}
21
+ </{{ wrap_elem }}>
@@ -1,17 +1,17 @@
1
- <!--
2
- The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps
3
- Generated by: https://realfavicongenerator.net/
4
- -->
5
-
6
- {% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
7
-
8
- <link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
9
- <link rel="icon" type="image/png" sizes="32x32" href="{{ favicon_path }}/favicon-32x32.png">
10
- <link rel="icon" type="image/png" sizes="16x16" href="{{ favicon_path }}/favicon-16x16.png">
11
- <link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
12
- <link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
13
- <meta name="apple-mobile-web-app-title" content="{{ site.title }}">
14
- <meta name="application-name" content="{{ site.title }}">
15
- <meta name="msapplication-TileColor" content="#da532c">
16
- <meta name="msapplication-config" content="{{ favicon_path }}/browserconfig.xml">
17
- <meta name="theme-color" content="#ffffff">
1
+ <!--
2
+ The Favicons for Web, Android, Microsoft, and iOS (iPhone and iPad) Apps
3
+ Generated by: https://realfavicongenerator.net/
4
+ -->
5
+
6
+ {% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
7
+
8
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
9
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ favicon_path }}/favicon-32x32.png">
10
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ favicon_path }}/favicon-16x16.png">
11
+ <link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
12
+ <link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
13
+ <meta name="apple-mobile-web-app-title" content="{{ site.title }}">
14
+ <meta name="application-name" content="{{ site.title }}">
15
+ <meta name="msapplication-TileColor" content="#da532c">
16
+ <meta name="msapplication-config" content="{{ favicon_path }}/browserconfig.xml">
17
+ <meta name="theme-color" content="#ffffff">
@@ -1,36 +1,17 @@
1
- <!-- The Footer -->
2
-
3
- <footer class="row pl-3 pr-3">
4
- <div class="col-12 d-flex justify-content-between align-items-center text-muted pl-0 pr-0">
5
- <div class="footer-left">
6
- <p class="mb-0">
7
- © {{ 'now' | date: "%Y" }}
8
- <a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
9
- {% if site.data.locales[lang].copyright.brief %}
10
- <span data-toggle="tooltip" data-placement="top"
11
- title="{{ site.data.locales[lang].copyright.verbose }}">{{ site.data.locales[lang].copyright.brief }}</span>
12
- {% endif %}
13
- </p>
14
- </div>
15
-
16
- <div class="footer-right">
17
- <p class="mb-0">
18
- {% capture _platform %}
19
- <a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>
20
- {% endcapture %}
21
-
22
- {% capture _theme %}
23
- <a href="https://github.com/abd3lraouf/jekyll-theme-abd3lraouf" target="_blank" rel="noopener">Chirpy</a>
24
- {% endcapture %}
25
-
26
- {{ site.data.locales[lang].meta
27
- | default: 'Powered by :PLATFORM with :THEME theme.'
28
- | replace: ':PLATFORM', _platform | replace: ':THEME', _theme
29
- }}
30
-
31
- </p>
32
- </div>
33
-
34
- </div>
35
-
36
- </footer>
1
+ <!-- The Footer -->
2
+
3
+ <footer class="row pl-3 pr-3">
4
+ <div class="col-12 d-flex justify-content-between align-items-center text-muted pl-0 pr-0">
5
+ <div class="footer-left">
6
+ <p class="mb-0">
7
+ © {{ 'now' | date: "%Y" }}
8
+ <a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
9
+ {% if site.data.locales[lang].copyright.brief %}
10
+ <span data-toggle="tooltip" data-placement="top"
11
+ title="{{ site.data.locales[lang].copyright.verbose }}">{{ site.data.locales[lang].copyright.brief }}</span>
12
+ {% endif %}
13
+ </p>
14
+ </div>
15
+ </div>
16
+
17
+ </footer>
@@ -1,14 +1,14 @@
1
- <!--
2
- The GA snippet
3
- -->
4
- <!-- Global site tag (gtag.js) - Google Analytics -->
5
- <script defer src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics.id }}"></script>
6
- <script>
7
- document.addEventListener("DOMContentLoaded", function(event) {
8
- window.dataLayer = window.dataLayer || [];
9
- function gtag(){dataLayer.push(arguments);}
10
-
11
- gtag('js', new Date());
12
- gtag('config', '{{ site.google_analytics.id }}');
13
- });
14
- </script>
1
+ <!--
2
+ The GA snippet
3
+ -->
4
+ <!-- Global site tag (gtag.js) - Google Analytics -->
5
+ <script defer src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics.id }}"></script>
6
+ <script>
7
+ document.addEventListener("DOMContentLoaded", function(event) {
8
+ window.dataLayer = window.dataLayer || [];
9
+ function gtag(){dataLayer.push(arguments);}
10
+
11
+ gtag('js', new Date());
12
+ gtag('config', '{{ site.google_analytics.id }}');
13
+ });
14
+ </script>
data/_includes/head.html CHANGED
@@ -1,116 +1,116 @@
1
- <!--
2
- The Head
3
- -->
4
-
5
- <head>
6
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8
-
9
- <!-- Allow having a localized datetime different from the appearance language -->
10
- {% if site.prefer_datetime_locale %}
11
- <meta name="prefer-datetime-locale" content="{{ site.prefer_datetime_locale }}">
12
- {% endif %}
13
-
14
- {% if page.layout == 'home' or page.layout == 'post' %}
15
-
16
- {% if site.google_analytics.pv.proxy_endpoint %}
17
- <meta name="pv-proxy-endpoint" content="{{ site.google_analytics.pv.proxy_endpoint }}">
18
- {% endif %}
19
-
20
- {% if site.google_analytics.pv.cache_path %}
21
- <meta name="pv-cache-path" content="{{ site.google_analytics.pv.cache_path | relative_url }}">
22
- {% endif %}
23
-
24
- {% endif %}
25
-
26
- {% capture seo_tags %}
27
- {% seo title=false %}
28
- {% endcapture %}
29
-
30
- {% if site.img_cdn and seo_tags contains 'og:image' %}
31
- {% assign properties = 'og:image,twitter:image' | split: ',' %}
32
-
33
- {% for prop in properties %}
34
- {% if site.img_cdn contains '//' %}
35
- <!-- `site.img_cdn` is a cross-origin URL -->
36
- {% capture target %}<meta property="{{ prop }}" content="{{ site.url }}{% endcapture %}
37
- {% capture replacement %}<meta property="{{ prop }}" content="{{ site.img_cdn }}{% endcapture %}
38
- {% else %}
39
- <!-- `site.img_cdn` is a local file path -->
40
- {% capture target %}<meta property="{{ prop }}" content="{{ site.url }}{{ site.baseurl }}{% endcapture %}
41
- {% assign replacement = target | append: site.img_cdn %}
42
- {% endif %}
43
-
44
- {% assign seo_tags = seo_tags | replace: target, replacement %}
45
-
46
- {% endfor %}
47
- {% endif %}
48
-
49
- {{ seo_tags }}
50
-
51
- <title>
52
- {%- unless page.layout == "home" -%}
53
- {{ page.title | append: " | "}}
54
- {%- endunless -%}
55
- {{ site.title }}
56
- </title>
57
-
58
- {% include favicons.html %}
59
-
60
- {% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
61
-
62
- <link href="{{ site.data.assets[origin].webfonts | relative_url }}" rel="stylesheet">
63
-
64
- {% else %}
65
-
66
- {% for cdn in site.data.assets[origin].cdns %}
67
- <link rel="preconnect" href="{{ cdn.url }}" {{ cdn.args }}>
68
- <link rel="dns-prefetch" href="{{ cdn.url }}" {{ cdn.args }}>
69
- {% endfor %}
70
-
71
- <link rel="stylesheet" href="{{ site.data.assets[origin].webfonts | relative_url }}">
72
-
73
- {% endif %}
74
-
75
- <!-- GA -->
76
- {% if jekyll.environment == 'production'
77
- and site.google_analytics.id != empty and site.google_analytics.id %}
78
- <link rel="preconnect" href="https://www.google-analytics.com" crossorigin="use-credentials">
79
- <link rel="dns-prefetch" href="https://www.google-analytics.com">
80
-
81
- <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous">
82
- <link rel="dns-prefetch" href="https://www.googletagmanager.com">
83
-
84
- {% if site.google_analytics.pv.proxy_endpoint %}
85
- {% assign proxy_url = site.google_analytics.pv.proxy_endpoint
86
- | replace: "https://", "" | split: "/" | first | prepend: "https://" %}
87
- <link rel="preconnect" href="{{ proxy_url }}" crossorigin="use-credentials">
88
- <link rel="dns-prefetch" href="{{ proxy_url }}">
89
- {% endif %}
90
- {% endif %}
91
-
92
- <!-- Bootstrap -->
93
- <link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap.css | relative_url}}">
94
-
95
- <!-- Font Awesome -->
96
- <link rel="stylesheet" href="{{ site.data.assets[origin].fontawesome.css | relative_url }}">
97
-
98
- <link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
99
-
100
- {% if site.toc and page.toc %}
101
- <link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap-toc.css | relative_url }}">
102
- {% endif %}
103
-
104
- {% if page.layout == 'page' or page.layout == 'post' %}
105
- <!-- Manific Popup -->
106
- <link rel="stylesheet" href="{{ site.data.assets[origin].magnific-popup.css | relative_url }}">
107
- {% endif %}
108
-
109
- <!-- JavaScript -->
110
-
111
- <script src="{{ site.data.assets[origin].jquery.js | relative_url }}"></script>
112
-
113
- {% unless site.theme_mode %}
114
- {% include mode-toggle.html %}
115
- {% endunless %}
116
- </head>
1
+ <!--
2
+ The Head
3
+ -->
4
+
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
8
+
9
+ <!-- Allow having a localized datetime different from the appearance language -->
10
+ {% if site.prefer_datetime_locale %}
11
+ <meta name="prefer-datetime-locale" content="{{ site.prefer_datetime_locale }}">
12
+ {% endif %}
13
+
14
+ {% if page.layout == 'home' or page.layout == 'post' %}
15
+
16
+ {% if site.google_analytics.pv.proxy_endpoint %}
17
+ <meta name="pv-proxy-endpoint" content="{{ site.google_analytics.pv.proxy_endpoint }}">
18
+ {% endif %}
19
+
20
+ {% if site.google_analytics.pv.cache_path %}
21
+ <meta name="pv-cache-path" content="{{ site.google_analytics.pv.cache_path | relative_url }}">
22
+ {% endif %}
23
+
24
+ {% endif %}
25
+
26
+ {% capture seo_tags %}
27
+ {% seo title=false %}
28
+ {% endcapture %}
29
+
30
+ {% if site.img_cdn and seo_tags contains 'og:image' %}
31
+ {% assign properties = 'og:image,twitter:image' | split: ',' %}
32
+
33
+ {% for prop in properties %}
34
+ {% if site.img_cdn contains '//' %}
35
+ <!-- `site.img_cdn` is a cross-origin URL -->
36
+ {% capture target %}<meta property="{{ prop }}" content="{{ site.url }}{% endcapture %}
37
+ {% capture replacement %}<meta property="{{ prop }}" content="{{ site.img_cdn }}{% endcapture %}
38
+ {% else %}
39
+ <!-- `site.img_cdn` is a local file path -->
40
+ {% capture target %}<meta property="{{ prop }}" content="{{ site.url }}{{ site.baseurl }}{% endcapture %}
41
+ {% assign replacement = target | append: site.img_cdn %}
42
+ {% endif %}
43
+
44
+ {% assign seo_tags = seo_tags | replace: target, replacement %}
45
+
46
+ {% endfor %}
47
+ {% endif %}
48
+
49
+ {{ seo_tags }}
50
+
51
+ <title>
52
+ {%- unless page.layout == "home" -%}
53
+ {{ page.title | append: " | "}}
54
+ {%- endunless -%}
55
+ {{ site.title }}
56
+ </title>
57
+
58
+ {% include favicons.html %}
59
+
60
+ {% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
61
+
62
+ <link href="{{ site.data.assets[origin].webfonts | relative_url }}" rel="stylesheet">
63
+
64
+ {% else %}
65
+
66
+ {% for cdn in site.data.assets[origin].cdns %}
67
+ <link rel="preconnect" href="{{ cdn.url }}" {{ cdn.args }}>
68
+ <link rel="dns-prefetch" href="{{ cdn.url }}" {{ cdn.args }}>
69
+ {% endfor %}
70
+
71
+ <link rel="stylesheet" href="{{ site.data.assets[origin].webfonts | relative_url }}">
72
+
73
+ {% endif %}
74
+
75
+ <!-- GA -->
76
+ {% if jekyll.environment == 'production'
77
+ and site.google_analytics.id != empty and site.google_analytics.id %}
78
+ <link rel="preconnect" href="https://www.google-analytics.com" crossorigin="use-credentials">
79
+ <link rel="dns-prefetch" href="https://www.google-analytics.com">
80
+
81
+ <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin="anonymous">
82
+ <link rel="dns-prefetch" href="https://www.googletagmanager.com">
83
+
84
+ {% if site.google_analytics.pv.proxy_endpoint %}
85
+ {% assign proxy_url = site.google_analytics.pv.proxy_endpoint
86
+ | replace: "https://", "" | split: "/" | first | prepend: "https://" %}
87
+ <link rel="preconnect" href="{{ proxy_url }}" crossorigin="use-credentials">
88
+ <link rel="dns-prefetch" href="{{ proxy_url }}">
89
+ {% endif %}
90
+ {% endif %}
91
+
92
+ <!-- Bootstrap -->
93
+ <link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap.css | relative_url}}">
94
+
95
+ <!-- Font Awesome -->
96
+ <link rel="stylesheet" href="{{ site.data.assets[origin].fontawesome.css | relative_url }}">
97
+
98
+ <link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
99
+
100
+ {% if site.toc and page.toc %}
101
+ <link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap-toc.css | relative_url }}">
102
+ {% endif %}
103
+
104
+ {% if page.layout == 'page' or page.layout == 'post' %}
105
+ <!-- Manific Popup -->
106
+ <link rel="stylesheet" href="{{ site.data.assets[origin].magnific-popup.css | relative_url }}">
107
+ {% endif %}
108
+
109
+ <!-- JavaScript -->
110
+
111
+ <script src="{{ site.data.assets[origin].jquery.js | relative_url }}"></script>
112
+
113
+ {% unless site.theme_mode %}
114
+ {% include mode-toggle.html %}
115
+ {% endunless %}
116
+ </head>