jekyll-theme-abd3lraouf 5.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +105 -0
  4. data/_config.yml +206 -0
  5. data/_data/assets/cross_origin.yml +62 -0
  6. data/_data/assets/self_host.yml +51 -0
  7. data/_data/authors.yml +17 -0
  8. data/_data/contact.yml +30 -0
  9. data/_data/locales/bg-BG.yml +83 -0
  10. data/_data/locales/en.yml +83 -0
  11. data/_data/locales/es-ES.yml +79 -0
  12. data/_data/locales/fr-FR.yml +79 -0
  13. data/_data/locales/hu-HU.yml +81 -0
  14. data/_data/locales/id-ID.yml +79 -0
  15. data/_data/locales/ko-KR.yml +79 -0
  16. data/_data/locales/my-MM.yml +79 -0
  17. data/_data/locales/pt-BR.yml +79 -0
  18. data/_data/locales/ru-RU.yml +79 -0
  19. data/_data/locales/tr-TR.yml +79 -0
  20. data/_data/locales/uk-UA.yml +79 -0
  21. data/_data/locales/vi-VN.yml +77 -0
  22. data/_data/locales/zh-CN.yml +78 -0
  23. data/_data/share.yml +27 -0
  24. data/_includes/assets-origin.html +12 -0
  25. data/_includes/comments/disqus.html +54 -0
  26. data/_includes/comments/giscus.html +56 -0
  27. data/_includes/comments/utterances.html +51 -0
  28. data/_includes/comments.html +5 -0
  29. data/_includes/datetime.html +21 -0
  30. data/_includes/favicons.html +17 -0
  31. data/_includes/footer.html +36 -0
  32. data/_includes/google-analytics.html +14 -0
  33. data/_includes/head.html +116 -0
  34. data/_includes/js-selector.html +104 -0
  35. data/_includes/jsdelivr-combine.html +32 -0
  36. data/_includes/lang.html +8 -0
  37. data/_includes/language-alias.html +70 -0
  38. data/_includes/mermaid.html +57 -0
  39. data/_includes/mode-toggle.html +129 -0
  40. data/_includes/no-linenos.html +10 -0
  41. data/_includes/post-nav.html +30 -0
  42. data/_includes/post-paginator.html +88 -0
  43. data/_includes/post-sharing.html +27 -0
  44. data/_includes/read-time.html +30 -0
  45. data/_includes/refactor-content.html +282 -0
  46. data/_includes/related-posts.html +103 -0
  47. data/_includes/search-loader.html +46 -0
  48. data/_includes/search-results.html +11 -0
  49. data/_includes/sidebar.html +93 -0
  50. data/_includes/toc.html +16 -0
  51. data/_includes/topbar.html +70 -0
  52. data/_includes/trending-tags.html +50 -0
  53. data/_includes/update-list.html +40 -0
  54. data/_layouts/archives.html +48 -0
  55. data/_layouts/categories.html +120 -0
  56. data/_layouts/category.html +24 -0
  57. data/_layouts/compress.html +10 -0
  58. data/_layouts/default.html +74 -0
  59. data/_layouts/home.html +103 -0
  60. data/_layouts/page.html +64 -0
  61. data/_layouts/post.html +159 -0
  62. data/_layouts/tag.html +23 -0
  63. data/_layouts/tags.html +23 -0
  64. data/_plugins/posts-lastmod-hook.rb +14 -0
  65. data/_sass/addon/commons.scss +1680 -0
  66. data/_sass/addon/module.scss +151 -0
  67. data/_sass/addon/syntax.scss +289 -0
  68. data/_sass/addon/variables.scss +34 -0
  69. data/_sass/colors/dark-syntax.scss +88 -0
  70. data/_sass/colors/dark-typography.scss +157 -0
  71. data/_sass/colors/light-syntax.scss +84 -0
  72. data/_sass/colors/light-typography.scss +94 -0
  73. data/_sass/jekyll-theme-abd3lraouf.scss +24 -0
  74. data/_sass/layout/archives.scss +147 -0
  75. data/_sass/layout/categories.scss +67 -0
  76. data/_sass/layout/category-tag.scss +73 -0
  77. data/_sass/layout/home.scss +184 -0
  78. data/_sass/layout/post.scss +369 -0
  79. data/_sass/layout/tags.scss +19 -0
  80. data/_sass/variables-hook.scss +3 -0
  81. data/_tabs/about.md +8 -0
  82. data/_tabs/archives.md +7 -0
  83. data/_tabs/categories.md +6 -0
  84. data/_tabs/tags.md +6 -0
  85. data/assets/404.html +16 -0
  86. data/assets/css/style.scss +12 -0
  87. data/assets/feed.xml +61 -0
  88. data/assets/img/favicons/android-chrome-192x192.png +0 -0
  89. data/assets/img/favicons/android-chrome-512x512.png +0 -0
  90. data/assets/img/favicons/apple-touch-icon.png +0 -0
  91. data/assets/img/favicons/browserconfig.xml +13 -0
  92. data/assets/img/favicons/favicon-16x16.png +0 -0
  93. data/assets/img/favicons/favicon-32x32.png +0 -0
  94. data/assets/img/favicons/favicon.ico +0 -0
  95. data/assets/img/favicons/mstile-150x150.png +0 -0
  96. data/assets/img/favicons/site.webmanifest +26 -0
  97. data/assets/js/data/search.json +18 -0
  98. data/assets/js/data/swcache.js +55 -0
  99. data/assets/js/dist/categories.min.js +6 -0
  100. data/assets/js/dist/commons.min.js +6 -0
  101. data/assets/js/dist/home.min.js +6 -0
  102. data/assets/js/dist/misc.min.js +6 -0
  103. data/assets/js/dist/page.min.js +6 -0
  104. data/assets/js/dist/post.min.js +6 -0
  105. data/assets/js/dist/pvreport.min.js +6 -0
  106. data/assets/js/pwa/app.js +47 -0
  107. data/assets/js/pwa/sw.js +89 -0
  108. data/assets/js/pwa/unregister.js +12 -0
  109. data/assets/robots.txt +10 -0
  110. data/index.html +4 -0
  111. metadata +243 -0
