jekyll-theme-chirpy 5.0.2 → 6.2.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.
Files changed (114) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +64 -74
  3. data/_data/locales/ar.yml +91 -0
  4. data/_data/locales/bg-BG.yml +81 -0
  5. data/_data/locales/cs-CZ.yml +89 -0
  6. data/_data/locales/de-DE.yml +80 -0
  7. data/_data/locales/el-GR.yml +91 -0
  8. data/_data/locales/en.yml +23 -23
  9. data/_data/locales/es-ES.yml +77 -0
  10. data/_data/locales/fi-FI.yml +90 -0
  11. data/_data/locales/fr-FR.yml +77 -0
  12. data/_data/locales/hu-HU.yml +79 -0
  13. data/_data/locales/id-ID.yml +5 -19
  14. data/_data/locales/it-IT.yml +90 -0
  15. data/_data/locales/ko-KR.yml +12 -19
  16. data/_data/locales/my-MM.yml +77 -0
  17. data/_data/locales/pt-BR.yml +77 -0
  18. data/_data/locales/ru-RU.yml +77 -0
  19. data/_data/locales/sl-SI.yml +91 -0
  20. data/_data/locales/sv-SE.yml +91 -0
  21. data/_data/locales/th.yml +91 -0
  22. data/_data/locales/tr-TR.yml +77 -0
  23. data/_data/locales/uk-UA.yml +77 -0
  24. data/_data/locales/vi-VN.yml +76 -0
  25. data/_data/locales/zh-CN.yml +13 -20
  26. data/_data/locales/zh-TW.yml +83 -0
  27. data/_data/origin/basic.yml +48 -0
  28. data/_data/origin/cors.yml +59 -0
  29. data/_includes/comments/disqus.html +27 -31
  30. data/_includes/comments/giscus.html +64 -0
  31. data/_includes/comments/utterances.html +2 -2
  32. data/_includes/datetime.html +20 -0
  33. data/_includes/embed/twitch.html +4 -0
  34. data/_includes/embed/youtube.html +6 -0
  35. data/_includes/footer.html +31 -32
  36. data/_includes/head.html +66 -46
  37. data/_includes/js-selector.html +83 -45
  38. data/_includes/jsdelivr-combine.html +26 -0
  39. data/_includes/lang.html +1 -1
  40. data/_includes/mermaid.html +30 -29
  41. data/_includes/metadata-hook.html +1 -0
  42. data/_includes/mode-toggle.html +66 -51
  43. data/_includes/notification.html +24 -0
  44. data/_includes/origin-type.html +13 -0
  45. data/_includes/post-nav.html +26 -22
  46. data/_includes/post-paginator.html +79 -76
  47. data/_includes/post-sharing.html +27 -16
  48. data/_includes/read-time.html +17 -10
  49. data/_includes/refactor-content.html +129 -73
  50. data/_includes/related-posts.html +48 -58
  51. data/_includes/search-loader.html +32 -31
  52. data/_includes/search-results.html +4 -5
  53. data/_includes/sidebar.html +79 -67
  54. data/_includes/toc.html +4 -7
  55. data/_includes/topbar.html +62 -56
  56. data/_includes/trending-tags.html +15 -19
  57. data/_includes/update-list.html +14 -15
  58. data/_layouts/archives.html +25 -29
  59. data/_layouts/categories.html +97 -58
  60. data/_layouts/category.html +8 -10
  61. data/_layouts/default.html +67 -31
  62. data/_layouts/home.html +67 -56
  63. data/_layouts/page.html +20 -58
  64. data/_layouts/post.html +85 -94
  65. data/_layouts/tag.html +8 -10
  66. data/_layouts/tags.html +6 -5
  67. data/_sass/addon/commons.scss +679 -878
  68. data/_sass/addon/module.scss +70 -23
  69. data/_sass/addon/syntax.scss +127 -110
  70. data/_sass/addon/variables.scss +16 -18
  71. data/_sass/colors/syntax-dark.scss +138 -0
  72. data/_sass/colors/syntax-light.scss +179 -0
  73. data/_sass/colors/{dark-typography.scss → typography-dark.scss} +58 -56
  74. data/_sass/colors/typography-light.scss +110 -0
  75. data/_sass/layout/archives.scss +86 -89
  76. data/_sass/layout/categories.scss +29 -13
  77. data/_sass/layout/category-tag.scss +9 -10
  78. data/_sass/layout/home.scss +132 -114
  79. data/_sass/layout/post.scss +213 -173
  80. data/_sass/layout/tags.scss +1 -1
  81. data/_sass/main.scss +13 -0
  82. data/assets/404.html +1 -20
  83. data/assets/css/jekyll-theme-chirpy.scss +6 -0
  84. data/assets/feed.xml +2 -2
  85. data/assets/js/data/search.json +8 -5
  86. data/assets/js/data/swcache.js +14 -29
  87. data/assets/js/dist/categories.min.js +2 -4
  88. data/assets/js/dist/commons.min.js +2 -4
  89. data/assets/js/dist/home.min.js +2 -4
  90. data/assets/js/dist/misc.min.js +4 -0
  91. data/assets/js/dist/page.min.js +2 -4
  92. data/assets/js/dist/post.min.js +2 -4
  93. data/assets/js/pwa/app.js +42 -4
  94. data/assets/js/pwa/sw.js +46 -44
  95. data/assets/js/pwa/unregister.js +12 -0
  96. metadata +64 -32
  97. data/_config.yml +0 -175
  98. data/_data/contact.yml +0 -30
  99. data/_data/share.yml +0 -27
  100. data/_includes/css-selector.html +0 -15
  101. data/_includes/no-zero-date.html +0 -13
  102. data/_includes/timeago.html +0 -26
  103. data/_plugins/posts-lastmod-hook.rb +0 -14
  104. data/_sass/colors/dark-syntax.scss +0 -87
  105. data/_sass/colors/light-syntax.scss +0 -79
  106. data/_sass/colors/light-typography.scss +0 -81
  107. data/_sass/jekyll-theme-chirpy.scss +0 -24
  108. data/_tabs/about.md +0 -8
  109. data/_tabs/archives.md +0 -7
  110. data/_tabs/categories.md +0 -6
  111. data/_tabs/tags.md +0 -6
  112. data/assets/css/style.scss +0 -12
  113. data/assets/js/dist/pvreport.min.js +0 -6
  114. data/index.html +0 -4
