jekyll-theme-chirpy 5.6.1 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/_data/locales/ar.yml +5 -7
  3. data/_data/locales/bg-BG.yml +1 -3
  4. data/_data/locales/cs-CZ.yml +5 -7
  5. data/_data/locales/de-DE.yml +1 -3
  6. data/_data/locales/el-GR.yml +6 -8
  7. data/_data/locales/en.yml +5 -7
  8. data/_data/locales/es-ES.yml +2 -4
  9. data/_data/locales/fi-FI.yml +5 -7
  10. data/_data/locales/fr-FR.yml +0 -2
  11. data/_data/locales/hu-HU.yml +4 -6
  12. data/_data/locales/id-ID.yml +1 -3
  13. data/_data/locales/it-IT.yml +5 -8
  14. data/_data/locales/ko-KR.yml +3 -5
  15. data/_data/locales/my-MM.yml +1 -3
  16. data/_data/locales/pt-BR.yml +1 -3
  17. data/_data/locales/ru-RU.yml +1 -3
  18. data/_data/locales/sl-SI.yml +91 -0
  19. data/_data/locales/sv-SE.yml +91 -0
  20. data/_data/locales/tr-TR.yml +1 -3
  21. data/_data/locales/uk-UA.yml +1 -3
  22. data/_data/locales/vi-VN.yml +2 -3
  23. data/_data/locales/zh-CN.yml +3 -5
  24. data/_data/locales/zh-TW.yml +83 -0
  25. data/_data/{assets/cross_origin.yml → origin/cors.yml} +12 -12
  26. data/_includes/comments/giscus.html +39 -31
  27. data/_includes/datetime.html +10 -6
  28. data/_includes/footer.html +24 -26
  29. data/_includes/head.html +9 -9
  30. data/_includes/js-selector.html +44 -27
  31. data/_includes/jsdelivr-combine.html +0 -6
  32. data/_includes/lang.html +8 -0
  33. data/_includes/mermaid.html +28 -29
  34. data/_includes/metadata-hook.html +1 -0
  35. data/_includes/mode-toggle.html +44 -21
  36. data/_includes/{assets-origin.html → origin-type.html} +5 -4
  37. data/_includes/post-nav.html +27 -20
  38. data/_includes/post-paginator.html +13 -12
  39. data/_includes/post-sharing.html +21 -13
  40. data/_includes/read-time.html +17 -10
  41. data/_includes/refactor-content.html +31 -27
  42. data/_includes/related-posts.html +35 -34
  43. data/_includes/search-loader.html +23 -24
  44. data/_includes/search-results.html +3 -4
  45. data/_includes/sidebar.html +50 -52
  46. data/_includes/toc.html +2 -5
  47. data/_includes/topbar.html +47 -47
  48. data/_includes/trending-tags.html +13 -17
  49. data/_includes/update-list.html +13 -14
  50. data/_layouts/archives.html +5 -3
  51. data/_layouts/categories.html +97 -77
  52. data/_layouts/category.html +10 -8
  53. data/_layouts/default.html +34 -29
  54. data/_layouts/home.html +35 -18
  55. data/_layouts/page.html +38 -33
  56. data/_layouts/post.html +17 -15
  57. data/_layouts/tag.html +10 -8
  58. data/_layouts/tags.html +4 -5
  59. data/_sass/addon/commons.scss +260 -439
  60. data/_sass/addon/module.scss +18 -8
  61. data/_sass/addon/syntax.scss +42 -41
  62. data/_sass/addon/variables.scss +8 -11
  63. data/_sass/colors/dark-syntax.scss +1 -0
  64. data/_sass/colors/dark-typography.scss +16 -24
  65. data/_sass/colors/light-syntax.scss +3 -3
  66. data/_sass/colors/light-typography.scss +16 -15
  67. data/_sass/jekyll-theme-chirpy.scss +14 -19
  68. data/_sass/layout/categories.scss +20 -4
  69. data/_sass/layout/home.scss +111 -94
  70. data/_sass/layout/post.scss +35 -32
  71. data/assets/404.html +3 -1
  72. data/assets/css/style.scss +1 -7
  73. data/assets/feed.xml +1 -1
  74. data/assets/js/dist/categories.min.js +2 -2
  75. data/assets/js/dist/commons.min.js +2 -2
  76. data/assets/js/dist/home.min.js +6 -0
  77. data/assets/js/dist/misc.min.js +2 -2
  78. data/assets/js/dist/page.min.js +2 -2
  79. data/assets/js/dist/post.min.js +2 -2
  80. metadata +11 -5
  81. /data/_data/{assets/self_host.yml → origin/basic.yml} +0 -0
