hexo-theme-gnix 7.0.0 → 9.0.0

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 (53) hide show
  1. package/README.md +6 -2
  2. package/include/hexo/encrypt.js +42 -0
  3. package/include/hexo/feed.js +330 -0
  4. package/include/util/common.js +7 -16
  5. package/languages/en.yml +5 -2
  6. package/languages/zh-CN.yml +5 -2
  7. package/layout/archive.jsx +8 -204
  8. package/layout/comment/twikoo.jsx +2 -11
  9. package/layout/common/article.jsx +45 -32
  10. package/layout/common/article_cover.jsx +11 -1
  11. package/layout/common/article_media.jsx +2 -4
  12. package/layout/common/footer.jsx +10 -14
  13. package/layout/common/head.jsx +7 -15
  14. package/layout/common/navbar.jsx +3 -18
  15. package/layout/common/scripts.jsx +6 -5
  16. package/layout/common/theme_selector.jsx +5 -6
  17. package/layout/common/toc.jsx +8 -14
  18. package/layout/index.jsx +2 -4
  19. package/layout/misc/open_graph.jsx +4 -4
  20. package/layout/misc/paginator.jsx +10 -4
  21. package/layout/misc/structured_data.jsx +3 -4
  22. package/layout/plugin/busuanzi.jsx +1 -1
  23. package/layout/plugin/cookie_consent.jsx +40 -31
  24. package/layout/plugin/swup.jsx +2 -22
  25. package/layout/search/insight.jsx +16 -3
  26. package/package.json +12 -8
  27. package/scripts/hot-reload.js +92 -0
  28. package/scripts/index.js +2 -0
  29. package/source/css/archive.css +251 -0
  30. package/source/css/default.css +300 -309
  31. package/source/css/encrypt.css +55 -0
  32. package/source/css/responsive/desktop.css +0 -119
  33. package/source/css/responsive/mobile.css +2 -22
  34. package/source/css/responsive/touch.css +9 -103
  35. package/source/css/twikoo.css +265 -249
  36. package/source/img/og_image.webp +0 -0
  37. package/source/js/archive-breadcrumb.js +1 -5
  38. package/source/js/busuanzi.js +1 -12
  39. package/source/js/components/chat.js +239 -0
  40. package/source/js/components/image-carousel.js +410 -0
  41. package/source/js/components/text-image-section.js +180 -0
  42. package/source/js/components/theme-stacked.js +165 -246
  43. package/source/js/components/tree.js +437 -0
  44. package/source/js/decrypt.js +112 -0
  45. package/source/js/insight.js +75 -65
  46. package/source/js/main.js +48 -31
  47. package/source/js/mdit/mermaid.js +12 -4
  48. package/source/js/swup.bundle.js +1 -0
  49. package/source/js/theme-selector.js +94 -113
  50. package/source/img/og_image.png +0 -0
  51. package/source/js/host/swup/Swup.umd.min.js +0 -1
  52. package/source/js/host/swup/head-plugin.umd.min.js +0 -1
  53. package/source/js/host/swup/scripts-plugin.umd.min.js +0 -2
@@ -0,0 +1,55 @@
1
+ .encrypted-content {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+ justify-content: center;
6
+ min-height: 200px;
7
+ padding: 2rem 1rem;
8
+ }
9
+
10
+ .encrypt-form {
11
+ display: flex;
12
+ flex-direction: column;
13
+ align-items: center;
14
+ gap: 1rem;
15
+ width: 100%;
16
+ max-width: 360px;
17
+ }
18
+
19
+ .encrypt-message {
20
+ color: var(--overlay0);
21
+ font-size: 0.95rem;
22
+ text-align: center;
23
+ margin: 0;
24
+ }
25
+
26
+ .encrypt-input-wrap {
27
+ width: 100%;
28
+ }
29
+
30
+ .encrypt-input-wrap input {
31
+ width: 100%;
32
+ padding: 0.6rem 0.8rem;
33
+ border: 1.5px solid var(--surface2);
34
+ border-radius: var(--radius);
35
+ background: var(--mantle);
36
+ color: var(--text);
37
+ font-size: 0.95rem;
38
+ outline: none;
39
+ transition: border-color 0.2s;
40
+ box-sizing: border-box;
41
+ }
42
+
43
+ .encrypt-input-wrap input:focus {
44
+ border-color: var(--lavender);
45
+ }
46
+
47
+ .encrypt-input-wrap input::placeholder {
48
+ color: var(--overlay0);
49
+ }
50
+
51
+ .encrypt-error {
52
+ color: var(--red);
53
+ font-size: 0.85rem;
54
+ margin: 0;
55
+ }
@@ -1,7 +1,4 @@
1
1
  /* min-width: 1024px */