@@ -0,0 +1,79 @@
1
+ # The layout text of site
2
+
3
+ # ----- Commons label -----
4
+
5
+ layout:
6
+ post: Публікація
7
+ category: Категорія
8
+ tag: Тег
9
+
10
+ # The tabs of sidebar
11
+ tabs:
12
+ # format: <filename_without_extension>: <value>
13
+ home: Домашня сторінка
14
+ categories: Категорії
15
+ tags: Теги
16
+ archives: Архів
17
+ about: Про сайт
18
+
19
+ # the text displayed in the search bar & search results
20
+ search:
21
+ hint: пошук
22
+ cancel: Скасувати
23
+ no_results: Ох! Нічого не знайдено.
24
+
25
+ panel:
26
+ lastmod: Нещодавно оновлено
27
+ trending_tags: Популярні теги
28
+ toc: Зміст
29
+
30
+ copyright:
31
+ # Shown at the bottom of the post
32
+ license:
33
+ template: Публікація захищена ліцензією :LICENSE_NAME.
34
+ name: CC BY 4.0
35
+ link: https://creativecommons.org/licenses/by/4.0/
36
+
37
+ # Displayed in the footer
38
+ brief: Деякі права захищено.
39
+ verbose: >-
40
+ Публікації на сайті захищено ліцензією Creative Commons Attribution 4.0 International (CC BY 4.0),
41
+ якщо інше не вказано в тексті.
42
+
43
+ meta: Powered by :PLATFORM with :THEME theme.
44
+
45
+ not_found:
46
+ statment: Вибачте, це посилання вказує на ресурс, що не існує.
47
+
48
+ notification:
49
+ update_found: Доступна нова версія вмісту.
50
+ update: Оновлення
51
+
52
+ # ----- Posts related labels -----
53
+
54
+ post:
55
+ written_by: Автор
56
+ posted: Час публікації
57
+ updated: Оновлено
58
+ words: слів
59
+ pageview_measure: переглядів
60
+ read_time:
61
+ unit: хвилин
62
+ prompt: читання
63
+ relate_posts: Вас також може зацікавити
64
+ share: Поділитися
65
+ button:
66
+ next: Попередня публікація
67
+ previous: Наступна публікація
68
+ copy_code:
69
+ succeed: Успішно скопійовано!
70
+ share_link:
71
+ title: Скопіювати посилання
72
+ succeed: Посилання успішно скопійовано!
73
+ # pinned prompt of posts list on homepage
74
+ pin_prompt: Закріплено
75
+
76
+ # categories page
77
+ categories:
78
+ category_measure: категорії
79
+ post_measure: публікації
@@ -0,0 +1,77 @@
1
+ # The layout text of site
2
+
3
+ # ----- Commons label -----
4
+
5
+ layout:
6
+ post: Bài viết
7
+ category: Danh mục
8
+ tag: Thẻ
9
+
10
+ # The tabs of sidebar
11
+ tabs:
12
+ # format: <filename_without_extension>: <value>
13
+ home: Trang chủ
14
+ categories: Các danh mục
15
+ tags: Các thẻ
16
+ archives: Lưu trữ
17
+ about: Giới thiệu
18
+
19
+ # the text displayed in the search bar & search results
20
+ search:
21
+ hint: tìm kiếm
22
+ cancel: Hủy
23
+ no_results: Không có kết quả tìm kiếm.
24
+
25
+ panel:
26
+ lastmod: Mới cập nhật
27
+ trending_tags: Các thẻ thịnh hành
28
+ toc: Mục lục
29
+
30
+ copyright:
31
+ # Shown at the bottom of the post
32
+ license:
33
+ template: Bài viết này được cấp phép bởi tác giả theo giấy phép :LICENSE_NAME.
34
+ name: CC BY 4.0
35
+ link: https://creativecommons.org/licenses/by/4.0/
36
+
37
+ # Displayed in the footer
38
+ brief: Một số quyền được bảo lưu.
39
+ verbose: >-
40
+ Trừ khi có ghi chú khác, các bài viết đăng trên trang này được cấp phép bởi tác giả theo giấy phép Creative Commons Attribution 4.0 International (CC BY 4.0).
41
+ meta: Trang web này được tạo bởi :PLATFORM với chủ đề :THEME.
42
+
43
+ not_found:
44
+ statment: Xin lỗi, chúng tôi đã đặt nhầm URL hoặc đường dẫn trỏ đến một trang nào đó không tồn tại.
45
+
46
+ notification:
47
+ update_found: Đã có phiên bản mới của nội dung.
48
+ update: Cập nhật
49
+
50
+ # ----- Posts related labels -----
51
+
52
+ post:
53
+ written_by: Viết bởi
54
+ posted: Đăng lúc
55
+ updated: Cập nhật lúc
56
+ words: từ
57
+ pageview_measure: lượt xem
58
+ read_time:
59
+ unit: phút
60
+ prompt: đọc
61
+ relate_posts: Bài viết liên quan
62
+ share: Chia sẻ
63
+ button:
64
+ next: Mới hơn
65
+ previous: Cũ hơn
66
+ copy_code:
67
+ succeed: Đã sao chép!
68
+ share_link:
69
+ title: Sao chép đường dẫn
70
+ succeed: Đã sao chép đường dẫn thành công!
71
+ # pinned prompt of posts list on homepage
72
+ pin_prompt: Bài ghim
73
+
74
+ # categories page
75
+ categories:
76
+ category_measure: danh mục
77
+ post_measure: bài viết
@@ -0,0 +1,78 @@
1
+ # The layout text of site
2
+
3
+ # ----- Commons label -----
4
+
5
+ layout:
6
+ post: 文章
7
+ category: 分类
8
+ tag: 标签
9
+
10
+ # The tabs of sidebar
11
+ tabs:
12
+ # format: <filename_without_extension>: <value>
13
+ home: 首页
14
+ categories: 分类
15
+ tags: 标签
16
+ archives: 归档
17
+ about: 关于
18
+
19
+ # the text displayed in the search bar & search results
20
+ search:
21
+ hint: 搜索
22
+ cancel: 取消
23
+ no_results: 搜索结果为空
24
+
25
+ panel:
26
+ lastmod: 最近更新
27
+ trending_tags: 热门标签
28
+ toc: 文章内容
29
+
30
+ copyright:
31
+ # Shown at the bottom of the post
32
+ license:
33
+ template: 本文由作者按照 :LICENSE_NAME 进行授权
34
+ name: CC BY 4.0
35
+ link: https://creativecommons.org/licenses/by/4.0/
36
+
37
+ # Displayed in the footer
38
+ brief: 保留部分权利。
39
+ verbose: >-
40
+ 除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。
41
+
42
+ meta: 本站由 :PLATFORM 生成,采用 :THEME 主题。
43
+
44
+ not_found:
45
+ statment: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
46
+
47
+ notification:
48
+ update_found: 发现新版本的内容。
49
+ update: 更新
50
+
51
+ # ----- Posts related labels -----
52
+
53
+ post:
54
+ written_by: 作者
55
+ posted: 发表于
56
+ updated: 更新于
57
+ words: 字
58
+ pageview_measure: 次浏览
59
+ read_time:
60
+ unit: 分钟
61
+ prompt: 阅读
62
+ relate_posts: 相关文章
63
+ share: 分享
64
+ button:
65
+ next: 下一篇
66
+ previous: 上一篇
67
+ copy_code:
68
+ succeed: 已复制!
69
+ share_link:
70
+ title: 分享链接
71
+ succeed: 链接已复制!
72
+ # pinned prompt of posts list on homepage
73
+ pin_prompt: 顶置
74
+
75
+ # categories page
76
+ categories:
77
+ category_measure: 个分类
78
+ post_measure: 篇文章
data/_data/share.yml ADDED
@@ -0,0 +1,27 @@
1
+ # Sharing options at the bottom of the post.
2
+ # Icons from <https://fontawesome.com/>
3
+
4
+ platforms:
5
+ -
6
+ type: Twitter
7
+ icon: "fab fa-twitter"
8
+ link: "https://twitter.com/intent/tweet?text=TITLE&url=URL"
9
+ -
10
+ type: Facebook
11
+ icon: "fab fa-facebook-square"
12
+ link: "https://www.facebook.com/sharer/sharer.php?title=TITLE&u=URL"
13
+ -
14
+ type: Telegram
15
+ icon: "fab fa-telegram"
16
+ link: "https://t.me/share/url?url=URL&text=TITLE"
17
+
18
+ # Uncomment below if you need to.
19
+ # -
20
+ # type: Linkedin
21
+ # icon: "fab fa-linkedin"
22
+ # link: "https://www.linkedin.com/sharing/share-offsite/?url=URL"
23
+ #
24
+ # -
25
+ # type: Weibo
26
+ # icon: "fab fa-weibo"
27
+ # link: "http://service.weibo.com/share/share.php?title=TITLE&url=URL"
@@ -0,0 +1,12 @@
1
+ {% comment %} Site static assets origin {% endcomment %}
2
+ {% assign origin = 'cross_origin' %}
3
+
4
+ {% if site.assets.self_host.enabled %}
5
+ {% if site.assets.self_host.env %}
6
+ {% if site.assets.self_host.env == jekyll.environment %}
7
+ {% assign origin = 'self_host' %}
8
+ {% endif %}
9
+ {% else %}
10
+ {% assign origin = 'self_host' %}
11
+ {% endif %}
12
+ {% endif %}
@@ -0,0 +1,54 @@
1
+ <!--
2
+ The Disqus lazy loading.
3
+ -->
4
+ <div id="disqus_thread" class="pt-2 pb-2">
5
+ <p class="text-center text-muted small">
6
+ Comments powered by <a href="https://disqus.com/">Disqus</a>.
7
+ </p>
8
+ </div>
9
+
10
+ <script type="text/javascript">
11
+
12
+ var disqus_config = function () {
13
+ this.page.url = '{{ page.url | absolute_url }}';
14
+ this.page.identifier = '{{ page.url }}';
15
+ };
16
+
17
+ /* Lazy loading */
18
+
19
+ var disqus_observer = new IntersectionObserver(function (entries) {
20
+ if(entries[0].isIntersecting) {
21
+ (function () {
22
+ var d = document, s = d.createElement('script');
23
+ s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
24
+ s.setAttribute('data-timestamp', +new Date());
25
+ (d.head || d.body).appendChild(s);
26
+ })();
27
+
28
+ disqus_observer.disconnect();
29
+ }
30
+ }, { threshold: [0] });
31
+
32
+ disqus_observer.observe(document.querySelector('#disqus_thread'));
33
+
34
+ /* Auto switch theme */
35
+
36
+ function reloadDisqus() {
37
+ /* Disqus hasn't been loaded */
38
+ if (typeof DISQUS === "undefined") {
39
+ return;
40
+ }
41
+
42
+ if (document.readyState == 'complete') {
43
+ DISQUS.reset({ reload: true, config: disqus_config });
44
+ }
45
+ }
46
+
47
+ const modeToggle = document.querySelector(".mode-toggle");
48
+
49
+ if (typeof modeToggle !== "undefined") {
50
+ /* modeToggle.addEventListener('click', reloadDisqus); // not pretty for 'color-scheme' */
51
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', reloadDisqus);
52
+ }
53
+
54
+ </script>
@@ -0,0 +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>
@@ -0,0 +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>
@@ -0,0 +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 %}
@@ -0,0 +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 }}>
@@ -0,0 +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">
@@ -0,0 +1,36 @@
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>
@@ -0,0 +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>
@@ -0,0 +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>