jekyll-theme-h2o-ac 1.3.0 → 1.3.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.
- checksums.yaml +4 -4
- data/_config.yml +12 -17
- data/_data/collections.yml +2 -2
- data/_includes/{footer.html → layouts/footer.html} +9 -4
- data/_includes/{post-head.html → layouts/head.html} +35 -29
- data/_includes/{header.html → layouts/header.html} +18 -0
- data/_includes/layouts/metainfo.html +40 -0
- data/_includes/{paginate-article.html → layouts/paginate-article.html} +8 -1
- data/_includes/{paginate.html → layouts/paginate.html} +5 -5
- data/_includes/{sidebar.html → layouts/sidebar.html} +1 -1
- data/_includes/layouts/submenu.html +30 -0
- data/_includes/plugins/analytics/analytics.html +3 -0
- data/_includes/{analytics.html → plugins/analytics/google.html} +1 -2
- data/_includes/plugins/comments/comments_block.html +67 -0
- data/_includes/plugins/comments/comments_js.html +24 -0
- data/_includes/plugins/comments/disqus.html +19 -0
- data/_includes/plugins/comments/waline_css.html +3 -0
- data/_includes/plugins/comments/waline_js.html +14 -0
- data/_includes/plugins/i18n.html +32 -0
- data/_includes/plugins/markdown/fancybox_css.html +1 -0
- data/_includes/plugins/markdown/fancybox_js.html +24 -0
- data/_includes/plugins/markdown/hotkeys.html +31 -0
- data/_includes/plugins/markdown/markdown.html +7 -0
- data/_includes/plugins/markdown/mermaid_block.html +10 -0
- data/_includes/plugins/markdown/mermaid_js.html +12 -0
- data/_includes/plugins/markdown/prism_css.html +16 -0
- data/_includes/plugins/markdown/prism_js.html +3 -0
- data/_includes/{calendar.html → plugins/others/calendar_block.html} +1 -1
- data/_includes/plugins/others/calendar_css.html +3 -0
- data/_includes/plugins/others/calendar_js.html +8 -0
- data/_includes/plugins/others/social_block.html +5 -0
- data/_includes/plugins/others/social_css.html +1 -0
- data/_includes/plugins/others/social_js.html +15 -0
- data/_layouts/404.html +17 -0
- data/_layouts/archives.html +70 -65
- data/_layouts/blog.html +4 -10
- data/_layouts/categories.html +3 -1
- data/_layouts/default.html +63 -54
- data/_layouts/page.html +17 -87
- data/_layouts/post.html +145 -434
- data/_layouts/stats.html +32 -2
- data/_layouts/tags.html +2 -2
- data/assets/css/app.min.css +1 -1
- data/assets/css/app.min.css.map +1 -1
- data/assets/js/app.min.js +1 -1
- data/assets/js/app.min.js.map +1 -1
- metadata +40 -22
- data/_includes/comments.html +0 -53
- data/_includes/head.html +0 -51
- data/_includes/mermaid.html +0 -12
- data/_includes/submenu.html +0 -20
- data/_includes/waline.html +0 -3
- /data/_includes/{pageNav.html → layouts/pageNav.html} +0 -0
- /data/_includes/{toc.html → layouts/toc.html} +0 -0
- /data/_includes/{busuanzi.html → plugins/analytics/busuanzi.html} +0 -0
- /data/_includes/{umami.html → plugins/analytics/umami.html} +0 -0
- /data/_includes/{mathjax.html → plugins/markdown/mathjax.html} +0 -0
- /data/_includes/{pwa.html → plugins/others/pwa.html} +0 -0
- /data/_includes/{webpusher.html → plugins/others/webpusher.html} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f964f3fa35b036f457909e829661cc630fd817997e6093097609963202ccbe2b
|
|
4
|
+
data.tar.gz: 4512124057d051e06d9efac0c013618ac5300bd04b9ab7a13b04c37679ce3da4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 68e0f96136129fbfbfd1c6ca38a1e44ceeaa162fd9e54914134b8209448b4ffad0e41f75cf1c764bcffe20f89f8fc4ec7e64ed43e89e833ee4e636fad6922ff2
|
|
7
|
+
data.tar.gz: 6e1c87fe87e9c77a3183909d7b3d48417bc73972683fc302f575d339c7dfcfeb4312b4bddd277d5a881c3138a994a28af31a807d336b15252e0b7949c4b8a0f9
|
data/_config.yml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# jekyll-theme-h2o-ac
|
|
2
|
-
version: 1.3.
|
|
2
|
+
version: 1.3.1
|
|
3
3
|
|
|
4
4
|
# Site settings 配置站点
|
|
5
5
|
title: 'Mr Li'
|
|
@@ -112,6 +112,17 @@ supports:
|
|
|
112
112
|
upyun:
|
|
113
113
|
webify:
|
|
114
114
|
|
|
115
|
+
# Badges
|
|
116
|
+
badges:
|
|
117
|
+
foreverblog: true # Foreverblog
|
|
118
|
+
wormhole: true # Wormhole
|
|
119
|
+
travelling: true # Travelling
|
|
120
|
+
notbyAI: true # NotByAI
|
|
121
|
+
|
|
122
|
+
# Alive time
|
|
123
|
+
alivetime: true
|
|
124
|
+
alivestart: "12/23/2021"
|
|
125
|
+
|
|
115
126
|
# Beian 备案号
|
|
116
127
|
beian: '沪ICP备xxxxxxxx号'
|
|
117
128
|
|
|
@@ -186,22 +197,6 @@ extlinks:
|
|
|
186
197
|
# Mermaid
|
|
187
198
|
mermaid: true
|
|
188
199
|
|
|
189
|
-
# Webpusher
|
|
190
|
-
webpusher: false
|
|
191
|
-
|
|
192
|
-
# Foreverblog
|
|
193
|
-
foreverblog: false
|
|
194
|
-
|
|
195
|
-
# Wormhole
|
|
196
|
-
wormhole: false
|
|
197
|
-
|
|
198
|
-
# NotByAI
|
|
199
|
-
notbyAI: false
|
|
200
|
-
|
|
201
|
-
# Alive time
|
|
202
|
-
alivetime: false
|
|
203
|
-
alivestart: "12/23/2021"
|
|
204
|
-
|
|
205
200
|
# TOC
|
|
206
201
|
toc: true
|
|
207
202
|
# <div class="title">{% if title %} {{title}} {% else %} {{default_title}} {% endif %}</div>
|
data/_data/collections.yml
CHANGED
|
@@ -60,19 +60,24 @@
|
|
|
60
60
|
<a href="https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral" target="_blank" class="extlinks">{{ footer.upyun }} <img src="{{ "/assets/icons/upyun.png" | relative_url }}" class="upyun" alt="upyun" /></a>
|
|
61
61
|
</section>
|
|
62
62
|
{% endif %}
|
|
63
|
-
{% if site.foreverblog or site.wormhole or site.notbyAI %}
|
|
63
|
+
{% if site.badges.foreverblog or site.badges.wormhole or site.badges.travelling or site.badges.notbyAI %}
|
|
64
64
|
<section class="badges">
|
|
65
|
-
{% if site.foreverblog %}
|
|
65
|
+
{% if site.badges.foreverblog %}
|
|
66
66
|
<a href="https://www.foreverblog.cn/" target="_blank" class="foreverblog" aria-label="foreverblog">
|
|
67
67
|
<img src="https://img.foreverblog.cn/logo_en_default.png" alt="">
|
|
68
68
|
</a>
|
|
69
69
|
{% endif %}
|
|
70
|
-
{% if site.wormhole %}
|
|
70
|
+
{% if site.badges.wormhole %}
|
|
71
71
|
<a href="https://www.foreverblog.cn/go.html" target="_blank" class="wormhole" aria-label="wormhole">
|
|
72
72
|
<img src="https://img.foreverblog.cn/wormhole_3.gif" alt="" title="穿梭虫洞-随机访问十年之约友链博客">
|
|
73
73
|
</a>
|
|
74
74
|
{% endif%}
|
|
75
|
-
{% if site.
|
|
75
|
+
{% if site.badges.travelling %}
|
|
76
|
+
<a href="https://www.travellings.cn/go.html" target="_blank" class="travelling-badge" aria-label="Travelling" rel="noopener" title="开往-友链接力">
|
|
77
|
+
<img src="https://www.travellings.cn/assets/logo.gif" alt="开往-友链接力">
|
|
78
|
+
</a>
|
|
79
|
+
{% endif %}
|
|
80
|
+
{% if site.badges.notbyAI %}
|
|
76
81
|
<a href="https://notbyai.fyi/" target="_blank" class="notbyAI" aria-label="notbyAI">
|
|
77
82
|
<img src="{{ "/assets/icons/notbyAI-white.png" | prepend: site.baseurl }}" alt="Written by Human, Not by AI">
|
|
78
83
|
</a>
|
|
@@ -2,23 +2,21 @@
|
|
|
2
2
|
<meta charset="UTF-8">
|
|
3
3
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
4
4
|
<title>{% if page.title %}{{ page.title }} - {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
|
|
5
|
-
<meta name="author"
|
|
5
|
+
<meta name="author" content="{{ site.author }}">
|
|
6
|
+
{% if layout.type == "post" %}
|
|
6
7
|
<meta name="description" content="{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}">
|
|
7
|
-
<meta name="keywords"
|
|
8
|
-
|
|
9
|
-
<meta property="og:title" content="{% if page.title %}{{ page.title }} - {{ site.title }}{% else %}{{ site.title }}{% endif %}">
|
|
10
|
-
<meta property="og:type" content="website">
|
|
11
|
-
<meta property="og:url" content="{{ page.url | prepend: site.url }}">
|
|
12
|
-
<meta property="og:baseurl" content="{{ site.baseurl }}">
|
|
13
|
-
<meta property="og:description" content="{{ site.description }}">
|
|
14
|
-
<meta property="og:site_name" content="{{ site.title }}">
|
|
15
|
-
<meta property="og:gray" content="{{ site.gray }}">
|
|
8
|
+
<meta name="keywords"
|
|
9
|
+
content="{% if page.tags.size > 0 %}{% for tag in page.tags %}{{ tag }}{% if forloop.last == false %}, {% endif %}{% endfor %}{% endif %}">
|
|
16
10
|
{% if page.next.url %}
|
|
17
11
|
<meta property="og:previous_url" content="{{ page.next.url | relative_url }}">
|
|
18
12
|
{% endif %}
|
|
19
13
|
{% if page.previous.url %}
|
|
20
14
|
<meta property="og:next_url" content="{{ page.previous.url | relative_url }}">
|
|
21
15
|
{% endif %}
|
|
16
|
+
{% else %}
|
|
17
|
+
<meta name="description" content="{{ site.description }}">
|
|
18
|
+
<meta name="keywords" content="{{ site.keyword }}">
|
|
19
|
+
{% endif %}
|
|
22
20
|
<meta property="post-date-format" content="{{ site.formats.time }}">
|
|
23
21
|
{% case site.formats.time %}
|
|
24
22
|
{% when 0 %}
|
|
@@ -28,6 +26,21 @@
|
|
|
28
26
|
{% else %}
|
|
29
27
|
<meta property="post-date" content="{{ page.date | date: '%Y年%-m月%-d日 %H:%M:%S %z' }}" />
|
|
30
28
|
{% endcase %}
|
|
29
|
+
{% if site.calendar %}
|
|
30
|
+
<meta property="calendar-scale" content="{{ site.calendar.scale | default: 'year' }}" />
|
|
31
|
+
<meta property="calendar-scheme" content="{{ site.calendar.scheme | default: 'null' }}" />
|
|
32
|
+
<meta property="calendar-color" content="{{ site.calendar.color | default: 'null' }}" />
|
|
33
|
+
{% endif %}
|
|
34
|
+
<!-- Open Graph -->
|
|
35
|
+
<meta property="og:title"
|
|
36
|
+
content="{% if page.title %}{{ page.title }} - {{ site.title }}{% else %}{{ site.title }}{% endif %}">
|
|
37
|
+
<meta property="og:type" content="website">
|
|
38
|
+
<meta property="og:url" content="{{ page.url | prepend: site.url }}">
|
|
39
|
+
<meta property="og:baseurl" content="{{ site.baseurl }}">
|
|
40
|
+
<meta property="og:description" content="{{ site.description }}">
|
|
41
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
|
42
|
+
<meta property="og:gray" content="{{ site.gray }}">
|
|
43
|
+
<meta property="og:lang" content="{{ lang }}">
|
|
31
44
|
{% if site.alivetime %}
|
|
32
45
|
<meta name="alivestart" content="{{ site.alivestart }}">
|
|
33
46
|
{% endif %}
|
|
@@ -35,29 +48,22 @@
|
|
|
35
48
|
<meta name="google-site-verification" content="{{ site.google_search }}" />
|
|
36
49
|
{% endif %}
|
|
37
50
|
<meta name="theme-color" content="{{ site.pwa.color }}" />
|
|
38
|
-
<link rel="manifest" href="{{ "/manifest.json" | prepend: site.baseurl }}" />
|
|
39
|
-
<link rel="apple-touch-icon" href="{{
|
|
51
|
+
<link rel="manifest" href="{{ " /manifest.json" | prepend: site.baseurl }}" />
|
|
52
|
+
<link rel="apple-touch-icon" href="{{ " /assets/img/touch/apple-touch-icon.png" | prepend: site.baseurl }}" />
|
|
40
53
|
<link rel="Shortcut Icon" href="{{ site.favicon | prepend: site.baseurl }}">
|
|
41
54
|
<link rel="icon" href="{{ site.favicon | prepend: site.baseurl }}" type="image/x-icon" />
|
|
42
55
|
<link rel="bookmark" href="{{ site.favicon | prepend: site.baseurl }}" type="image/x-icon" />
|
|
43
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.min.css"
|
|
56
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.min.css" async>
|
|
44
57
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css" />
|
|
45
58
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css@5.2.0/github-markdown-light.min.css">
|
|
46
|
-
|
|
47
|
-
{%
|
|
48
|
-
{%
|
|
49
|
-
{% if prisms1 contains site.prism.theme %}
|
|
50
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.28.0/themes/prism-{{site.prism.theme}}.min.css" />
|
|
51
|
-
{% else if prisms2 contains site.prism.theme %}
|
|
52
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prism-themes@1.9.0/themes/prism-{{site.prism.theme}}.min.css" />
|
|
59
|
+
{% if layout.type == "post" %}
|
|
60
|
+
{% include plugins/others/social_css.html%}
|
|
61
|
+
{% include plugins/markdown/fancybox_css.html %}
|
|
53
62
|
{% else %}
|
|
54
|
-
|
|
55
|
-
{% endif %}
|
|
56
|
-
{% if site.prism.line_numbers %}
|
|
57
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.28.0/plugins/line-numbers/prism-line-numbers.min.css">
|
|
63
|
+
{% include plugins/others/calendar_css.html %}
|
|
58
64
|
{% endif %}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
<link rel="stylesheet" href="
|
|
62
|
-
<script src="
|
|
63
|
-
</head>
|
|
65
|
+
{% include plugins/markdown/prism_css.html %}
|
|
66
|
+
{% include plugins/comments/waline_css.html %}
|
|
67
|
+
<link rel="stylesheet" href="{{ " /assets/css/app.min.css" | prepend: site.baseurl }}">
|
|
68
|
+
<script src="https://cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
|
|
69
|
+
</head>
|
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
<a href="{{ "/" | relative_url }}" aria-label="logo"></a>
|
|
4
4
|
</div>
|
|
5
5
|
<!-- <i id="menu-toggle" class="iconfont icon-menu"></i> -->
|
|
6
|
+
{% if site.badges.travelling %}
|
|
7
|
+
<div id="travelling-toggle">
|
|
8
|
+
<a href="https://www.travellings.cn/go.html" aria-label="Travelings" target="_blank">
|
|
9
|
+
<svg class="icon" aria-hidden="true">
|
|
10
|
+
<use xlink:href="#icon-train-subway"></use>
|
|
11
|
+
</svg>
|
|
12
|
+
</a>
|
|
13
|
+
</div>
|
|
14
|
+
{% endif %}
|
|
6
15
|
<div id="mode-toggle">
|
|
7
16
|
<svg class="icon icon-day" aria-hidden="true">
|
|
8
17
|
<use xlink:href="#icon-day"></use>
|
|
@@ -38,6 +47,15 @@
|
|
|
38
47
|
</li>
|
|
39
48
|
{% endif %}
|
|
40
49
|
{% endfor %}
|
|
50
|
+
{% if site.badges.travelling %}
|
|
51
|
+
<li class="travelling">
|
|
52
|
+
<a href="https://www.travellings.cn/go.html" aria-label="Travelings" target="_blank">
|
|
53
|
+
<svg class="icon" aria-hidden="true">
|
|
54
|
+
<use xlink:href="#icon-train-subway"></use>
|
|
55
|
+
</svg>
|
|
56
|
+
</a>
|
|
57
|
+
</li>
|
|
58
|
+
{% endif %}
|
|
41
59
|
<li class="mode">
|
|
42
60
|
<svg class="icon day" aria-hidden="true">
|
|
43
61
|
<use xlink:href="#icon-day"></use>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.2/dayjs.min.js"></script>
|
|
2
|
+
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.2/plugin/customParseFormat.js"></script>
|
|
3
|
+
<script src="https://cdn.jsdelivr.net/npm/dayjs@1.11.2/plugin/relativeTime.js"></script>
|
|
4
|
+
<script>
|
|
5
|
+
$(document).ready(function () {
|
|
6
|
+
var time_formats = ['YYYY-MM-DD HH:mm:ss ZZ', 'YYYY DD MMM HH:mm:ss ZZ', 'YYYY年MM月DD日 HH:mm:ss ZZ'];
|
|
7
|
+
function dateFormat(date, format) {
|
|
8
|
+
var date_org = dayjs(date, time_formats[format]);
|
|
9
|
+
var date = date_org.format(time_formats[format]);
|
|
10
|
+
return { "date_org": date_org, "date": date }
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
dayjs.extend(window.dayjs_plugin_customParseFormat);
|
|
14
|
+
dayjs.extend(window.dayjs_plugin_relativeTime);
|
|
15
|
+
var post_date = $("meta[property='post-date']").attr('content');
|
|
16
|
+
var post_date_format = $("meta[property='post-date-format']").attr('content');
|
|
17
|
+
var local_post_date = dateFormat(post_date, post_date_format);
|
|
18
|
+
|
|
19
|
+
$(".post time span.create-at").html(local_post_date["date"]);
|
|
20
|
+
|
|
21
|
+
fetch("https://api.github.com/repos/{{ site.github.owner }}/{{ site.github.repository }}/commits?path={{ page.path }}").then((response) => {
|
|
22
|
+
return response.json();
|
|
23
|
+
}).then((commits) => {
|
|
24
|
+
if (commits.length != 0) {
|
|
25
|
+
var update_at = dayjs(commits[0]['commit']['committer']['date']);
|
|
26
|
+
} else {
|
|
27
|
+
var update_at = post_date
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var local_update_at = dateFormat(update_at, post_date_format);
|
|
31
|
+
$('.post time span.update-at').html(local_update_at["date"]);
|
|
32
|
+
|
|
33
|
+
var relative_time = dayjs().diff(local_update_at["date_org"], 'day');
|
|
34
|
+
$(".post-copyright .tips span").append(relative_time);
|
|
35
|
+
if (relative_time > 365) {
|
|
36
|
+
$(".post-copyright .tips").addClass("active");
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
</script>
|
|
@@ -11,7 +11,14 @@
|
|
|
11
11
|
{% endif %}
|
|
12
12
|
<section class="post-preview">
|
|
13
13
|
<a class="post-link" href="{{ post.url | relative_url }}" title="{{ post.title }}"></a>
|
|
14
|
-
<h2 class="post-title">
|
|
14
|
+
<h2 class="post-title">
|
|
15
|
+
{% if post.pin %}
|
|
16
|
+
<svg class="icon" aria-hidden="true">
|
|
17
|
+
<use xlink:href="#icon-pin"></use>
|
|
18
|
+
</svg>
|
|
19
|
+
{% endif %}
|
|
20
|
+
{{ post.title }}
|
|
21
|
+
</h2>
|
|
15
22
|
{% if post.subtitle %}
|
|
16
23
|
<h3 class="post-subtitle">{{ post.subtitle }}</h3>
|
|
17
24
|
{% endif %}
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
{% endif %}
|
|
16
16
|
{% for i in (unpin_start..unpin_end) %}
|
|
17
17
|
{% assign post = unpin_posts[i] %}
|
|
18
|
-
{% include paginate-article.html %}
|
|
18
|
+
{% include layouts/paginate-article.html %}
|
|
19
19
|
{% endfor %}
|
|
20
20
|
{% elsif pin_posts_num < max_num %}
|
|
21
21
|
{% assign pin_end = pin_posts_num | minus: 1 %}
|
|
22
22
|
{% for i in (min_num..pin_end) %}
|
|
23
23
|
{% assign post = pin_posts[i] %}
|
|
24
|
-
{% include paginate-article.html %}
|
|
24
|
+
{% include layouts/paginate-article.html %}
|
|
25
25
|
{% endfor %}
|
|
26
26
|
{% assign unpin_end = max_num | minus: pin_posts_num | minus: 1 %}
|
|
27
27
|
{% if unpin_end >= unpin_posts_num %}
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
{% endif %}
|
|
30
30
|
{% for i in (0..unpin_end) %}
|
|
31
31
|
{% assign post = unpin_posts[i] %}
|
|
32
|
-
{% include paginate-article.html %}
|
|
32
|
+
{% include layouts/paginate-article.html %}
|
|
33
33
|
{% endfor %}
|
|
34
34
|
{% else %}
|
|
35
35
|
{% assign pin_start = min_num %}
|
|
36
36
|
{% assign pin_end = max_num | minus: 1 %}
|
|
37
37
|
{% for i in (pin_start..pin_end) %}
|
|
38
38
|
{% assign post = pin_posts[i] %}
|
|
39
|
-
{% include paginate-article.html %}
|
|
39
|
+
{% include layouts/paginate-article.html %}
|
|
40
40
|
{% endfor %}
|
|
41
|
-
{% endif %}
|
|
41
|
+
{% endif %}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{% if page.submenu %}
|
|
2
|
+
<div class="submenu">
|
|
3
|
+
{% for collection in site.data.collections %}
|
|
4
|
+
{% if collection.id == page.submenu %}
|
|
5
|
+
<h4>
|
|
6
|
+
<svg class="icon" aria-hidden="true">
|
|
7
|
+
<use xlink:href="#icon-submenu"></use>
|
|
8
|
+
</svg>{{ collection.name }}
|
|
9
|
+
</h4>
|
|
10
|
+
<ul>
|
|
11
|
+
{% for article in collection.articles %}
|
|
12
|
+
<li>
|
|
13
|
+
{% if article.url contains "://" %}
|
|
14
|
+
<a href="{{ article.url }}" class="extlinks">
|
|
15
|
+
{{ article.name }}
|
|
16
|
+
</a>
|
|
17
|
+
{% else %}
|
|
18
|
+
<a href="{{ article.url | prepend: site.baseurl }}">
|
|
19
|
+
{{ article.name }}
|
|
20
|
+
</a>
|
|
21
|
+
{% endif %}
|
|
22
|
+
</li>
|
|
23
|
+
{% endfor %}
|
|
24
|
+
</ul>
|
|
25
|
+
{% endif %}
|
|
26
|
+
{% endfor %}
|
|
27
|
+
{% else %}
|
|
28
|
+
<div class="submenu hidden">
|
|
29
|
+
{% endif %}
|
|
30
|
+
</div>
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{site.google_analytics}}"></script>
|
|
4
4
|
<script>
|
|
5
5
|
window.dataLayer = window.dataLayer || [];
|
|
6
|
-
function gtag(){dataLayer.push(arguments);}
|
|
6
|
+
function gtag() { dataLayer.push(arguments); }
|
|
7
7
|
gtag('js', new Date());
|
|
8
|
-
|
|
9
8
|
gtag('config', '{{site.google_analytics}}');
|
|
10
9
|
</script>
|
|
11
10
|
{% endif %}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{% capture block %}
|
|
2
|
+
<section class="post-footer-item comment">
|
|
3
|
+
<div class="comments-headline">
|
|
4
|
+
<svg class="icon" aria-hidden="true">
|
|
5
|
+
<use xlink:href="#icon-comment"></use>
|
|
6
|
+
</svg>
|
|
7
|
+
<span>{{ locales.post.comment }}</span>
|
|
8
|
+
</div>
|
|
9
|
+
{% if layout.type == "post" %}
|
|
10
|
+
{% if site.comments.disqus and site.comments.waline %}
|
|
11
|
+
<div id="comments-switch">
|
|
12
|
+
<span class="first-comment">Disqus</span>
|
|
13
|
+
<span class="switch-button">
|
|
14
|
+
<input id="cmn-toggle-4" class="cmn-toggle cmn-toggle-round-flat" type="checkbox">
|
|
15
|
+
<label for="cmn-toggle-4"></label>
|
|
16
|
+
</span>
|
|
17
|
+
<span class="second-comment">Waline</span>
|
|
18
|
+
</div>
|
|
19
|
+
{% endif %}
|
|
20
|
+
{% else %}
|
|
21
|
+
{% if page.comments.disqus and page.comments.waline %}
|
|
22
|
+
<div id="comments-switch">
|
|
23
|
+
<span class="first-comment">Disqus</span>
|
|
24
|
+
<span class="switch-button">
|
|
25
|
+
<input id="cmn-toggle-4" class="cmn-toggle cmn-toggle-round-flat" type="checkbox">
|
|
26
|
+
<label for="cmn-toggle-4"></label>
|
|
27
|
+
</span>
|
|
28
|
+
<span class="second-comment">Waline</span>
|
|
29
|
+
</div>
|
|
30
|
+
{% endif %}
|
|
31
|
+
{% endif %}
|
|
32
|
+
</section>
|
|
33
|
+
{% endcapture %}
|
|
34
|
+
|
|
35
|
+
{% if layout.type == "post" %}
|
|
36
|
+
{% if site.comments.disqus or site.comments.waline or page.comments.waline or page.comments.disqus %}
|
|
37
|
+
{{ block }}
|
|
38
|
+
{% endif %}
|
|
39
|
+
{% else %}
|
|
40
|
+
{% if page.comments.disqus or page.comments.waline %}
|
|
41
|
+
{{ block }}
|
|
42
|
+
{% endif %}
|
|
43
|
+
{% endif %}
|
|
44
|
+
|
|
45
|
+
{% if layout.type == "post" %}
|
|
46
|
+
{% if site.comments.disqus %}
|
|
47
|
+
<section class="post-footer-item comment">
|
|
48
|
+
<div id="disqus_thread"></div>
|
|
49
|
+
</section>
|
|
50
|
+
{% endif %}
|
|
51
|
+
{% if site.comments.waline %}
|
|
52
|
+
<section class="post-footer-item comment">
|
|
53
|
+
<div id="waline"></div>
|
|
54
|
+
</section>
|
|
55
|
+
{% endif %}
|
|
56
|
+
{% else %}
|
|
57
|
+
{% if page.comments.disqus %}
|
|
58
|
+
<section class="post-footer-item comment">
|
|
59
|
+
<div id="disqus_thread"></div>
|
|
60
|
+
</section>
|
|
61
|
+
{% endif %}
|
|
62
|
+
{% if page.comments.waline %}
|
|
63
|
+
<section class="post-footer-item comment">
|
|
64
|
+
<div id="waline"></div>
|
|
65
|
+
</section>
|
|
66
|
+
{% endif %}
|
|
67
|
+
{% endif %}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{% include plugins/comments/disqus.html %}
|
|
2
|
+
{% include plugins/comments/waline_js.html %}
|
|
3
|
+
<script>
|
|
4
|
+
$(document).ready(function () {
|
|
5
|
+
if ($("#comments-switch").length > 0) {
|
|
6
|
+
var comment_status = $("#cmn-toggle-4")[0].checked;
|
|
7
|
+
if (comment_status) {
|
|
8
|
+
$("#waline").addClass("active");
|
|
9
|
+
} else {
|
|
10
|
+
$("#disqus_thread").addClass("active");
|
|
11
|
+
}
|
|
12
|
+
$("#cmn-toggle-4").click(function () {
|
|
13
|
+
$("#disqus_thread").toggleClass("active");
|
|
14
|
+
$("#waline").toggleClass("active");
|
|
15
|
+
})
|
|
16
|
+
} else {
|
|
17
|
+
if ($("#disqus_thread").length > 0) {
|
|
18
|
+
$("#disqus_thread").addClass("active");
|
|
19
|
+
} else if ($("#waline").length > 0) {
|
|
20
|
+
$("#waline").addClass("active");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
</script>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{% if site.comments.disqus or page.comments.disqus %}
|
|
2
|
+
<script>
|
|
3
|
+
/**
|
|
4
|
+
* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
|
|
5
|
+
* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/
|
|
6
|
+
/*
|
|
7
|
+
var disqus_config = function () {
|
|
8
|
+
this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
|
|
9
|
+
this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
|
|
10
|
+
};
|
|
11
|
+
*/
|
|
12
|
+
(function () { // DON'T EDIT BELOW THIS LINE
|
|
13
|
+
var d = document, s = d.createElement('script');
|
|
14
|
+
s.src = '{{ site.comments.disqus_url }}';
|
|
15
|
+
s.setAttribute('data-timestamp', +new Date());
|
|
16
|
+
(d.head || d.body).appendChild(s);
|
|
17
|
+
})();
|
|
18
|
+
</script>
|
|
19
|
+
{% endif %}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{% if site.comments.waline or page.comments.waline %}
|
|
2
|
+
<script src="https://cdn.jsdelivr.net/npm/@waline/client/dist/waline.umd.js"></script>
|
|
3
|
+
<script>
|
|
4
|
+
$(document).ready(function () {
|
|
5
|
+
Waline.init({
|
|
6
|
+
el: '#waline',
|
|
7
|
+
serverURL: '{{ site.comments.waline_url }}',
|
|
8
|
+
reaction: {{ site.comments.waline_reaction }},
|
|
9
|
+
comment: true,
|
|
10
|
+
locale: {{ site.comments.waline_locale }}
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
</script>
|
|
14
|
+
{% endif %}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{% assign lang = page.lang | default: site.default_lang %}
|
|
2
|
+
{% assign locales = site.data.locales[lang] %}
|
|
3
|
+
{% if page.langs %}
|
|
4
|
+
<p>
|
|
5
|
+
<b>{{ locales.langs }}</b>
|
|
6
|
+
{% assign langs = "zh-Hans, zh-Hant, en, ja" | split: ", " %}
|
|
7
|
+
{% assign langnames = "简中, 繁中, EN, 日本語" | split: ", " %}
|
|
8
|
+
{% if lang == site.default_lang %}
|
|
9
|
+
{% assign url = page.url %}
|
|
10
|
+
{% else %}
|
|
11
|
+
{% assign urls = page.url | split: '/' %}
|
|
12
|
+
{% assign url = "" %}
|
|
13
|
+
{% for u in urls offset:2 %}
|
|
14
|
+
{% assign url = url | append: "/" | append: u %}
|
|
15
|
+
{% endfor %}
|
|
16
|
+
{% endif %}
|
|
17
|
+
{% for l in page.langs %}
|
|
18
|
+
{% for i in (0..4) %}
|
|
19
|
+
{% if langs[i] == l %}
|
|
20
|
+
{% if l == page.lang %}
|
|
21
|
+
{{ langnames[i] }}
|
|
22
|
+
{% elsif l == site.default_lang %}
|
|
23
|
+
<a href="{{ url }}">{{ langnames[i] }}</a>
|
|
24
|
+
{% else %}
|
|
25
|
+
{% assign prefix = "/" | append: l %}
|
|
26
|
+
<a href="{{ url | prepend: prefix }}">{{ langnames[i] }}</a>
|
|
27
|
+
{% endif %}
|
|
28
|
+
{% endif %}
|
|
29
|
+
{% endfor %}
|
|
30
|
+
{% endfor %}
|
|
31
|
+
</p>
|
|
32
|
+
{% endif %}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.min.css" />
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.umd.min.js"></script>
|
|
2
|
+
<script>
|
|
3
|
+
$(document).ready(function () {
|
|
4
|
+
var baseurl = $("meta[property='og:baseurl']").attr('content');
|
|
5
|
+
$("p img").each(function () {
|
|
6
|
+
$(this).attr('data-src', $(this).attr('src')).removeAttr('src').addClass("lazyload").attr('src', baseurl + '/assets/img/loading.gif');
|
|
7
|
+
var strA = "<a data-fancybox='gallery' ref='gallery' href='" + $(this).attr('data-src') + "' data-caption='" + $(this).attr('alt') + "'></a>";
|
|
8
|
+
$(this).wrapAll(strA);
|
|
9
|
+
var caption = $(this)[0].alt;
|
|
10
|
+
$(this).parent().after('<span class="caption">' + caption + '</span>');
|
|
11
|
+
});
|
|
12
|
+
Fancybox.bind('[data-fancybox]', {
|
|
13
|
+
on: {
|
|
14
|
+
load: (fancybox, slide) => {
|
|
15
|
+
var gray = $("meta[property='og:gray']").attr('content');
|
|
16
|
+
if (gray == "true") {
|
|
17
|
+
$(".fancybox__content img").addClass("gray");
|
|
18
|
+
$(".carousel__track .fancybox__thumb").addClass("gray");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script src="https://cdn.jsdelivr.net/npm/hotkeys-js/dist/hotkeys.min.js"></script>
|
|
2
|
+
<script>
|
|
3
|
+
$(document).ready(function () {
|
|
4
|
+
var previous_url = $("meta[property='og:previous_url']").attr('content');
|
|
5
|
+
var next_url = $("meta[property='og:next_url']").attr('content');
|
|
6
|
+
|
|
7
|
+
hotkeys('left', function (event, handler) {
|
|
8
|
+
// Prevent the default refresh event under WINDOWS system
|
|
9
|
+
event.preventDefault();
|
|
10
|
+
if (previous_url) {
|
|
11
|
+
console.log('you pressed left!');
|
|
12
|
+
window.location.href = previous_url;
|
|
13
|
+
} else {
|
|
14
|
+
$("#no-previous").addClass("active");
|
|
15
|
+
setTimeout(function () { $("#no-previous").removeClass("active"); }, 1500);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
hotkeys('right', function (event, handler) {
|
|
20
|
+
// Prevent the default refresh event under WINDOWS system
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
if (next_url) {
|
|
23
|
+
console.log('you pressed right!');
|
|
24
|
+
window.location.href = next_url;
|
|
25
|
+
} else {
|
|
26
|
+
$("#no-next").addClass("active");
|
|
27
|
+
setTimeout(function () { $("#no-next").removeClass("active"); }, 1500);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{% include plugins/markdown/mathjax.html %}
|
|
2
|
+
{% if layout.type == "post" %}
|
|
3
|
+
{% include plugins/markdown/fancybox_js.html %}
|
|
4
|
+
{% endif %}
|
|
5
|
+
{% include plugins/markdown/hotkeys.html %}
|
|
6
|
+
{% include plugins/markdown/mermaid_js.html %}
|
|
7
|
+
{% include plugins/markdown/prism_js.html %}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{% if page.mermaid or site.mermaid %}
|
|
2
|
+
<script src="https://cdn.jsdelivr.net/npm/mermaid@9.1.6/dist/mermaid.min.js"></script>
|
|
3
|
+
<script>
|
|
4
|
+
$(document).ready(function () {
|
|
5
|
+
mermaid.initialize({
|
|
6
|
+
startOnLoad: true,
|
|
7
|
+
theme: "default",
|
|
8
|
+
});
|
|
9
|
+
mermaid.init(undefined, $('.mermaid2'));
|
|
10
|
+
});
|
|
11
|
+
</script>
|
|
12
|
+
{% endif %}
|