@@ -1,68 +1,106 @@
1
- <!--
2
- JS selector for site.
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
- {% if site.google_analytics.pv.proxy_endpoint or site.google_analytics.pv.cache_path %}
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
- {% if page.layout == 'post' or page.layout == 'page' %}
16
- <!-- image lazy-loading & popup -->
17
- <script src="https://cdn.jsdelivr.net/combine/npm/lozad/dist/lozad.min.js,npm/magnific-popup@1/dist/jquery.magnific-popup.min.js,npm/clipboard@2/dist/clipboard.min.js"></script>
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
- or page.layout == 'categories'
22
- or page.layout == 'post'
23
- or page.layout == 'page' %}
24
- {% assign type = page.layout %}
25
- {% else %}
26
- {% assign type = "commons" %}
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
- {% assign js = type | prepend: '/assets/js/dist/' | append: '.min.js' %}
30
- <script defer src="{{ js | relative_url }}"></script>
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
- /* see: <https://docs.mathjax.org/en/latest/options/input/tex.html#tex-options> */
36
- MathJax = {
37
- tex: {
38
- inlineMath: [ /* start/end delimiter pairs for in-line math */
39
- ['$','$'],
40
- ['\\(','\\)']
41
- ],
42
- displayMath: [ /* start/end delimiter pairs for display math */
43
- ['$$', '$$'],
44
- ['\\[', '\\]']
45
- ]
46
- }
47
- };
48
- </script>
49
- <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
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
- <script defer src="{{ '/app.js' | relative_url }}"></script>
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
@@ -1,5 +1,5 @@
1
1
  {% comment %}
2
- Detect appearance language and return it through variable "lang"
2
+ Detect appearance language and return it through variable "lang"
3
3
  {% endcomment %}
4
4
  {% if site.data.locales[site.lang] %}
5
5
  {% assign lang = site.lang %}
@@ -1,57 +1,58 @@
1
- <!--
2
- mermaid-js loader
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 === "undefined") {
8
+ if (typeof mermaid === 'undefined') {
16
9
  return;
17
10
  }
18
11
 
19
- let expectedTheme = (mode === ModeToggle.DARK_MODE? "dark" : "default");
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
- $(".mermaid").each(function() {
16
+ $('.mermaid').each(function () {
24
17
  let svgCode = $(this).prev().children().html();
25
- $(this).removeAttr("data-processed");
18
+ $(this).removeAttr('data-processed');
26
19
  $(this).html(svgCode);
27
20
  });
28
21
 
29
22
  mermaid.initialize(config);
30
- mermaid.init(undefined, ".mermaid");
23
+ mermaid.init(undefined, '.mermaid');
31
24
  }
32
25
  }
33
26
 
34
- let initTheme = "default";
27
+ let initTheme = 'default';
28
+ const html = document.documentElement;
35
29
 
36
- if ($("html[mode=dark]").length > 0
37
- || ($("html[mode]").length == 0
38
- && window.matchMedia("(prefers-color-scheme: dark)").matches ) ) {
39
- initTheme = "dark";
30
+ if (
31
+ (html.hasAttribute('data-mode') && html.getAttribute('data-mode') === 'dark') ||
32
+ (!html.hasAttribute('data-mode') && window.matchMedia('(prefers-color-scheme: dark)').matches)
33
+ ) {
34
+ initTheme = 'dark';
40
35
  }
41
36
 
42
37
  let mermaidConf = {
43
- theme: initTheme /* <default|dark|forest|neutral> */
38
+ theme: initTheme /* <default|dark|forest|neutral> */
44
39
  };
45
40
 
46
- /* Markdown converts to HTML */
47
- $("pre").has("code.language-mermaid").each(function() {
48
- let svgCode = $(this).children().html();
49
- $(this).addClass("unloaded");
50
- $(this).after(`<div class=\"mermaid\">${svgCode}</div>`);
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("message", updateMermaid);
56
- });
56
+ window.addEventListener('message', updateMermaid);
57
+ })();
57
58
  </script>