@@ -39,7 +39,7 @@ copyright:
39
39
  verbose: >-
40
40
  除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。
41
41
 
42
- meta: 本站由 :PLATFORM 生成,采用 :THEME 主题。
42
+ meta: 本站采用 :PLATFORM 主题 :THEME
43
43
 
44
44
  not_found:
45
45
  statment: 抱歉,我们放错了该 URL,或者它指向了不存在的内容。
@@ -69,15 +69,13 @@ post:
69
69
  share_link:
70
70
  title: 分享链接
71
71
  succeed: 链接已复制!
72
- # pinned prompt of posts list on homepage
73
- pin_prompt: 顶置
74
72
 
75
73
  # Date time format.
76
74
  # See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
77
75
  df:
78
76
  post:
79
- strftime: '%Y/%m/%d'
80
- dayjs: 'YYYY/MM/DD'
77
+ strftime: "%Y/%m/%d"
78
+ dayjs: "YYYY/MM/DD"
81
79
 
82
80
  # categories page
83
81
  categories:
@@ -0,0 +1,83 @@
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
+
73
+ # Date time format.
74
+ # See: <http://strftime.net/>, <https://day.js.org/docs/en/display/format>
75
+ df:
76
+ post:
77
+ strftime: "%Y/%m/%d"
78
+ dayjs: "YYYY/MM/DD"
79
+
80
+ # categories page
81
+ categories:
82
+ category_measure: 個分類
83
+ post_measure: 篇文章
@@ -11,36 +11,36 @@ cdns:
11
11
 
12
12
  # fonts
13
13
 
14
- webfonts: https://fonts.googleapis.com/css2?family=Lato&family=Source+Sans+Pro:wght@400;600;700;900&display=swap
14
+ webfonts: https://fonts.googleapis.com/css2?family=Lato&family=Source+Sans+Pro:wght@400;600;900&display=swap
15
15
 
16
16
  # Libraries
17
17
 
18
18
  jquery:
19
- js: https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.min.js
19
+ js: https://cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js
20
20
 
21
21
  bootstrap:
22
- css: https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css
23
- js: https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js
22
+ css: https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css
23
+ js: https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js
24
24
 
25
25
  toc:
26
- css: https://cdn.jsdelivr.net/npm/tocbot@4.20.1/dist/tocbot.min.css
27
- js: https://cdn.jsdelivr.net/npm/tocbot@4.20.1/dist/tocbot.min.js
26
+ css: https://cdn.jsdelivr.net/npm/tocbot@4.21.0/dist/tocbot.min.css
27
+ js: https://cdn.jsdelivr.net/npm/tocbot@4.21.0/dist/tocbot.min.js
28
28
 
29
29
  fontawesome:
30
- css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.1/css/all.min.css
30
+ css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/css/all.min.css
31
31
 
32
32
  search:
33
33
  js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
34
34
 
35
35
  mermaid:
36
- js: https://cdn.jsdelivr.net/npm/mermaid@9.2.2/dist/mermaid.min.js
36
+ js: https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js
37
37
 
38
38
  dayjs:
39
39
  js:
40
- common: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/dayjs.min.js
41
- locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/locale/:LOCALE.min.js
42
- relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/plugin/relativeTime.min.js
43
- localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.6/plugin/localizedFormat.min.js
40
+ common: https://cdn.jsdelivr.net/npm/dayjs@1.11.7/dayjs.min.js
41
+ locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.7/locale/:LOCALE.min.js
42
+ relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.7/plugin/relativeTime.min.js
43
+ localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.7/plugin/localizedFormat.min.js
44
44
 
