jekyll-theme-abd3lraouf 5.2.6 → 5.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -21
  3. data/README.md +105 -105
  4. data/_data/assets/cross_origin.yml +62 -62
  5. data/_data/assets/self_host.yml +51 -51
  6. data/_data/authors.yml +17 -17
  7. data/_data/contact.yml +30 -30
  8. data/_data/locales/bg-BG.yml +83 -83
  9. data/_data/locales/en.yml +83 -83
  10. data/_data/locales/es-ES.yml +79 -79
  11. data/_data/locales/fr-FR.yml +79 -79
  12. data/_data/locales/hu-HU.yml +81 -81
  13. data/_data/locales/id-ID.yml +79 -79
  14. data/_data/locales/ko-KR.yml +79 -79
  15. data/_data/locales/my-MM.yml +79 -79
  16. data/_data/locales/pt-BR.yml +79 -79
  17. data/_data/locales/ru-RU.yml +79 -79
  18. data/_data/locales/tr-TR.yml +79 -79
  19. data/_data/locales/uk-UA.yml +79 -79
  20. data/_data/locales/vi-VN.yml +77 -77
  21. data/_data/locales/zh-CN.yml +78 -78
  22. data/_data/share.yml +27 -27
  23. data/_includes/assets-origin.html +12 -12
  24. data/_includes/comments/disqus.html +54 -54
  25. data/_includes/comments/giscus.html +56 -56
  26. data/_includes/comments/utterances.html +51 -51
  27. data/_includes/comments.html +5 -5
  28. data/_includes/datetime.html +21 -21
  29. data/_includes/favicons.html +17 -17
  30. data/_includes/footer.html +17 -36
  31. data/_includes/google-analytics.html +14 -14
  32. data/_includes/head.html +116 -116
  33. data/_includes/js-selector.html +104 -104
  34. data/_includes/jsdelivr-combine.html +32 -32
  35. data/_includes/lang.html +8 -8
  36. data/_includes/language-alias.html +70 -70
  37. data/_includes/mermaid.html +57 -57
  38. data/_includes/mode-toggle.html +129 -129
  39. data/_includes/no-linenos.html +10 -10
  40. data/_includes/post-nav.html +30 -30
  41. data/_includes/post-paginator.html +88 -88
  42. data/_includes/post-sharing.html +27 -27
  43. data/_includes/read-time.html +30 -30
  44. data/_includes/refactor-content.html +282 -282
  45. data/_includes/related-posts.html +103 -103
  46. data/_includes/search-loader.html +46 -46
  47. data/_includes/search-results.html +11 -11
  48. data/_includes/sidebar.html +93 -93
  49. data/_includes/toc.html +16 -16
  50. data/_includes/topbar.html +70 -70
  51. data/_includes/trending-tags.html +50 -50
  52. data/_includes/update-list.html +40 -40
  53. data/_layouts/archives.html +48 -48
  54. data/_layouts/categories.html +120 -120
  55. data/_layouts/category.html +24 -24
  56. data/_layouts/compress.html +10 -10
  57. data/_layouts/default.html +74 -74
  58. data/_layouts/home.html +103 -103
  59. data/_layouts/page.html +64 -64
  60. data/_layouts/post.html +159 -159
  61. data/_layouts/tag.html +23 -23
  62. data/_layouts/tags.html +23 -23
  63. data/_plugins/posts-lastmod-hook.rb +14 -14
  64. data/_sass/addon/commons.scss +1678 -1680
  65. data/_sass/addon/module.scss +151 -151
  66. data/_sass/addon/syntax.scss +289 -289
  67. data/_sass/addon/variables.scss +34 -34
  68. data/_sass/colors/dark-syntax.scss +88 -88
  69. data/_sass/colors/dark-typography.scss +157 -157
  70. data/_sass/colors/light-syntax.scss +84 -84
  71. data/_sass/colors/light-typography.scss +94 -94
  72. data/_sass/layout/archives.scss +147 -147
  73. data/_sass/layout/categories.scss +67 -67
  74. data/_sass/layout/category-tag.scss +73 -73
  75. data/_sass/layout/home.scss +184 -184
  76. data/_sass/layout/post.scss +369 -369
  77. data/_sass/layout/tags.scss +19 -19
  78. data/_sass/variables-hook.scss +3 -3
  79. data/_tabs/about.md +8 -8
  80. data/_tabs/archives.md +7 -7
  81. data/_tabs/categories.md +6 -6
  82. data/_tabs/tags.md +6 -6
  83. data/assets/404.html +16 -16
  84. data/assets/css/style.scss +12 -12
  85. data/assets/feed.xml +61 -61
  86. data/assets/img/favicons/browserconfig.xml +13 -13
  87. data/assets/img/favicons/site.webmanifest +26 -26
  88. data/assets/js/data/search.json +18 -18
  89. data/assets/js/data/swcache.js +55 -55
  90. data/assets/js/pwa/app.js +47 -47
  91. data/assets/js/pwa/sw.js +89 -89
  92. data/assets/js/pwa/unregister.js +12 -12
  93. data/assets/robots.txt +10 -10
  94. data/index.html +4 -4
  95. metadata +7 -7
@@ -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>