@@ -0,0 +1 @@
1
+ <!-- A placeholder to allow defining custom metadata -->
@@ -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() { return "mode"; }
8
- static get DARK_MODE() { return "dark"; }
9
- static get LIGHT_MODE() { return "light"; }
10
- static get ID() { return "mode-toggle"; }
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("change", () => {
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() { return window.matchMedia("(prefers-color-scheme: dark)"); }
56
+ get sysDarkPrefers() {
57
+ return window.matchMedia('(prefers-color-scheme: dark)');
58
+ }
51
59
 
52
- get isSysDarkPrefer() { return this.sysDarkPrefers.matches; }
60
+ get isSysDarkPrefer() {
61
+ return this.sysDarkPrefers.matches;
62
+ }
53
63
 
54
- get isDarkMode() { return this.mode === ModeToggle.DARK_MODE; }
64
+ get isDarkMode() {
65
+ return this.mode === ModeToggle.DARK_MODE;
66
+ }
55
67
 
56
- get isLightMode() { return this.mode === ModeToggle.LIGHT_MODE; }
68
+ get isLightMode() {
69
+ return this.mode === ModeToggle.LIGHT_MODE;
70
+ }
57
71
 
58
- get hasMode() { return this.mode != null; }
72
+ get hasMode() {
73
+ return this.mode != null;
74
+ }
59
75
 
60
- get mode() { return sessionStorage.getItem(ModeToggle.MODE_KEY); }
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
- $('html').attr(ModeToggle.MODE_KEY, ModeToggle.DARK_MODE);
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
- $('html').attr(ModeToggle.MODE_KEY, ModeToggle.LIGHT_MODE);
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
- $('html').removeAttr(ModeToggle.MODE_KEY);
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
- direction: ModeToggle.ID,
91
- message: this.modeStatus
92
- }, "*");
106
+ window.postMessage(
107
+ {
108
+ direction: ModeToggle.ID,
109
+ message: this.modeStatus
110
+ },
111
+ '*'
112
+ );
93
113
  }
94
114
 
95
- } /* ModeToggle */
96
-
97
- const toggle = new ModeToggle();
98
-
99
- function flipMode() {
100
- if (toggle.hasMode) {
101
- if (toggle.isSysDarkPrefer) {
102
- if (toggle.isLightMode) {
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
- toggle.setLight();
124
+ if (this.isDarkMode) {
125
+ this.clearMode();
126
+ } else {
127
+ this.setDark();
128
+ }
106
129
  }
107
-
108
130
  } else {
109
- if (toggle.isDarkMode) {
110
- toggle.clearMode();
131
+ if (this.isSysDarkPrefer) {
132
+ this.setLight();
111
133
  } else {
112
- toggle.setDark();
134
+ this.setDark();
113
135
  }
114
136
  }
115
137
 
116
- } else {
117
- if (toggle.isSysDarkPrefer) {
118
- toggle.setLight();
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 %}
@@ -1,30 +1,34 @@
1
- <!--
2
- Navigation buttons at the bottom of the post.
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
- <a href="{{ site.baseurl }}{{ page.previous.url }}" class="btn btn-outline-primary"
8
- prompt="{{ site.data.locales[lang].post.button.previous }}">
9
- <p>{{ page.previous.title }}</p>
10
- </a>
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
- <span class="btn btn-outline-primary disabled"
13
- prompt="{{ site.data.locales[lang].post.button.previous }}">
14
- <p>-</p>
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
- <a href="{{ site.baseurl }}{{page.next.url}}" class="btn btn-outline-primary"
20
- prompt="{{ site.data.locales[lang].post.button.next }}">
21
- <p>{{ page.next.title }}</p>
22
- </a>
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
- <span class="btn btn-outline-primary disabled"
25
- prompt="{{ site.data.locales[lang].post.button.next }}">
26
- <p>-</p>
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>