45
45
  countup:
46
46
  js: https://cdn.jsdelivr.net/npm/countup.js@1.9.3/dist/countUp.min.js
@@ -1,44 +1,54 @@
1
1
  <!-- https://giscus.app/ -->
2
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";
3
+ (function () {
4
+ const origin = 'https://giscus.app';
5
+ const iframe = 'iframe.giscus-frame';
6
+ const lightTheme = 'light';
7
+ const darkTheme = 'dark_dimmed';
8
+
8
9
  let initTheme = lightTheme;
10
+ const html = document.documentElement;
9
11
 
10
- if ($("html[data-mode=dark]").length > 0
11
- || ($("html[data-mode]").length == 0
12
- && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
12
+ if (
13
+ (html.hasAttribute('data-mode') &&
14
+ html.getAttribute('data-mode') === 'dark') ||
15
+ (!html.hasAttribute('data-mode') &&
16
+ window.matchMedia('(prefers-color-scheme: dark)').matches)
17
+ ) {
13
18
  initTheme = darkTheme;
14
19
  }
15
20
 
16
21
  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": "{{ site.comments.giscus.reactions_enabled | default: '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": ""
22
+ src: 'https://giscus.app/client.js',
23
+ 'data-repo': '{{ site.comments.giscus.repo}}',
24
+ 'data-repo-id': '{{ site.comments.giscus.repo_id }}',
25
+ 'data-category': '{{ site.comments.giscus.category }}',
26
+ 'data-category-id': '{{ site.comments.giscus.category_id }}',
27
+ 'data-mapping': '{{ site.comments.giscus.mapping | default: 'pathname' }}',
28
+ 'data-reactions-enabled': '{{ site.comments.giscus.reactions_enabled | default: '1' }}',
29
+ 'data-emit-metadata': '0',
30
+ 'data-theme': initTheme,
31
+ 'data-input-position': '{{ site.comments.giscus.input_position | default: 'bottom' }}',
32
+ 'data-lang': '{{ site.comments.giscus.lang | default: lang }}',
33
+ crossorigin: 'anonymous',
34
+ async: ''
30
35
  };
31
36
 
32
- let giscusScript = document.createElement("script");
33
- Object.entries(giscusAttributes).forEach(([key, value]) => giscusScript.setAttribute(key, value));
34
- document.getElementById("tail-wrapper").appendChild(giscusScript);
37
+ let giscusScript = document.createElement('script');
38
+ Object.entries(giscusAttributes).forEach(([key, value]) =>
39
+ giscusScript.setAttribute(key, value)
40
+ );
41
+ document.getElementById('tail-wrapper').appendChild(giscusScript);
35
42
 
36
- addEventListener("message", (event) => {
37
- if (event.source === window && event.data &&
38
- event.data.direction === ModeToggle.ID) {
43
+ addEventListener('message', (event) => {
44
+ if (
45
+ event.source === window &&
46
+ event.data &&
47
+ event.data.direction === ModeToggle.ID
48
+ ) {
39
49
  /* global theme mode changed */
40
50
  const mode = event.data.message;
41
- const theme = (mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme);
51
+ const theme = mode === ModeToggle.DARK_MODE ? darkTheme : lightTheme;
42
52
 
43
53
  const message = {
44
54
  setConfig: {
@@ -49,8 +59,6 @@
49
59
  const giscus = document.querySelector(iframe).contentWindow;
50
60
  giscus.postMessage({ giscus: message }, origin);
51
61
  }
52
-
53
62
  });
54
-
55
- });
63
+ })();
56
64
  </script>
@@ -4,12 +4,16 @@
4
4
  -->
5
5
 
6
6
  {% assign wrap_elem = include.wrap | default: 'em' %}
7
- {% assign df_strftime = site.data.locales[site.lang].df.post.strftime | default: '%d/%m/%Y' %}
8
- {% assign df_dayjs = site.data.locales[site.lang].df.post.dayjs | default: 'DD/MM/YYYY' %}
7
+ {% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %}
8
+ {% assign df_dayjs = site.data.locales[include.lang].df.post.dayjs | default: 'DD/MM/YYYY' %}
9
9
 
10
- <{{ wrap_elem }} class="{% if include.class %}{{ include.class }}{% endif %}"
11
- data-ts="{{ include.date | date: '%s' }}"
12
- data-df="{{ df_dayjs }}"
13
- {% if include.tooltip %}data-toggle="tooltip" data-placement="bottom"{% endif %}>
10
+ <{{ wrap_elem }}
11
+ class="{% if include.class %}{{ include.class }}{% endif %}"
12
+ data-ts="{{ include.date | date: '%s' }}"
13
+ data-df="{{ df_dayjs }}"
14
+ {% if include.tooltip %}
15
+ data-bs-toggle="tooltip" data-bs-placement="bottom"
16
+ {% endif %}
17
+ >
14
18
  {{ include.date | date: df_strftime }}
15
19
  </{{ wrap_elem }}>
@@ -1,36 +1,34 @@
1
1
  <!-- The Footer -->
2
2
 
3
3
  <footer>
4
- <div class="container pl-lg-4 pr-lg-4">
5
- <div class="d-flex justify-content-between align-items-center text-muted ml-md-3 mr-md-3">
6
- <div class="footer-left">
7
- <p class="mb-0">
8
- © {{ 'now' | date: "%Y" }}
9
- <a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
10
- {% if site.data.locales[site.lang].copyright.brief %}
11
- <span data-toggle="tooltip" data-placement="top"
12
- title="{{ site.data.locales[site.lang].copyright.verbose }}">{{ site.data.locales[site.lang].copyright.brief }}</span>
13
- {% endif %}
14
- </p>
15
- </div>
16
-
17
- <div class="footer-right">
18
- <p class="mb-0">
19
-
20
- {%- capture _platform -%}
4
+ <div class="container px-lg-4">
5
+ <div class="d-flex justify-content-center align-items-center text-muted mx-md-3">
6
+ <p>
7
+ {%- capture _platform -%}
21
8
  <a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>
22
- {%- endcapture -%}
9
+ {%- endcapture -%}
23
10
 
24
- {%- capture _theme -%}
11
+ {%- capture _theme -%}
25
12
  <a href="https://github.com/cotes2020/jekyll-theme-chirpy" target="_blank" rel="noopener">Chirpy</a>
26
- {%- endcapture -%}
13
+ {%- endcapture -%}
14
+
15
+ {{ site.data.locales[include.lang].meta | replace: ':PLATFORM', _platform | replace: ':THEME', _theme }}
16
+ </p>
27
17
 
28
- {{ site.data.locales[site.lang].meta
29
- | default: 'Using the :PLATFORM theme :THEME.'
30
- | replace: ':PLATFORM', _platform | replace: ':THEME', _theme
31
- }}
32
- </p>
33
- </div>
18
+ <p>
19
+ {{- '©' }}
20
+ {{ 'now' | date: '%Y' }}
21
+ <a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>.
22
+ {% if site.data.locales[include.lang].copyright.brief %}
23
+ <span
24
+ data-bs-toggle="tooltip"
25
+ data-bs-placement="top"
26
+ title="{{ site.data.locales[include.lang].copyright.verbose }}"
27
+ >
28
+ {{- site.data.locales[include.lang].copyright.brief -}}
29
+ </span>
30
+ {% endif %}
31
+ </p>
34
32
  </div>
35
33
  </div>
36
34
  </footer>
data/_includes/head.html CHANGED
@@ -58,15 +58,15 @@
58
58
  {% include favicons.html %}
59
59
 
60
60
  {% if site.resources.ignore_env != jekyll.environment and site.resources.self_hosted %}
61
- <link href="{{ site.data.assets[origin].webfonts | relative_url }}" rel="stylesheet">
61
+ <link href="{{ site.data.origin[type].webfonts | relative_url }}" rel="stylesheet">
62
62
 
63
63
  {% else %}
64
- {% for cdn in site.data.assets[origin].cdns %}
64
+ {% for cdn in site.data.origin[type].cdns %}
65
65
  <link rel="preconnect" href="{{ cdn.url }}" {{ cdn.args }}>
66
66
  <link rel="dns-prefetch" href="{{ cdn.url }}" {{ cdn.args }}>
67
67
  {% endfor %}
68
68
 
69
- <link rel="stylesheet" href="{{ site.data.assets[origin].webfonts | relative_url }}">
69
+ <link rel="stylesheet" href="{{ site.data.origin[type].webfonts | relative_url }}">
70
70
  {% endif %}
71
71
 
72
72
  <!-- GA -->
@@ -90,27 +90,27 @@
90
90
  {% endif %}
91
91
 
92
92
  <!-- Bootstrap -->
93
- <link rel="stylesheet" href="{{ site.data.assets[origin].bootstrap.css | relative_url}}">
93
+ <link rel="stylesheet" href="{{ site.data.origin[type].bootstrap.css | relative_url}}">
94
94
 
95
95
  <!-- Font Awesome -->
96
- <link rel="stylesheet" href="{{ site.data.assets[origin].fontawesome.css | relative_url }}">
96
+ <link rel="stylesheet" href="{{ site.data.origin[type].fontawesome.css | relative_url }}">
97
97
 
98
98
  <link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
99
99
 
100
100
  {% if site.toc and page.toc %}
101
- <link rel="stylesheet" href="{{ site.data.assets[origin].toc.css | relative_url }}">
101
+ <link rel="stylesheet" href="{{ site.data.origin[type].toc.css | relative_url }}">
102
102
  {% endif %}
103
103
 
104
104
  {% if page.layout == 'page' or page.layout == 'post' %}
105
105
  <!-- Manific Popup -->
106
- <link rel="stylesheet" href="{{ site.data.assets[origin].magnific-popup.css | relative_url }}">
106
+ <link rel="stylesheet" href="{{ site.data.origin[type].magnific-popup.css | relative_url }}">
107
107
  {% endif %}
108
108
 
109
109
  <!-- JavaScript -->
110
110
 
111
- <script src="{{ site.data.assets[origin].jquery.js | relative_url }}"></script>
112
-
113
111
  {% unless site.theme_mode %}
114
112
  {% include mode-toggle.html %}
115
113
  {% endunless %}
114
+
115
+ {% include metadata-hook.html %}
116
116
  </head>
@@ -1,24 +1,35 @@
1
1
  <!-- JS selector for site. -->
2
2
 
3
+ <!-- commons -->
4
+
5
+ {% assign urls = site.data.origin[type].jquery.js
6
+ | append: ','
7
+ | append: site.data.origin[type].bootstrap.js
8
+ | append: ','
9
+ | append: site.data.origin[type].search.js
10
+ %}
11
+
3
12
  <!-- layout specified -->
4
13
 
5
14
  {% if page.layout == 'post' %}
6
15
  {% if site.google_analytics.pv.proxy_endpoint or site.google_analytics.pv.cache_path %}
7
16
  <!-- pv-report needs countup.js -->
8
- <script async src="{{ site.data.assets[origin].countup.js | relative_url }}"></script>
17
+ {% assign urls = urls | append: ',' | append: site.data.origin[type].countup.js %}
9
18
  {% endif %}
10
19
  {% endif %}
11
20
 
12
- {% if page.layout == 'post' or page.layout == 'page' %}
13
- <!-- image lazy-loading & popup & clipboard -->
14
- {% assign _urls = site.data.assets[origin]['magnific-popup'].js
15
- | append: ','
16
- | append: site.data.assets[origin].lazysizes.js
17
- | append: ','
18
- | append: site.data.assets[origin].clipboard.js
19
- %}
21
+ {% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
22
+ {% assign urls = urls | append: ',' | append: site.data.origin[type].lazysizes.js %}
20
23
 
21
- {% include jsdelivr-combine.html urls=_urls %}
24
+ {% unless page.layout == 'home' %}
25
+ <!-- image lazy-loading & popup & clipboard -->
26
+ {% assign urls = urls
27
+ | append: ','
28
+ | append: site.data.origin[type]['magnific-popup'].js
29
+ | append: ','
30
+ | append: site.data.origin[type].clipboard.js
31
+ %}
32
+ {% endunless %}
22
33
  {% endif %}
23
34
 
24
35
  {% if page.layout == 'home'
@@ -29,29 +40,39 @@
29
40
  %}
30
41
  {% assign locale = site.lang | split: '-' | first %}
31
42
 
32
- {% assign _urls = site.data.assets[origin].dayjs.js.common
43
+ {% assign urls = urls
44
+ | append: ','
45
+ | append: site.data.origin[type].dayjs.js.common
33
46
  | append: ','
34
- | append: site.data.assets[origin].dayjs.js.locale
47
+ | append: site.data.origin[type].dayjs.js.locale
35
48
  | replace: ':LOCALE', locale
36
49
  | append: ','
37
- | append: site.data.assets[origin].dayjs.js.relativeTime
50
+ | append: site.data.origin[type].dayjs.js.relativeTime
38
51
  | append: ','
39
- | append: site.data.assets[origin].dayjs.js.localizedFormat
52
+ | append: site.data.origin[type].dayjs.js.localizedFormat
40
53
  %}
54
+ {% endif %}
55
+
56
+ {% if page.content contains '<h2' or page.content contains '<h3' and site.toc and page.toc %}
57
+ {% assign urls = urls | append: ',' | append: site.data.origin[type].toc.js %}
58
+ {% endif %}
41
59
 
42
- {% include jsdelivr-combine.html urls=_urls %}
60
+ {% if page.mermaid %}
61
+ {% assign urls = urls | append: ',' | append: site.data.origin[type].mermaid.js %}
43
62
  {% endif %}
44
63
 
64
+ {% include jsdelivr-combine.html urls=urls %}
65
+
45
66
  {% case page.layout %}
46
- {% when 'categories', 'post', 'page' %}
47
- {% assign type = page.layout %}
48
- {% when 'home', 'archives', 'category', 'tag' %}
49
- {% assign type = 'misc' %}
67
+ {% when 'home', 'categories', 'post', 'page' %}
68
+ {% assign js = page.layout %}
69
+ {% when 'archives', 'category', 'tag' %}
70
+ {% assign js = 'misc' %}
50
71
  {% else %}
51
- {% assign type = 'commons' %}
72
+ {% assign js = 'commons' %}
52
73
  {% endcase %}
53
74
 
54
- {% capture script %}/assets/js/dist/{{ type }}.min.js{% endcapture %}
75
+ {% capture script %}/assets/js/dist/{{ js }}.min.js{% endcapture %}
55
76
  <script defer src="{{ script | relative_url }}"></script>
56
77
 
57
78
  {% if page.math %}
@@ -73,14 +94,10 @@
73
94
  }
74
95
  };
75
96
  </script>
76
- <script src="{{ site.data.assets[origin].polyfill.js | relative_url }}"></script>
77
- <script id="MathJax-script" async src="{{ site.data.assets[origin].mathjax.js | relative_url }}"></script>
97
+ <script src="{{ site.data.origin[type].polyfill.js | relative_url }}"></script>
98
+ <script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
78
99
  {% endif %}
79
100
 
80
- <!-- commons -->
81
-
82
- <script src="{{ site.data.assets[origin].bootstrap.js | relative_url }}"></script>
83
-
84
101
  {% if jekyll.environment == 'production' %}
85
102
  <!-- PWA -->
86
103
  {% if site.pwa.enabled %}
@@ -5,7 +5,6 @@
5
5
  {% assign domain = 'https://cdn.jsdelivr.net/' %}
6
6
 
7
7
  {% for url in urls %}
8
-
9
8
  {% if url contains domain %}
10
9
  {% assign url_snippet = url | slice: domain.size, url.size %}
11
10
 
@@ -16,15 +15,10 @@
16
15
  {% endif %}
17
16
 
18
17
  {% elsif url contains '//' %}
19
-
20
18
  <script src="{{ url }}"></script>
21
-
22
19
  {% else %}
23
-
24
20
  <script src="{{ url | relative_url }}"></script>
25
-
26
21
  {% endif %}
27
-
28
22
  {% endfor %}
29
23
 
30
24
  {% if combined_urls %}
@@ -0,0 +1,8 @@
1
+ {% comment %}
2
+ Detect appearance language and return it through variable "lang"
3
+ {% endcomment %}
4
+ {% if site.data.locales[site.lang] %}
5
+ {% assign lang = site.lang %}
6
+ {% else %}
7
+ {% assign lang = 'en' %}
8
+ {% endif %}
@@ -1,59 +1,58 @@
1
- <!--
2
- mermaid-js loader
3
- -->
4
-
5
- <script src="{{ site.data.assets[origin].mermaid.js | relative_url }}"></script>
6
-
7
- <script>
1
+ <!-- mermaid-js loader -->
2
+ <script type="text/javascript">
8
3
  (function () {
9
-
10
4
  function updateMermaid(event) {
11
- if (event.source === window && event.data &&
12
- event.data.direction === ModeToggle.ID) {
13
-
5
+ if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
14
6
  const mode = event.data.message;
15
7
 
16
- if (typeof mermaid === "undefined") {
8
+ if (typeof mermaid === 'undefined') {
17
9
  return;
18
10
  }
19
11
 
20
- let expectedTheme = (mode === ModeToggle.DARK_MODE ? "dark" : "default");
21
- let config = {theme: expectedTheme};
12
+ let expectedTheme = mode === ModeToggle.DARK_MODE ? 'dark' : 'default';
13
+ let config = { theme: expectedTheme };
22
14
 
23
15
  /* Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344> */
24
- $(".mermaid").each(function () {
16
+ $('.mermaid').each(function () {
25
17
  let svgCode = $(this).prev().children().html();
26
- $(this).removeAttr("data-processed");
18
+ $(this).removeAttr('data-processed');
27
19
  $(this).html(svgCode);
28
20
  });
29
21
 
30
22
  mermaid.initialize(config);
31
- mermaid.init(undefined, ".mermaid");
23
+ mermaid.init(undefined, '.mermaid');
32
24
  }
33
25
  }
34
26
 
35
- let initTheme = "default";
27
+ let initTheme = 'default';
28
+ const html = document.documentElement;
36
29
 
37
- if ($("html[data-mode=dark]").length > 0
38
- || ($("html[data-mode]").length == 0
39
- && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
40
- initTheme = "dark";
30
+ if (
31
+ (html.hasAttribute('data-mode') && html.getAttribute('data-mode') === 'dark') ||
32
+ (!html.hasAttribute('data-mode') && window.matchMedia('(prefers-color-scheme: dark)').matches)
33
+ ) {
34
+ initTheme = 'dark';
41
35
  }
42
36
 
43
37
  let mermaidConf = {
44
- theme: initTheme /* <default|dark|forest|neutral> */
38
+ theme: initTheme /* <default|dark|forest|neutral> */
45
39
  };
46
40
 
47
41
  /* Create mermaid tag */
48
- $("pre").has("code.language-mermaid").each(function () {
49
- let svgCode = $(this).children().html();
50
- $(this).addClass("unloaded");
51
- $(this).after(`<pre class=\"mermaid\">${svgCode}</pre>`);
42
+ document.querySelectorAll('pre>code.language-mermaid').forEach((elem) => {
43
+ const svgCode = elem.textContent;
44
+ const backup = elem.parentElement;
45
+ backup.classList.add('unloaded');
46
+ /* create mermaid node */
47
+ let mermaid = document.createElement('pre');
48
+ mermaid.classList.add('mermaid');
49
+ const text = document.createTextNode(svgCode);
50
+ mermaid.appendChild(text);
51
+ backup.after(mermaid);
52
52
  });
53
53
 
54
54
  mermaid.initialize(mermaidConf);
55
55
 
56
- window.addEventListener("message", updateMermaid);
56
+ window.addEventListener('message', updateMermaid);
57
57
  })();
58
-
59
58
  </script>
@@ -0,0 +1 @@
1
+ <!-- A placeholder to allow defining custom metadata -->