2
- .is-hidden-desktop {
3
- display: none;
4
- }
5
2
 
6
3
  .navbar-burger {
7
4
  display: none;
@@ -37,119 +34,3 @@
37
34
  justify-content: flex-end;
38
35
  margin-left: auto;
39
36
  }
40
-
41
- #icarus-toc-container {
42
- position: fixed;
43
- right: 30px;
44
- top: 50%;
45
- transform: translateY(-50%);
46
- }
47
-
48
- .toc-button {
49
- display: none;
50
- }
51
-
52
- .toc-body {
53
- display: block;
54
- background: transparent;
55
- }
56
-
57
- .toc {
58
- padding: 0;
59
- margin: 0;
60
- list-style: none;
61
- display: flex;
62
- flex-direction: column;
63
- align-items: flex-end;
64
- }
65
-
66
- .toc-item {
67
- list-style: none;
68
- margin-bottom: 8px;
69
- position: relative;
70
- display: flex;
71
- justify-content: flex-end;
72
- flex-direction: column;
73
- align-items: flex-end;
74
- }
75
-
76
- /* Text Label */
77
- .toc-text {
78
- opacity: 0;
79
- transform: translateX(10px);
80
- transition: all 0.3s ease;
81
- font-size: 0.9rem;
82
- color: var(--text);
83
- white-space: nowrap;
84
- position: absolute;
85
- right: 100%;
86
- margin-right: 10px;
87
- pointer-events: none;
88
- }
89
-
90
- /* Hover on Container -> Show all text */
91
- #icarus-toc-container:hover .toc-text {
92
- opacity: 1;
93
- transform: translateX(0);
94
- }
95
-
96
- .toc-link {
97
- display: flex;
98
- align-items: center;
99
- justify-content: flex-end;
100
- text-decoration: none;
101
- height: 23px;
102
- position: relative;
103
- &:hover {
104
- &::after {
105
- background-color: var(--rosewater);
106
- box-shadow: 0 0 8px var(--lavender);
107
- }
108
- .toc-text {
109
- color: var(--mauve);
110
- }
111
- }
112
- }
113
-
114
- /* The Abstract Bar */
115
- .toc-link::after {
116
- content: "";
117
- display: block;
118
- height: 4px;
119
- border-radius: 2px;
120
- background-color: var(--surface0);
121
- transition: all 0.3s ease;
122
- margin-left: 15px;
123
- }
124
-
125
- /* Level variations - Width */
126
- .toc-level-1 > .toc-link::after {
127
- width: 30px;
128
- }
129
-
130
- .toc-level-2 > .toc-link::after {
131
- width: 30px;
132
- }
133
-
134
- .toc-level-3 > .toc-link::after {
135
- width: 24px;
136
- }
137
-
138
- .toc-level-4 > .toc-link::after {
139
- width: 18px;
140
- }
141
-
142
- .toc-level-5 > .toc-link::after {
143
- width: 14px;
144
- }
145
-
146
- .toc-level-6 > .toc-link::after {
147
- width: 10px;
148
- }
149
-
150
- /* Hide children lists container styling if any */
151
- .toc-child {
152
- padding: 0;
153
- margin: 0;
154
- display: contents;
155
- }
@@ -16,12 +16,7 @@ td {
16
16
  }
17
17
 
18
18
  .section {
19
- padding: 1rem 0 2rem 0;
20
- }
21
-
22
- .card {
23
- border-left: none;
24
- border-right: none;
19
+ padding: 0;
25
20
  }
