jekyll-theme-chirpy 5.6.1 → 6.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_data/locales/ar.yml +5 -7
- data/_data/locales/bg-BG.yml +1 -3
- data/_data/locales/cs-CZ.yml +5 -7
- data/_data/locales/de-DE.yml +1 -3
- data/_data/locales/el-GR.yml +6 -8
- data/_data/locales/en.yml +5 -7
- data/_data/locales/es-ES.yml +2 -4
- data/_data/locales/fi-FI.yml +5 -7
- data/_data/locales/fr-FR.yml +0 -2
- data/_data/locales/hu-HU.yml +4 -6
- data/_data/locales/id-ID.yml +1 -3
- data/_data/locales/it-IT.yml +5 -8
- data/_data/locales/ko-KR.yml +3 -5
- data/_data/locales/my-MM.yml +1 -3
- data/_data/locales/pt-BR.yml +1 -3
- data/_data/locales/ru-RU.yml +1 -3
- data/_data/locales/sl-SI.yml +91 -0
- data/_data/locales/sv-SE.yml +91 -0
- data/_data/locales/tr-TR.yml +1 -3
- data/_data/locales/uk-UA.yml +1 -3
- data/_data/locales/vi-VN.yml +2 -3
- data/_data/locales/zh-CN.yml +3 -5
- data/_data/locales/zh-TW.yml +83 -0
- data/_data/{assets/cross_origin.yml → origin/cors.yml} +12 -12
- data/_includes/comments/giscus.html +39 -31
- data/_includes/datetime.html +10 -6
- data/_includes/footer.html +24 -26
- data/_includes/head.html +9 -9
- data/_includes/js-selector.html +44 -27
- data/_includes/jsdelivr-combine.html +0 -6
- data/_includes/lang.html +8 -0
- data/_includes/mermaid.html +28 -29
- data/_includes/metadata-hook.html +1 -0
- data/_includes/mode-toggle.html +44 -21
- data/_includes/{assets-origin.html → origin-type.html} +5 -4
- data/_includes/post-nav.html +27 -20
- data/_includes/post-paginator.html +13 -12
- data/_includes/post-sharing.html +21 -13
- data/_includes/read-time.html +17 -10
- data/_includes/refactor-content.html +31 -27
- data/_includes/related-posts.html +35 -34
- data/_includes/search-loader.html +23 -24
- data/_includes/search-results.html +3 -4
- data/_includes/sidebar.html +50 -52
- data/_includes/toc.html +2 -5
- data/_includes/topbar.html +47 -47
- data/_includes/trending-tags.html +13 -17
- data/_includes/update-list.html +13 -14
- data/_layouts/archives.html +5 -3
- data/_layouts/categories.html +97 -77
- data/_layouts/category.html +10 -8
- data/_layouts/default.html +34 -29
- data/_layouts/home.html +35 -18
- data/_layouts/page.html +38 -33
- data/_layouts/post.html +17 -15
- data/_layouts/tag.html +10 -8
- data/_layouts/tags.html +4 -5
- data/_sass/addon/commons.scss +260 -439
- data/_sass/addon/module.scss +18 -8
- data/_sass/addon/syntax.scss +42 -41
- data/_sass/addon/variables.scss +8 -11
- data/_sass/colors/dark-syntax.scss +1 -0
- data/_sass/colors/dark-typography.scss +16 -24
- data/_sass/colors/light-syntax.scss +3 -3
- data/_sass/colors/light-typography.scss +16 -15
- data/_sass/jekyll-theme-chirpy.scss +14 -19
- data/_sass/layout/categories.scss +20 -4
- data/_sass/layout/home.scss +111 -94
- data/_sass/layout/post.scss +35 -32
- data/assets/404.html +3 -1
- data/assets/css/style.scss +1 -7
- data/assets/feed.xml +1 -1
- data/assets/js/dist/categories.min.js +2 -2
- data/assets/js/dist/commons.min.js +2 -2
- data/assets/js/dist/home.min.js +6 -0
- data/assets/js/dist/misc.min.js +2 -2
- data/assets/js/dist/page.min.js +2 -2
- data/assets/js/dist/post.min.js +2 -2
- metadata +11 -5
- /data/_data/{assets/self_host.yml → origin/basic.yml} +0 -0
data/_data/locales/zh-CN.yml
CHANGED
@@ -39,7 +39,7 @@ copyright:
|
|
39
39
|
verbose: >-
|
40
40
|
除非另有说明,本网站上的博客文章均由作者按照知识共享署名 4.0 国际 (CC BY 4.0) 许可协议进行授权。
|
41
41
|
|
42
|
-
meta:
|
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:
|
80
|
-
dayjs:
|
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;
|
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.
|
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@
|
23
|
-
js: https://cdn.jsdelivr.net/npm/bootstrap@
|
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.
|
27
|
-
js: https://cdn.jsdelivr.net/npm/tocbot@4.
|
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.
|
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.
|
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.
|
41
|
-
locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.
|
42
|
-
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.
|
43
|
-
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.
|
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
|
-
|
4
|
-
const origin =
|
5
|
-
const iframe =
|
6
|
-
const lightTheme =
|
7
|
-
const darkTheme =
|
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 (
|
11
|
-
|
12
|
-
|
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
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
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(
|
33
|
-
Object.entries(giscusAttributes).forEach(([key, value]) =>
|
34
|
-
|
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(
|
37
|
-
if (
|
38
|
-
|
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 =
|
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>
|
data/_includes/datetime.html
CHANGED
@@ -4,12 +4,16 @@
|
|
4
4
|
-->
|
5
5
|
|
6
6
|
{% assign wrap_elem = include.wrap | default: 'em' %}
|
7
|
-
{% assign df_strftime = site.data.locales[
|
8
|
-
{% assign df_dayjs = site.data.locales[
|
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 }}
|
11
|
-
|
12
|
-
|
13
|
-
|
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 }}>
|
data/_includes/footer.html
CHANGED
@@ -1,36 +1,34 @@
|
|
1
1
|
<!-- The Footer -->
|
2
2
|
|
3
3
|
<footer>
|
4
|
-
<div class="container
|
5
|
-
<div class="d-flex justify-content-
|
6
|
-
<
|
7
|
-
|
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
|
-
|
9
|
+
{%- endcapture -%}
|
23
10
|
|
24
|
-
|
11
|
+
{%- capture _theme -%}
|
25
12
|
<a href="https://github.com/cotes2020/jekyll-theme-chirpy" target="_blank" rel="noopener">Chirpy</a>
|
26
|
-
|
13
|
+
{%- endcapture -%}
|
14
|
+
|
15
|
+
{{ site.data.locales[include.lang].meta | replace: ':PLATFORM', _platform | replace: ':THEME', _theme }}
|
16
|
+
</p>
|
27
17
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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.
|
61
|
+
<link href="{{ site.data.origin[type].webfonts | relative_url }}" rel="stylesheet">
|
62
62
|
|
63
63
|
{% else %}
|
64
|
-
{% for cdn in site.data.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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>
|
data/_includes/js-selector.html
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
-
{%
|
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
|
43
|
+
{% assign urls = urls
|
44
|
+
| append: ','
|
45
|
+
| append: site.data.origin[type].dayjs.js.common
|
33
46
|
| append: ','
|
34
|
-
| append: site.data.
|
47
|
+
| append: site.data.origin[type].dayjs.js.locale
|
35
48
|
| replace: ':LOCALE', locale
|
36
49
|
| append: ','
|
37
|
-
| append: site.data.
|
50
|
+
| append: site.data.origin[type].dayjs.js.relativeTime
|
38
51
|
| append: ','
|
39
|
-
| append: site.data.
|
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
|
-
|
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
|
48
|
-
{% when '
|
49
|
-
{% assign
|
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
|
72
|
+
{% assign js = 'commons' %}
|
52
73
|
{% endcase %}
|
53
74
|
|
54
|
-
{% capture script %}/assets/js/dist/{{
|
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.
|
77
|
-
<script id="MathJax-script" async src="{{ site.data.
|
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 %}
|
data/_includes/lang.html
ADDED
data/_includes/mermaid.html
CHANGED
@@ -1,59 +1,58 @@
|
|
1
|
-
<!--
|
2
|
-
|
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 ===
|
8
|
+
if (typeof mermaid === 'undefined') {
|
17
9
|
return;
|
18
10
|
}
|
19
11
|
|
20
|
-
let expectedTheme =
|
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
|
-
$(
|
16
|
+
$('.mermaid').each(function () {
|
25
17
|
let svgCode = $(this).prev().children().html();
|
26
|
-
$(this).removeAttr(
|
18
|
+
$(this).removeAttr('data-processed');
|
27
19
|
$(this).html(svgCode);
|
28
20
|
});
|
29
21
|
|
30
22
|
mermaid.initialize(config);
|
31
|
-
mermaid.init(undefined,
|
23
|
+
mermaid.init(undefined, '.mermaid');
|
32
24
|
}
|
33
25
|
}
|
34
26
|
|
35
|
-
let initTheme =
|
27
|
+
let initTheme = 'default';
|
28
|
+
const html = document.documentElement;
|
36
29
|
|
37
|
-
if (
|
38
|
-
|
39
|
-
|
40
|
-
|
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
|
38
|
+
theme: initTheme /* <default|dark|forest|neutral> */
|
45
39
|
};
|
46
40
|
|
47
41
|
/* Create mermaid tag */
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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(
|
56
|
+
window.addEventListener('message', updateMermaid);
|
57
57
|
})();
|
58
|
-
|
59
58
|
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- A placeholder to allow defining custom metadata -->
|