jekyll-theme-chirpy-g 1.0.2
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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +61 -0
- data/_data/locales/ar.yml +91 -0
- data/_data/locales/bg-BG.yml +81 -0
- data/_data/locales/cs-CZ.yml +89 -0
- data/_data/locales/de-DE.yml +87 -0
- data/_data/locales/el-GR.yml +91 -0
- data/_data/locales/en.yml +91 -0
- data/_data/locales/es-ES.yml +77 -0
- data/_data/locales/fa-IR.yaml +91 -0
- data/_data/locales/fi-FI.yml +90 -0
- data/_data/locales/fr-FR.yml +77 -0
- data/_data/locales/hu-HU.yml +92 -0
- data/_data/locales/id-ID.yml +77 -0
- data/_data/locales/it-IT.yml +90 -0
- data/_data/locales/ko-KR.yml +84 -0
- data/_data/locales/my-MM.yml +77 -0
- data/_data/locales/nl-NL.yml +90 -0
- data/_data/locales/pt-BR.yml +77 -0
- data/_data/locales/ru-RU.yml +87 -0
- data/_data/locales/sl-SI.yml +91 -0
- data/_data/locales/sv-SE.yml +91 -0
- data/_data/locales/th.yml +91 -0
- data/_data/locales/tr-TR.yml +77 -0
- data/_data/locales/uk-UA.yml +77 -0
- data/_data/locales/vi-VN.yml +76 -0
- data/_data/locales/zh-CN.yml +83 -0
- data/_data/locales/zh-TW.yml +83 -0
- data/_data/origin/basic.yml +39 -0
- data/_data/origin/cors.yml +54 -0
- data/_includes/analytics/cloudflare.html +6 -0
- data/_includes/analytics/fathom.html +6 -0
- data/_includes/analytics/goatcounter.html +6 -0
- data/_includes/analytics/google.html +13 -0
- data/_includes/analytics/matomo.html +13 -0
- data/_includes/analytics/umami.html +6 -0
- data/_includes/comment.html +5 -0
- data/_includes/comments/disqus.html +57 -0
- data/_includes/comments/giscus.html +55 -0
- data/_includes/comments/utterances.html +38 -0
- data/_includes/datetime.html +20 -0
- data/_includes/embed/audio.html +35 -0
- data/_includes/embed/bilibili.html +9 -0
- data/_includes/embed/twitch.html +8 -0
- data/_includes/embed/video.html +59 -0
- data/_includes/embed/youtube.html +9 -0
- data/_includes/favicons.html +19 -0
- data/_includes/footer.html +49 -0
- data/_includes/head.html +126 -0
- data/_includes/js-selector.html +86 -0
- data/_includes/jsdelivr-combine.html +26 -0
- data/_includes/lang.html +10 -0
- data/_includes/language-alias.html +70 -0
- data/_includes/media-url.html +37 -0
- data/_includes/metadata-hook.html +1 -0
- data/_includes/notification.html +24 -0
- data/_includes/origin-type.html +13 -0
- data/_includes/pageviews/goatcounter.html +21 -0
- data/_includes/post-description.html +25 -0
- data/_includes/post-nav.html +34 -0
- data/_includes/post-paginator.html +91 -0
- data/_includes/post-sharing.html +52 -0
- data/_includes/read-time.html +37 -0
- data/_includes/refactor-content.html +255 -0
- data/_includes/related-posts.html +94 -0
- data/_includes/search-loader.html +49 -0
- data/_includes/search-results.html +10 -0
- data/_includes/sidebar.html +97 -0
- data/_includes/toc-status.html +10 -0
- data/_includes/toc.html +9 -0
- data/_includes/topbar.html +77 -0
- data/_includes/trending-tags.html +46 -0
- data/_includes/update-list.html +40 -0
- data/_layouts/archives.html +35 -0
- data/_layouts/categories.html +138 -0
- data/_layouts/category.html +24 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +86 -0
- data/_layouts/graph.html +8 -0
- data/_layouts/home.html +122 -0
- data/_layouts/page.html +20 -0
- data/_layouts/post.html +179 -0
- data/_layouts/tag.html +23 -0
- data/_layouts/tags.html +22 -0
- data/_sass/abstracts/_breakpoints.scss +73 -0
- data/_sass/abstracts/_index.scss +4 -0
- data/_sass/abstracts/_mixins.scss +80 -0
- data/_sass/abstracts/_placeholders.scss +160 -0
- data/_sass/abstracts/_variables.scss +30 -0
- data/_sass/base/_base.scss +476 -0
- data/_sass/base/_index.scss +4 -0
- data/_sass/base/_reset.scss +41 -0
- data/_sass/base/_syntax.scss +253 -0
- data/_sass/base/_typography.scss +266 -0
- data/_sass/components/_buttons.scss +51 -0
- data/_sass/components/_index.scss +2 -0
- data/_sass/components/_popups.scss +172 -0
- data/_sass/layout/_footer.scss +36 -0
- data/_sass/layout/_index.scss +4 -0
- data/_sass/layout/_panel.scss +70 -0
- data/_sass/layout/_sidebar.scss +258 -0
- data/_sass/layout/_topbar.scss +86 -0
- data/_sass/main.bundle.scss +2 -0
- data/_sass/main.scss +4 -0
- data/_sass/pages/_archives.scss +140 -0
- data/_sass/pages/_categories.scss +82 -0
- data/_sass/pages/_category-tag.scss +63 -0
- data/_sass/pages/_graph.scss +51 -0
- data/_sass/pages/_home.scss +173 -0
- data/_sass/pages/_index.scss +8 -0
- data/_sass/pages/_post.scss +498 -0
- data/_sass/pages/_search.scss +184 -0
- data/_sass/pages/_tags.scss +23 -0
- data/_sass/themes/_dark.scss +318 -0
- data/_sass/themes/_light.scss +330 -0
- data/assets/404.html +14 -0
- data/assets/css/jekyll-theme-chirpy-g.scss +10 -0
- data/assets/feed.xml +54 -0
- data/assets/img/favicons/android-chrome-192x192.png +0 -0
- data/assets/img/favicons/android-chrome-512x512.png +0 -0
- data/assets/img/favicons/apple-touch-icon.png +0 -0
- data/assets/img/favicons/browserconfig.xml +13 -0
- data/assets/img/favicons/favicon-16x16.png +0 -0
- data/assets/img/favicons/favicon-32x32.png +0 -0
- data/assets/img/favicons/favicon.ico +0 -0
- data/assets/img/favicons/mstile-150x150.png +0 -0
- data/assets/img/favicons/site.webmanifest +26 -0
- data/assets/js/data/graph.json +14 -0
- data/assets/js/data/mathjax.js +25 -0
- data/assets/js/data/search.json +20 -0
- data/assets/js/data/swconf.js +47 -0
- data/assets/js/dist/app.min.js +7 -0
- data/assets/js/dist/categories.min.js +4 -0
- data/assets/js/dist/commons.min.js +4 -0
- data/assets/js/dist/graph.min.js +4 -0
- data/assets/js/dist/home.min.js +4 -0
- data/assets/js/dist/misc.min.js +4 -0
- data/assets/js/dist/page.min.js +4 -0
- data/assets/js/dist/post.min.js +4 -0
- data/assets/js/dist/sw.min.js +7 -0
- data/assets/js/dist/theme.min.js +4 -0
- data/assets/robots.txt +10 -0
- metadata +286 -0
@@ -0,0 +1,76 @@
|
|
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
|
+
|
42
|
+
meta: Trang web này được tạo bởi :PLATFORM với chủ đề :THEME
|
43
|
+
|
44
|
+
not_found:
|
45
|
+
statement: 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.
|
46
|
+
|
47
|
+
notification:
|
48
|
+
update_found: Đã có phiên bản mới của nội dung.
|
49
|
+
update: Cập nhật
|
50
|
+
|
51
|
+
# ----- Posts related labels -----
|
52
|
+
|
53
|
+
post:
|
54
|
+
written_by: Viết bởi
|
55
|
+
posted: Đăng lúc
|
56
|
+
updated: Cập nhật lúc
|
57
|
+
words: từ
|
58
|
+
pageview_measure: lượt xem
|
59
|
+
read_time:
|
60
|
+
unit: phút
|
61
|
+
prompt: đọc
|
62
|
+
relate_posts: Bài viết liên quan
|
63
|
+
share: Chia sẻ
|
64
|
+
button:
|
65
|
+
next: Mới hơn
|
66
|
+
previous: Cũ hơn
|
67
|
+
copy_code:
|
68
|
+
succeed: Đã sao chép!
|
69
|
+
share_link:
|
70
|
+
title: Sao chép đường dẫn
|
71
|
+
succeed: Đã sao chép đường dẫn thành công!
|
72
|
+
|
73
|
+
# categories page
|
74
|
+
categories:
|
75
|
+
category_measure: danh mục
|
76
|
+
post_measure: bài viết
|
@@ -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
|
+
statement: 抱歉,我们放错了该 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: 篇文章
|
@@ -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
|
+
statement: 抱歉,您可能正在存取一個已被移動的 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: 篇文章
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# fonts
|
2
|
+
|
3
|
+
webfonts: /assets/lib/fonts/main.css
|
4
|
+
|
5
|
+
# Libraries
|
6
|
+
|
7
|
+
toc:
|
8
|
+
css: /assets/lib/tocbot/tocbot.min.css
|
9
|
+
js: /assets/lib/tocbot/tocbot.min.js
|
10
|
+
|
11
|
+
fontawesome:
|
12
|
+
css: /assets/lib/fontawesome-free/css/all.min.css
|
13
|
+
|
14
|
+
search:
|
15
|
+
js: /assets/lib/simple-jekyll-search/simple-jekyll-search.min.js
|
16
|
+
|
17
|
+
mermaid:
|
18
|
+
js: /assets/lib/mermaid/mermaid.min.js
|
19
|
+
|
20
|
+
dayjs:
|
21
|
+
js:
|
22
|
+
common: /assets/lib/dayjs/dayjs.min.js
|
23
|
+
locale: /assets/lib/dayjs/locale/en.js
|
24
|
+
relativeTime: /assets/lib/dayjs/plugin/relativeTime.js
|
25
|
+
localizedFormat: /assets/lib/dayjs/plugin/localizedFormat.js
|
26
|
+
|
27
|
+
glightbox:
|
28
|
+
css: /assets/lib/glightbox/glightbox.min.css
|
29
|
+
js: /assets/lib/glightbox/glightbox.min.js
|
30
|
+
|
31
|
+
lazy-polyfill:
|
32
|
+
css: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.min.css
|
33
|
+
js: /assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.umd.min.js
|
34
|
+
|
35
|
+
clipboard:
|
36
|
+
js: /assets/lib/clipboard/clipboard.min.js
|
37
|
+
|
38
|
+
mathjax:
|
39
|
+
js: /assets/lib/mathjax/tex-chtml.js
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Resource Hints
|
2
|
+
resource_hints:
|
3
|
+
- url: https://fonts.googleapis.com
|
4
|
+
links:
|
5
|
+
- rel: preconnect
|
6
|
+
- rel: dns-prefetch
|
7
|
+
- url: https://fonts.gstatic.com
|
8
|
+
links:
|
9
|
+
- rel: preconnect
|
10
|
+
opts: [crossorigin]
|
11
|
+
- rel: dns-prefetch
|
12
|
+
- url: https://cdn.jsdelivr.net
|
13
|
+
links:
|
14
|
+
- rel: preconnect
|
15
|
+
- rel: dns-prefetch
|
16
|
+
|
17
|
+
# Web Fonts
|
18
|
+
webfonts: https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Source+Sans+Pro:wght@400;600;700;900&display=swap
|
19
|
+
|
20
|
+
# Libraries
|
21
|
+
|
22
|
+
toc:
|
23
|
+
css: https://cdn.jsdelivr.net/npm/tocbot@4.32.2/dist/tocbot.min.css
|
24
|
+
js: https://cdn.jsdelivr.net/npm/tocbot@4.32.2/dist/tocbot.min.js
|
25
|
+
|
26
|
+
fontawesome:
|
27
|
+
css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.1/css/all.min.css
|
28
|
+
|
29
|
+
search:
|
30
|
+
js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
|
31
|
+
|
32
|
+
mermaid:
|
33
|
+
js: https://cdn.jsdelivr.net/npm/mermaid@11.4.0/dist/mermaid.min.js
|
34
|
+
|
35
|
+
dayjs:
|
36
|
+
js:
|
37
|
+
common: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js
|
38
|
+
locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/locale/:LOCALE.js
|
39
|
+
relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/relativeTime.js
|
40
|
+
localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/localizedFormat.js
|
41
|
+
|
42
|
+
glightbox:
|
43
|
+
css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css
|
44
|
+
js: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/js/glightbox.min.js
|
45
|
+
|
46
|
+
lazy-polyfill:
|
47
|
+
css: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.min.css
|
48
|
+
js: https://cdn.jsdelivr.net/npm/loading-attribute-polyfill@2.1.1/dist/loading-attribute-polyfill.umd.min.js
|
49
|
+
|
50
|
+
clipboard:
|
51
|
+
js: https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js
|
52
|
+
|
53
|
+
mathjax:
|
54
|
+
js: https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-chtml.js
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
2
|
+
<script defer src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics.google.id }}"></script>
|
3
|
+
<script>
|
4
|
+
document.addEventListener('DOMContentLoaded', () => {
|
5
|
+
window.dataLayer = window.dataLayer || [];
|
6
|
+
function gtag() {
|
7
|
+
dataLayer.push(arguments);
|
8
|
+
}
|
9
|
+
|
10
|
+
gtag('js', new Date());
|
11
|
+
gtag('config', '{{ site.analytics.google.id }}');
|
12
|
+
});
|
13
|
+
</script>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!-- Matomo -->
|
2
|
+
<script>
|
3
|
+
document.addEventListener('DOMContentLoaded', () => {
|
4
|
+
var _paq = (window._paq = window._paq || []);
|
5
|
+
_paq.push(['trackPageView']);
|
6
|
+
_paq.push(['enableLinkTracking']);
|
7
|
+
var u="//{{ site.analytics.matomo.domain }}/";
|
8
|
+
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
9
|
+
_paq.push(['setSiteId', {{ site.analytics.matomo.id }}]);
|
10
|
+
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
11
|
+
g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
12
|
+
});
|
13
|
+
</script>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<script>
|
2
|
+
var disqus_config = function () {
|
3
|
+
this.page.url = '{{ page.url | absolute_url }}';
|
4
|
+
this.page.identifier = '{{ page.url }}';
|
5
|
+
};
|
6
|
+
|
7
|
+
function addDisqus() {
|
8
|
+
let disqusThread = document.createElement('div');
|
9
|
+
let paragraph = document.createElement('p');
|
10
|
+
|
11
|
+
disqusThread.id = 'disqus_thread';
|
12
|
+
paragraph.className = 'text-center text-muted small';
|
13
|
+
paragraph.innerHTML = 'Comments powered by <a href="https://disqus.com/">Disqus</a>.';
|
14
|
+
disqusThread.appendChild(paragraph);
|
15
|
+
|
16
|
+
const footer = document.querySelector('footer');
|
17
|
+
footer.insertAdjacentElement("beforebegin", disqusThread);
|
18
|
+
}
|
19
|
+
|
20
|
+
{%- comment -%} Auto switch theme {%- endcomment -%}
|
21
|
+
function reloadDisqus(event) {
|
22
|
+
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
23
|
+
{%- comment -%} Disqus hasn't been loaded {%- endcomment -%}
|
24
|
+
if (typeof DISQUS === 'undefined') {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
|
28
|
+
if (document.readyState == 'complete') {
|
29
|
+
DISQUS.reset({ reload: true, config: disqus_config });
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
addDisqus();
|
35
|
+
|
36
|
+
if (Theme.switchable) {
|
37
|
+
addEventListener('message', reloadDisqus);
|
38
|
+
}
|
39
|
+
|
40
|
+
{%- comment -%} Lazy loading {%- endcomment -%}
|
41
|
+
var disqusObserver = new IntersectionObserver(
|
42
|
+
function (entries) {
|
43
|
+
if (entries[0].isIntersecting) {
|
44
|
+
var d = document,
|
45
|
+
s = d.createElement('script');
|
46
|
+
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
47
|
+
s.setAttribute('data-timestamp', +new Date());
|
48
|
+
(d.head || d.body).appendChild(s);
|
49
|
+
|
50
|
+
disqusObserver.disconnect();
|
51
|
+
}
|
52
|
+
},
|
53
|
+
{ threshold: [0] }
|
54
|
+
);
|
55
|
+
|
56
|
+
disqusObserver.observe(document.getElementById('disqus_thread'));
|
57
|
+
</script>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<!-- https://giscus.app/ -->
|
2
|
+
<script>
|
3
|
+
(function () {
|
4
|
+
const themeMapper = Theme.getThemeMapper('light', 'dark_dimmed');
|
5
|
+
const initTheme = themeMapper[Theme.visualState];
|
6
|
+
|
7
|
+
let lang = '{{ site.comments.giscus.lang | default: lang }}';
|
8
|
+
{%- comment -%} https://github.com/giscus/giscus/tree/main/locales {%- endcomment -%}
|
9
|
+
if (lang.length > 2 && !lang.startsWith('zh')) {
|
10
|
+
lang = lang.slice(0, 2);
|
11
|
+
}
|
12
|
+
|
13
|
+
let giscusAttributes = {
|
14
|
+
src: 'https://giscus.app/client.js',
|
15
|
+
'data-repo': '{{ site.comments.giscus.repo}}',
|
16
|
+
'data-repo-id': '{{ site.comments.giscus.repo_id }}',
|
17
|
+
'data-category': '{{ site.comments.giscus.category }}',
|
18
|
+
'data-category-id': '{{ site.comments.giscus.category_id }}',
|
19
|
+
'data-mapping': '{{ site.comments.giscus.mapping | default: 'pathname' }}',
|
20
|
+
'data-strict' : '{{ site.comments.giscus.strict | default: '0' }}',
|
21
|
+
'data-reactions-enabled': '{{ site.comments.giscus.reactions_enabled | default: '1' }}',
|
22
|
+
'data-emit-metadata': '0',
|
23
|
+
'data-theme': initTheme,
|
24
|
+
'data-input-position': '{{ site.comments.giscus.input_position | default: 'bottom' }}',
|
25
|
+
'data-lang': lang,
|
26
|
+
'data-loading': 'lazy',
|
27
|
+
crossorigin: 'anonymous',
|
28
|
+
async: ''
|
29
|
+
};
|
30
|
+
|
31
|
+
let giscusNode = document.createElement('script');
|
32
|
+
Object.entries(giscusAttributes).forEach(([key, value]) =>
|
33
|
+
giscusNode.setAttribute(key, value)
|
34
|
+
);
|
35
|
+
|
36
|
+
const $footer = document.querySelector('footer');
|
37
|
+
$footer.insertAdjacentElement("beforebegin", giscusNode);
|
38
|
+
|
39
|
+
addEventListener('message', (event) => {
|
40
|
+
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
41
|
+
const newTheme = themeMapper[Theme.visualState];
|
42
|
+
|
43
|
+
const message = {
|
44
|
+
setConfig: {
|
45
|
+
theme: newTheme
|
46
|
+
}
|
47
|
+
};
|
48
|
+
|
49
|
+
const giscus =
|
50
|
+
document.getElementsByClassName('giscus-frame')[0].contentWindow;
|
51
|
+
giscus.postMessage({ giscus: message }, 'https://giscus.app');
|
52
|
+
}
|
53
|
+
});
|
54
|
+
})();
|
55
|
+
</script>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<!-- https://utteranc.es/ -->
|
2
|
+
<script>
|
3
|
+
(function () {
|
4
|
+
const origin = 'https://utteranc.es';
|
5
|
+
const themeMapper = Theme.getThemeMapper('github-light', 'github-dark');
|
6
|
+
const initTheme = themeMapper[Theme.visualState];
|
7
|
+
|
8
|
+
let script = document.createElement('script');
|
9
|
+
script.src = 'https://utteranc.es/client.js';
|
10
|
+
script.setAttribute('repo', '{{ site.comments.utterances.repo }}');
|
11
|
+
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term }}');
|
12
|
+
script.setAttribute('theme', initTheme);
|
13
|
+
script.crossOrigin = 'anonymous';
|
14
|
+
script.async = true;
|
15
|
+
|
16
|
+
const $footer = document.querySelector('footer');
|
17
|
+
$footer.insertAdjacentElement('beforebegin', script);
|
18
|
+
|
19
|
+
addEventListener('message', (event) => {
|
20
|
+
let newTheme;
|
21
|
+
|
22
|
+
{%- comment -%}
|
23
|
+
Credit to <https://github.com/utterance/utterances/issues/170#issuecomment-594036347>
|
24
|
+
{%- endcomment -%}
|
25
|
+
if (event.source === window && event.data && event.data.id === Theme.ID) {
|
26
|
+
newTheme = themeMapper[Theme.visualState];
|
27
|
+
|
28
|
+
const message = {
|
29
|
+
type: 'set-theme',
|
30
|
+
theme: newTheme
|
31
|
+
};
|
32
|
+
|
33
|
+
const utterances = document.querySelector('.utterances-frame').contentWindow;
|
34
|
+
utterances.postMessage(message, origin);
|
35
|
+
}
|
36
|
+
});
|
37
|
+
})();
|
38
|
+
</script>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<!--
|
2
|
+
Date format snippet
|
3
|
+
See: ${JS_ROOT}/utils/locale-dateime.js
|
4
|
+
-->
|
5
|
+
|
6
|
+
{% assign df_strftime = site.data.locales[include.lang].df.post.strftime | default: '%d/%m/%Y' %}
|
7
|
+
{% assign df_dayjs = site.data.locales[include.lang].df.post.dayjs | default: 'DD/MM/YYYY' %}
|
8
|
+
|
9
|
+
<time
|
10
|
+
{% if include.class %}
|
11
|
+
class="{{ include.class }}"
|
12
|
+
{% endif %}
|
13
|
+
data-ts="{{ include.date | date: '%s' }}"
|
14
|
+
data-df="{{ df_dayjs }}"
|
15
|
+
{% if include.tooltip %}
|
16
|
+
data-bs-toggle="tooltip" data-bs-placement="bottom"
|
17
|
+
{% endif %}
|
18
|
+
>
|
19
|
+
{{ include.date | date: df_strftime }}
|
20
|
+
</time>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{% assign src = include.src | strip %}
|
2
|
+
{% assign title = include.title | strip %}
|
3
|
+
{% assign types = include.types | default: '' | strip | split: '|' %}
|
4
|
+
|
5
|
+
{% unless src contains '://' %}
|
6
|
+
{%- capture src -%}
|
7
|
+
{% include media-url.html src=src subpath=page.media_subpath %}
|
8
|
+
{%- endcapture -%}
|
9
|
+
{% endunless %}
|
10
|
+
|
11
|
+
<p>
|
12
|
+
<audio class="embed-audio" controls>
|
13
|
+
{% assign extension = src | split: '.' | last %}
|
14
|
+
{% assign types = extension | concat: types %}
|
15
|
+
|
16
|
+
{% assign ext_size = extension | size %}
|
17
|
+
{% assign src_size = src | size %}
|
18
|
+
{% assign slice_size = src_size | minus: ext_size %}
|
19
|
+
|
20
|
+
{% assign filepath = src | slice: 0, slice_size %}
|
21
|
+
|
22
|
+
{% for type in types %}
|
23
|
+
{% assign src = filepath | append: type %}
|
24
|
+
{% assign media_item = site.data.media | find: 'extension', type %}
|
25
|
+
{% assign mime_type = media_item.mime_type | default: type %}
|
26
|
+
<source src="{{ src }}" type="audio/{{ mime_type }}">
|
27
|
+
{% endfor %}
|
28
|
+
|
29
|
+
Your browser does not support the audio tag. Here is a
|
30
|
+
<a href="{{ src | strip }}">link to the audio file</a> instead.
|
31
|
+
</audio>
|
32
|
+
{% if title %}
|
33
|
+
<em>{{ title }}</em>
|
34
|
+
{% endif %}
|
35
|
+
</p>
|