jekyll-theme-chirpy 5.0.2 → 6.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +64 -74
- 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 +80 -0
- data/_data/locales/el-GR.yml +91 -0
- data/_data/locales/en.yml +23 -23
- data/_data/locales/es-ES.yml +77 -0
- data/_data/locales/fi-FI.yml +90 -0
- data/_data/locales/fr-FR.yml +77 -0
- data/_data/locales/hu-HU.yml +79 -0
- data/_data/locales/id-ID.yml +5 -19
- data/_data/locales/it-IT.yml +90 -0
- data/_data/locales/ko-KR.yml +12 -19
- data/_data/locales/my-MM.yml +77 -0
- data/_data/locales/pt-BR.yml +77 -0
- data/_data/locales/ru-RU.yml +77 -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 +13 -20
- data/_data/locales/zh-TW.yml +83 -0
- data/_data/origin/basic.yml +48 -0
- data/_data/origin/cors.yml +59 -0
- data/_includes/comments/disqus.html +27 -31
- data/_includes/comments/giscus.html +64 -0
- data/_includes/comments/utterances.html +2 -2
- data/_includes/datetime.html +20 -0
- data/_includes/embed/twitch.html +4 -0
- data/_includes/embed/youtube.html +6 -0
- data/_includes/footer.html +31 -32
- data/_includes/head.html +66 -46
- data/_includes/js-selector.html +83 -45
- data/_includes/jsdelivr-combine.html +26 -0
- data/_includes/lang.html +1 -1
- data/_includes/mermaid.html +30 -29
- data/_includes/metadata-hook.html +1 -0
- data/_includes/mode-toggle.html +66 -51
- data/_includes/notification.html +24 -0
- data/_includes/origin-type.html +13 -0
- data/_includes/post-nav.html +26 -22
- data/_includes/post-paginator.html +79 -76
- data/_includes/post-sharing.html +27 -16
- data/_includes/read-time.html +17 -10
- data/_includes/refactor-content.html +129 -73
- data/_includes/related-posts.html +48 -58
- data/_includes/search-loader.html +32 -31
- data/_includes/search-results.html +4 -5
- data/_includes/sidebar.html +79 -67
- data/_includes/toc.html +4 -7
- data/_includes/topbar.html +62 -56
- data/_includes/trending-tags.html +15 -19
- data/_includes/update-list.html +14 -15
- data/_layouts/archives.html +25 -29
- data/_layouts/categories.html +97 -58
- data/_layouts/category.html +8 -10
- data/_layouts/default.html +67 -31
- data/_layouts/home.html +67 -56
- data/_layouts/page.html +20 -58
- data/_layouts/post.html +85 -94
- data/_layouts/tag.html +8 -10
- data/_layouts/tags.html +6 -5
- data/_sass/addon/commons.scss +679 -878
- data/_sass/addon/module.scss +70 -23
- data/_sass/addon/syntax.scss +127 -110
- data/_sass/addon/variables.scss +16 -18
- data/_sass/colors/syntax-dark.scss +138 -0
- data/_sass/colors/syntax-light.scss +179 -0
- data/_sass/colors/{dark-typography.scss → typography-dark.scss} +58 -56
- data/_sass/colors/typography-light.scss +110 -0
- data/_sass/layout/archives.scss +86 -89
- data/_sass/layout/categories.scss +29 -13
- data/_sass/layout/category-tag.scss +9 -10
- data/_sass/layout/home.scss +132 -114
- data/_sass/layout/post.scss +213 -173
- data/_sass/layout/tags.scss +1 -1
- data/_sass/main.scss +13 -0
- data/assets/404.html +1 -20
- data/assets/css/jekyll-theme-chirpy.scss +6 -0
- data/assets/feed.xml +2 -2
- data/assets/js/data/search.json +8 -5
- data/assets/js/data/swcache.js +14 -29
- data/assets/js/dist/categories.min.js +2 -4
- data/assets/js/dist/commons.min.js +2 -4
- data/assets/js/dist/home.min.js +2 -4
- data/assets/js/dist/misc.min.js +4 -0
- data/assets/js/dist/page.min.js +2 -4
- data/assets/js/dist/post.min.js +2 -4
- data/assets/js/pwa/app.js +42 -4
- data/assets/js/pwa/sw.js +46 -44
- data/assets/js/pwa/unregister.js +12 -0
- metadata +64 -32
- data/_config.yml +0 -175
- data/_data/contact.yml +0 -30
- data/_data/share.yml +0 -27
- data/_includes/css-selector.html +0 -15
- data/_includes/no-zero-date.html +0 -13
- data/_includes/timeago.html +0 -26
- data/_plugins/posts-lastmod-hook.rb +0 -14
- data/_sass/colors/dark-syntax.scss +0 -87
- data/_sass/colors/light-syntax.scss +0 -79
- data/_sass/colors/light-typography.scss +0 -81
- data/_sass/jekyll-theme-chirpy.scss +0 -24
- data/_tabs/about.md +0 -8
- data/_tabs/archives.md +0 -7
- data/_tabs/categories.md +0 -6
- data/_tabs/tags.md +0 -6
- data/assets/css/style.scss +0 -12
- data/assets/js/dist/pvreport.min.js +0 -6
- data/index.html +0 -4
data/_includes/js-selector.html
CHANGED
@@ -1,68 +1,106 @@
|
|
1
|
-
<!--
|
2
|
-
|
3
|
-
-->
|
1
|
+
<!-- JS selector for site. -->
|
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
|
+
%}
|
4
11
|
|
5
12
|
<!-- layout specified -->
|
6
13
|
|
7
|
-
{% if page.layout == 'post' %}
|
8
|
-
{%
|
9
|
-
<!-- pv-report needs countup.js -->
|
10
|
-
<script async src="https://cdn.jsdelivr.net/npm/countup.js@1.9.3/dist/countUp.min.js"></script>
|
11
|
-
<script defer src="{{ '/assets/js/dist/pvreport.min.js' | relative_url }}"></script>
|
12
|
-
{% endif %}
|
13
|
-
{% endif %}
|
14
|
+
{% if page.layout == 'post' or page.layout == 'page' or page.layout == 'home' %}
|
15
|
+
{% assign urls = urls | append: ',' | append: site.data.origin[type].lazysizes.js %}
|
14
16
|
|
15
|
-
{%
|
16
|
-
|
17
|
-
|
17
|
+
{% unless page.layout == 'home' %}
|
18
|
+
<!-- image lazy-loading & popup & clipboard -->
|
19
|
+
{% assign urls = urls
|
20
|
+
| append: ','
|
21
|
+
| append: site.data.origin[type]['magnific-popup'].js
|
22
|
+
| append: ','
|
23
|
+
| append: site.data.origin[type].clipboard.js
|
24
|
+
%}
|
25
|
+
{% endunless %}
|
18
26
|
{% endif %}
|
19
27
|
|
20
28
|
{% if page.layout == 'home'
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
{% assign
|
29
|
+
or page.layout == 'post'
|
30
|
+
or page.layout == 'archives'
|
31
|
+
or page.layout == 'category'
|
32
|
+
or page.layout == 'tag'
|
33
|
+
%}
|
34
|
+
{% assign locale = site.lang | split: '-' | first %}
|
35
|
+
|
36
|
+
{% assign urls = urls
|
37
|
+
| append: ','
|
38
|
+
| append: site.data.origin[type].dayjs.js.common
|
39
|
+
| append: ','
|
40
|
+
| append: site.data.origin[type].dayjs.js.locale
|
41
|
+
| replace: ':LOCALE', locale
|
42
|
+
| append: ','
|
43
|
+
| append: site.data.origin[type].dayjs.js.relativeTime
|
44
|
+
| append: ','
|
45
|
+
| append: site.data.origin[type].dayjs.js.localizedFormat
|
46
|
+
%}
|
47
|
+
{% endif %}
|
48
|
+
|
49
|
+
{% if page.content contains '<h2' or page.content contains '<h3' and site.toc and page.toc %}
|
50
|
+
{% assign urls = urls | append: ',' | append: site.data.origin[type].toc.js %}
|
51
|
+
{% endif %}
|
52
|
+
|
53
|
+
{% if page.mermaid %}
|
54
|
+
{% assign urls = urls | append: ',' | append: site.data.origin[type].mermaid.js %}
|
27
55
|
{% endif %}
|
28
56
|
|
29
|
-
{%
|
30
|
-
|
57
|
+
{% include jsdelivr-combine.html urls=urls %}
|
58
|
+
|
59
|
+
{% case page.layout %}
|
60
|
+
{% when 'home', 'categories', 'post', 'page' %}
|
61
|
+
{% assign js = page.layout %}
|
62
|
+
{% when 'archives', 'category', 'tag' %}
|
63
|
+
{% assign js = 'misc' %}
|
64
|
+
{% else %}
|
65
|
+
{% assign js = 'commons' %}
|
66
|
+
{% endcase %}
|
67
|
+
|
68
|
+
{% capture script %}/assets/js/dist/{{ js }}.min.js{% endcapture %}
|
69
|
+
<script defer src="{{ script | relative_url }}"></script>
|
31
70
|
|
32
71
|
{% if page.math %}
|
33
72
|
<!-- MathJax -->
|
34
73
|
<script>
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
[
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
[
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
<script type="text/javascript" id="MathJax-script" async
|
51
|
-
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
|
74
|
+
/* see: <https://docs.mathjax.org/en/latest/options/input/tex.html#tex-options> */
|
75
|
+
MathJax = {
|
76
|
+
tex: {
|
77
|
+
/* start/end delimiter pairs for in-line math */
|
78
|
+
inlineMath: [
|
79
|
+
['$', '$'],
|
80
|
+
['\\(', '\\)']
|
81
|
+
],
|
82
|
+
/* start/end delimiter pairs for display math */
|
83
|
+
displayMath: [
|
84
|
+
['$$', '$$'],
|
85
|
+
['\\[', '\\]']
|
86
|
+
]
|
87
|
+
}
|
88
|
+
};
|
52
89
|
</script>
|
90
|
+
<script src="{{ site.data.origin[type].polyfill.js | relative_url }}"></script>
|
91
|
+
<script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
|
53
92
|
{% endif %}
|
54
93
|
|
55
|
-
<!-- commons -->
|
56
|
-
|
57
|
-
<script src="https://cdn.jsdelivr.net/combine/npm/popper.js@1.16.1,npm/bootstrap@4/dist/js/bootstrap.min.js"></script>
|
58
|
-
|
59
94
|
{% if jekyll.environment == 'production' %}
|
60
95
|
<!-- PWA -->
|
61
|
-
|
96
|
+
{% if site.pwa.enabled %}
|
97
|
+
<script defer src="{{ '/app.js' | relative_url }}"></script>
|
98
|
+
{% else %}
|
99
|
+
<script defer src="{{ '/unregister.js' | relative_url }}"></script>
|
100
|
+
{% endif %}
|
62
101
|
|
63
102
|
<!-- GA -->
|
64
|
-
{% if site.google_analytics.id %}
|
103
|
+
{% if site.google_analytics.id != empty and site.google_analytics.id %}
|
65
104
|
{% include google-analytics.html %}
|
66
105
|
{% endif %}
|
67
|
-
|
68
106
|
{% endif %}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
{% assign urls = include.urls | split: ',' %}
|
2
|
+
|
3
|
+
{% assign combined_urls = nil %}
|
4
|
+
|
5
|
+
{% assign domain = 'https://cdn.jsdelivr.net/' %}
|
6
|
+
|
7
|
+
{% for url in urls %}
|
8
|
+
{% if url contains domain %}
|
9
|
+
{% assign url_snippet = url | slice: domain.size, url.size %}
|
10
|
+
|
11
|
+
{% if combined_urls %}
|
12
|
+
{% assign combined_urls = combined_urls | append: ',' | append: url_snippet %}
|
13
|
+
{% else %}
|
14
|
+
{% assign combined_urls = domain | append: 'combine/' | append: url_snippet %}
|
15
|
+
{% endif %}
|
16
|
+
|
17
|
+
{% elsif url contains '//' %}
|
18
|
+
<script src="{{ url }}"></script>
|
19
|
+
{% else %}
|
20
|
+
<script src="{{ url | relative_url }}"></script>
|
21
|
+
{% endif %}
|
22
|
+
{% endfor %}
|
23
|
+
|
24
|
+
{% if combined_urls %}
|
25
|
+
<script src="{{ combined_urls }}"></script>
|
26
|
+
{% endif %}
|
data/_includes/lang.html
CHANGED
data/_includes/mermaid.html
CHANGED
@@ -1,57 +1,58 @@
|
|
1
|
-
<!--
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
<script src="https://cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js"></script>
|
6
|
-
|
7
|
-
<script>
|
8
|
-
$(function() {
|
1
|
+
<!-- mermaid-js loader -->
|
2
|
+
<script type="text/javascript">
|
3
|
+
(function () {
|
9
4
|
function updateMermaid(event) {
|
10
|
-
if (event.source === window && event.data &&
|
11
|
-
event.data.direction === ModeToggle.ID) {
|
12
|
-
|
5
|
+
if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
|
13
6
|
const mode = event.data.message;
|
14
7
|
|
15
|
-
if (typeof mermaid ===
|
8
|
+
if (typeof mermaid === 'undefined') {
|
16
9
|
return;
|
17
10
|
}
|
18
11
|
|
19
|
-
let expectedTheme =
|
12
|
+
let expectedTheme = mode === ModeToggle.DARK_MODE ? 'dark' : 'default';
|
20
13
|
let config = { theme: expectedTheme };
|
21
14
|
|
22
15
|
/* Re-render the SVG › <https://github.com/mermaid-js/mermaid/issues/311#issuecomment-332557344> */
|
23
|
-
$(
|
16
|
+
$('.mermaid').each(function () {
|
24
17
|
let svgCode = $(this).prev().children().html();
|
25
|
-
$(this).removeAttr(
|
18
|
+
$(this).removeAttr('data-processed');
|
26
19
|
$(this).html(svgCode);
|
27
20
|
});
|
28
21
|
|
29
22
|
mermaid.initialize(config);
|
30
|
-
mermaid.init(undefined,
|
23
|
+
mermaid.init(undefined, '.mermaid');
|
31
24
|
}
|
32
25
|
}
|
33
26
|
|
34
|
-
let initTheme =
|
27
|
+
let initTheme = 'default';
|
28
|
+
const html = document.documentElement;
|
35
29
|
|
36
|
-
if (
|
37
|
-
|
38
|
-
|
39
|
-
|
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';
|
40
35
|
}
|
41
36
|
|
42
37
|
let mermaidConf = {
|
43
|
-
theme: initTheme
|
38
|
+
theme: initTheme /* <default|dark|forest|neutral> */
|
44
39
|
};
|
45
40
|
|
46
|
-
/*
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
41
|
+
/* Create mermaid tag */
|
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);
|
51
52
|
});
|
52
53
|
|
53
54
|
mermaid.initialize(mermaidConf);
|
54
55
|
|
55
|
-
window.addEventListener(
|
56
|
-
});
|
56
|
+
window.addEventListener('message', updateMermaid);
|
57
|
+
})();
|
57
58
|
</script>
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- A placeholder to allow defining custom metadata -->
|
data/_includes/mode-toggle.html
CHANGED
@@ -1,13 +1,22 @@
|
|
1
|
-
<!--
|
2
|
-
Switch the mode between dark and light.
|
3
|
-
-->
|
1
|
+
<!-- Switch the mode between dark and light. -->
|
4
2
|
|
5
3
|
<script type="text/javascript">
|
6
4
|
class ModeToggle {
|
7
|
-
static get MODE_KEY() {
|
8
|
-
|
9
|
-
|
10
|
-
static get
|
5
|
+
static get MODE_KEY() {
|
6
|
+
return 'mode';
|
7
|
+
}
|
8
|
+
static get MODE_ATTR() {
|
9
|
+
return 'data-mode';
|
10
|
+
}
|
11
|
+
static get DARK_MODE() {
|
12
|
+
return 'dark';
|
13
|
+
}
|
14
|
+
static get LIGHT_MODE() {
|
15
|
+
return 'light';
|
16
|
+
}
|
17
|
+
static get ID() {
|
18
|
+
return 'mode-toggle';
|
19
|
+
}
|
11
20
|
|
12
21
|
constructor() {
|
13
22
|
if (this.hasMode) {
|
@@ -25,13 +34,12 @@
|
|
25
34
|
let self = this;
|
26
35
|
|
27
36
|
/* always follow the system prefers */
|
28
|
-
this.sysDarkPrefers.addEventListener(
|
37
|
+
this.sysDarkPrefers.addEventListener('change', () => {
|
29
38
|
if (self.hasMode) {
|
30
39
|
if (self.isDarkMode) {
|
31
40
|
if (!self.isSysDarkPrefer) {
|
32
41
|
self.setDark();
|
33
42
|
}
|
34
|
-
|
35
43
|
} else {
|
36
44
|
if (self.isSysDarkPrefer) {
|
37
45
|
self.setLight();
|
@@ -42,27 +50,36 @@
|
|
42
50
|
}
|
43
51
|
|
44
52
|
self.notify();
|
45
|
-
|
46
53
|
});
|
47
|
-
|
48
54
|
} /* constructor() */
|
49
55
|
|
50
|
-
get sysDarkPrefers() {
|
56
|
+
get sysDarkPrefers() {
|
57
|
+
return window.matchMedia('(prefers-color-scheme: dark)');
|
58
|
+
}
|
51
59
|
|
52
|
-
get isSysDarkPrefer() {
|
60
|
+
get isSysDarkPrefer() {
|
61
|
+
return this.sysDarkPrefers.matches;
|
62
|
+
}
|
53
63
|
|
54
|
-
get isDarkMode() {
|
64
|
+
get isDarkMode() {
|
65
|
+
return this.mode === ModeToggle.DARK_MODE;
|
66
|
+
}
|
55
67
|
|
56
|
-
get isLightMode() {
|
68
|
+
get isLightMode() {
|
69
|
+
return this.mode === ModeToggle.LIGHT_MODE;
|
70
|
+
}
|
57
71
|
|
58
|
-
get hasMode() {
|
72
|
+
get hasMode() {
|
73
|
+
return this.mode != null;
|
74
|
+
}
|
59
75
|
|
60
|
-
get mode() {
|
76
|
+
get mode() {
|
77
|
+
return sessionStorage.getItem(ModeToggle.MODE_KEY);
|
78
|
+
}
|
61
79
|
|
62
80
|
/* get the current mode on screen */
|
63
81
|
get modeStatus() {
|
64
|
-
if (this.isDarkMode
|
65
|
-
|| (!this.hasMode && this.isSysDarkPrefer)) {
|
82
|
+
if (this.isDarkMode || (!this.hasMode && this.isSysDarkPrefer)) {
|
66
83
|
return ModeToggle.DARK_MODE;
|
67
84
|
} else {
|
68
85
|
return ModeToggle.LIGHT_MODE;
|
@@ -70,59 +87,57 @@
|
|
70
87
|
}
|
71
88
|
|
72
89
|
setDark() {
|
73
|
-
|
90
|
+
document.documentElement.setAttribute(ModeToggle.MODE_ATTR, ModeToggle.DARK_MODE);
|
74
91
|
sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.DARK_MODE);
|
75
92
|
}
|
76
93
|
|
77
94
|
setLight() {
|
78
|
-
|
95
|
+
document.documentElement.setAttribute(ModeToggle.MODE_ATTR, ModeToggle.LIGHT_MODE);
|
79
96
|
sessionStorage.setItem(ModeToggle.MODE_KEY, ModeToggle.LIGHT_MODE);
|
80
97
|
}
|
81
98
|
|
82
99
|
clearMode() {
|
83
|
-
|
100
|
+
document.documentElement.removeAttribute(ModeToggle.MODE_ATTR);
|
84
101
|
sessionStorage.removeItem(ModeToggle.MODE_KEY);
|
85
102
|
}
|
86
103
|
|
87
104
|
/* Notify another plugins that the theme mode has changed */
|
88
105
|
notify() {
|
89
|
-
window.postMessage(
|
90
|
-
|
91
|
-
|
92
|
-
|
106
|
+
window.postMessage(
|
107
|
+
{
|
108
|
+
direction: ModeToggle.ID,
|
109
|
+
message: this.modeStatus
|
110
|
+
},
|
111
|
+
'*'
|
112
|
+
);
|
93
113
|
}
|
94
114
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
toggle.clearMode();
|
115
|
+
flipMode() {
|
116
|
+
if (this.hasMode) {
|
117
|
+
if (this.isSysDarkPrefer) {
|
118
|
+
if (this.isLightMode) {
|
119
|
+
this.clearMode();
|
120
|
+
} else {
|
121
|
+
this.setLight();
|
122
|
+
}
|
104
123
|
} else {
|
105
|
-
|
124
|
+
if (this.isDarkMode) {
|
125
|
+
this.clearMode();
|
126
|
+
} else {
|
127
|
+
this.setDark();
|
128
|
+
}
|
106
129
|
}
|
107
|
-
|
108
130
|
} else {
|
109
|
-
if (
|
110
|
-
|
131
|
+
if (this.isSysDarkPrefer) {
|
132
|
+
this.setLight();
|
111
133
|
} else {
|
112
|
-
|
134
|
+
this.setDark();
|
113
135
|
}
|
114
136
|
}
|
115
137
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
} else {
|
120
|
-
toggle.setDark();
|
121
|
-
}
|
122
|
-
}
|
123
|
-
|
124
|
-
toggle.notify();
|
125
|
-
|
126
|
-
} /* flipMode() */
|
138
|
+
this.notify();
|
139
|
+
} /* flipMode() */
|
140
|
+
} /* ModeToggle */
|
127
141
|
|
142
|
+
const modeToggle = new ModeToggle();
|
128
143
|
</script>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<aside
|
2
|
+
id="notification"
|
3
|
+
class="toast"
|
4
|
+
role="alert"
|
5
|
+
aria-live="assertive"
|
6
|
+
aria-atomic="true"
|
7
|
+
data-bs-animation="true"
|
8
|
+
data-bs-autohide="false"
|
9
|
+
>
|
10
|
+
<div class="toast-header">
|
11
|
+
<button
|
12
|
+
type="button"
|
13
|
+
class="btn-close ms-auto"
|
14
|
+
data-bs-dismiss="toast"
|
15
|
+
aria-label="Close"
|
16
|
+
></button>
|
17
|
+
</div>
|
18
|
+
<div class="toast-body text-center pt-0">
|
19
|
+
<p class="px-2 mb-3">{{ site.data.locales[include.lang].notification.update_found }}</p>
|
20
|
+
<button type="button" class="btn btn-primary" aria-label="Update">
|
21
|
+
{{ site.data.locales[include.lang].notification.update }}
|
22
|
+
</button>
|
23
|
+
</div>
|
24
|
+
</aside>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{% comment %} Site static assets origin type {% endcomment %}
|
2
|
+
|
3
|
+
{% assign type = 'cors' %}
|
4
|
+
|
5
|
+
{% if site.assets.self_host.enabled %}
|
6
|
+
{% if site.assets.self_host.env %}
|
7
|
+
{% if site.assets.self_host.env == jekyll.environment %}
|
8
|
+
{% assign type = 'basic' %}
|
9
|
+
{% endif %}
|
10
|
+
{% else %}
|
11
|
+
{% assign type = 'basic' %}
|
12
|
+
{% endif %}
|
13
|
+
{% endif %}
|
data/_includes/post-nav.html
CHANGED
@@ -1,30 +1,34 @@
|
|
1
|
-
<!--
|
2
|
-
|
3
|
-
|
1
|
+
<!-- Navigation buttons at the bottom of the post. -->
|
2
|
+
|
3
|
+
<nav class="post-navigation d-flex justify-content-between" aria-label="Post Navigation">
|
4
|
+
{% assign previous = site.data.locales[include.lang].post.button.previous %}
|
5
|
+
{% assign next = site.data.locales[include.lang].post.button.next %}
|
4
6
|
|
5
|
-
<div class="post-navigation d-flex justify-content-between">
|
6
7
|
{% if page.previous.url %}
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
<a
|
9
|
+
href="{{ site.baseurl }}{{ page.previous.url }}"
|
10
|
+
class="btn btn-outline-primary"
|
11
|
+
aria-label="{{ previous }}"
|
12
|
+
>
|
13
|
+
<p>{{ page.previous.title }}</p>
|
14
|
+
</a>
|
11
15
|
{% else %}
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
</span>
|
16
|
+
<div class="btn btn-outline-primary disabled" aria-label="{{ previous }}">
|
17
|
+
<p>-</p>
|
18
|
+
</div>
|
16
19
|
{% endif %}
|
17
20
|
|
18
21
|
{% if page.next.url %}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
<a
|
23
|
+
href="{{ site.baseurl }}{{page.next.url}}"
|
24
|
+
class="btn btn-outline-primary"
|
25
|
+
aria-label="{{ next }}"
|
26
|
+
>
|
27
|
+
<p>{{ page.next.title }}</p>
|
28
|
+
</a>
|
23
29
|
{% else %}
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
</span>
|
30
|
+
<div class="btn btn-outline-primary disabled" aria-label="{{ next }}">
|
31
|
+
<p>-</p>
|
32
|
+
</div>
|
28
33
|
{% endif %}
|
29
|
-
|
30
|
-
</div>
|
34
|
+
</nav>
|