26
21
 
27
22
  .cover-image {
@@ -29,21 +24,6 @@ td {
29
24
  border-radius: 0;
30
25
  }
31
26
 
32
- .card .card-content {
33
- padding: 1rem;
34
- }
35
-
36
27
  .pagination {
37
- flex-wrap: wrap;
38
- }
39
-
40
- .pagination-previous,
41
- .pagination-next {
42
- flex-grow: 1;
43
- flex-shrink: 1;
44
- }
45
-
46
- .pagination-list li {
47
- flex-grow: 1;
48
- flex-shrink: 1;
28
+ height: 2.5em;
49
29
  }
@@ -135,115 +135,21 @@
135
135
 
136
136
  /* #endregion Navbar */
137
137
 
138
- .theme-selector-content {
138
+ .theme-selector-list {
139
139
  width: 80%;
140
140
  padding: 1.5rem;
141
141
  }
142
142
 
143
- /* #region TOC */
144
- #icarus-toc-container .toc-button:hover {
145
- transform: scale(1.1);
146
- color: var(--lavender);
147
- }
148
-
149
- #icarus-toc-container {
150
- position: fixed;
151
- bottom: 20px;
152
- right: 20px;
153
- z-index: 99;
154
- }
155
-
156
- #icarus-toc-container .toc-body {
157
- position: fixed;
158
- inset: 0;
159
- background: hsl(from var(--mantle) h s l / 0.8);
160
- backdrop-filter: blur(10px);
161
- display: flex;
162
- flex-direction: column;
163
- justify-content: center;
164
- padding: 2rem;
165
- visibility: hidden;
166
- pointer-events: none;
167
- font-weight: 800;
168
- }
169
-
170
- #icarus-toc-container.is-open .toc-body {
171
- opacity: 1;
172
- visibility: visible;
173
- pointer-events: auto;
174
- }
175
-
176
- #icarus-toc-container .toc {
177
- max-height: 80vh;
178
- overflow-y: auto;
179
- padding: 0;
180
- list-style: none;
181
- }
182
-
183
- #icarus-toc-container .toc-item {
184
- margin-bottom: 0.5rem;
185
- }
186
-
187
- #icarus-toc-container .toc-text {
188
- font-family: var(--font-article);
189
- }
190
-
191
- .toc-level-2 span {
192
- color: var(--peach);
193
- font-size: 1.875rem;
194
- }
195
-
196
- .toc-level-3 span {
197
- color: var(--yellow);
198
- font-size: 1.5rem;
199
- }
200
-
201
- .toc-level-4 span {
202
- color: var(--green);
203
- font-size: 1.25rem;
204
- }
205
-
206
- .toc-level-5 span {
207
- color: var(--blue);
208
- font-size: 1rem;
209
- }
210
-
211
- .toc-level-6 span {
212
- color: var(--mauve);
213
- font-size: 0.875rem;
214
- }
215
-
216
- #icarus-toc-container .toc-item.is-active > .toc-link {
217
- color: var(--lavender);
218
- font-weight: bold;
219
- }
220
-
221
- /* Indentation for mobile */
222
- #icarus-toc-container .toc-child {
223
- padding-left: 1.5rem;
224
- list-style: none;
225
- }
226
-
227
- #icarus-toc-container .toc-text {
228
- /* Ensure text is visible on mobile */
229
- display: inline;
230
- }
231
-
232
- .toc-button {
233
- width: 48px;
234
- height: 48px;
235
- border-radius: 50%;
236
- display: flex;
237
- justify-content: center;
238
- align-items: center;
239
- background-color: hsl(from var(--mantle) h s l / 0.9);
240
- color: var(--text);
241
- border: 2px solid var(--surface0);
242
- }
243
-
244
143
  .searchbox-container {
245
144
  top: 15px;
246
145
  width: 90%;
247
146
  }
248
147
 
249
- /* #endregion TOC */
148
+ .toc-button {
149
+ top: auto;
150
+ bottom: 3rem;
151
+ right: 1rem;
152
+ left: auto;
153
+ background-color: var(--base);
154
+ border: 2px solid var(--surface0);
155
+ }