Compare commits

...

232 Commits

Author SHA1 Message Date
Mimi
b90614fba4 Update npm-publish.yml 2026-01-06 11:37:02 +08:00
Mimi
6ee5480403 Release v8.27.0 2025-12-31 23:54:18 +08:00
Mimi
3ecb958423 Update .gitignore 2025-12-31 23:52:15 +08:00
renovate[bot]
82f780fc56
Update dessant/lock-threads action to v6 (#944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:47:14 +08:00
renovate[bot]
12acb69171
Update dependency stylelint to v16.26.1 (#941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:46:54 +08:00
renovate[bot]
91d1aaca9b
Update actions/checkout action to v6 (#940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:45:28 +08:00
renovate[bot]
bf059cc25a
Update dependency js-yaml to v4.1.1 [SECURITY] (#939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:45:15 +08:00
renovate[bot]
db63a76823
Update dependency chai to v6.2.2 (#934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:43:07 +08:00
renovate[bot]
e9dd671ed7
Update dependency mocha to v11.7.5 (#932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:40:36 +08:00
renovate[bot]
b6cbb64ab1
Update dependency eslint to v9.39.2 (#931)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 23:39:58 +08:00
Mimi
4d66cf46c9 Enable darkmode by default 2025-11-26 20:08:12 +08:00
Mimi
726834cd48 Update Hexo version 2025-11-04 17:21:42 +08:00
TootsCharlie
fd72e89ba7
Add body option to gitalk configuration to support custom issue content (#877)
Co-authored-by: Mimi <1119186082@qq.com>
2025-11-03 20:55:40 +08:00
Mimi
2a6af757f2 Release v8.26.0 2025-11-03 20:51:57 +08:00
renovate[bot]
cfbc0d89a6
Update actions/setup-node action to v6 (#928)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:36:42 +08:00
renovate[bot]
595e724a66
Update github/codeql-action action to v4 (#926)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:36:19 +08:00
renovate[bot]
2c822eda0d
Update dependency mocha to v11.7.4 (#925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:35:41 +08:00
renovate[bot]
73cd9254c6
Update dependency chai to v6.2.0 (#923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:33:37 +08:00
renovate[bot]
0ba36eecff
Update dependency hexo to v8 (#922)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:33:20 +08:00
renovate[bot]
4717bccd08
Update dependency stylelint to v16.25.0 (#921)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:29:49 +08:00
renovate[bot]
53a9f1e398
Update dependency eslint to v9.39.0 (#920)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:29:34 +08:00
renovate[bot]
47a185b655
Update actions/labeler action to v6 (#919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:29:20 +08:00
renovate[bot]
bbf85e97a9
Update actions/setup-python action to v6 (#917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 14:29:08 +08:00
where where
0a02719361
Add supports of light-dark function (#899) 2025-11-03 14:28:49 +08:00
Mimi
5098e8cdfa Release v8.25.0 2025-09-04 16:16:20 +08:00
renovate[bot]
cb28415573
Update dependency mocha to v11.7.2 (#914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 11:01:10 +08:00
renovate[bot]
fcb9c5a143
Update dependency eslint to v9.34.0 (#912)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 10:58:41 +08:00
renovate[bot]
05c8cdb660
Update dependency chai to v6 (#911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-04 10:52:57 +08:00
Mimi
e3de2542ee Update _vendors.yml 2025-09-04 10:35:15 +08:00
Mimi
1415cdcc95 Deprecate Growingio 2025-09-04 01:10:47 +08:00
Mimi
ae7bcea86d Deprecate leancloud_visitors 2025-09-04 00:43:11 +08:00
Mimi
b27b8ebe44 Fix changyan undefined 2025-09-04 00:15:45 +08:00
Mimi
9519ed1733 Deprecate changyan 2025-09-03 18:12:43 +08:00
Mimi
05fb97779b Fix utterances class name conflict 2025-09-03 18:07:55 +08:00
Mimi
2695b0795d Fix figure margin 2025-08-22 12:11:49 +08:00
Jason Ren
bcd927663b
Fix font family (#910) 2025-08-19 09:57:46 +08:00
Mimi
0259a4f44a Release v8.24.1 2025-08-18 10:25:09 +08:00
renovate[bot]
eada2d5ae6
Update actions/checkout action to v5 (#904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 10:23:44 +08:00
renovate[bot]
a684f4fb49
Update dependency eslint to v9.33.0 (#902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 10:23:27 +08:00
renovate[bot]
1bc8adab61
Update dependency stylelint to v16.23.1 (#900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 10:21:51 +08:00
Mimi
77bdcd4525 Update _vendors.yml 2025-08-18 10:20:21 +08:00
Mimi
6f31287e3c Update default option for addtoany 2025-08-17 16:48:10 +08:00
Mimi
56a3ce1b4d Fix font-family 2025-08-13 06:37:02 +08:00
Mimi
40e5141e69 Patch pangu.js 2025-08-12 10:56:10 +08:00
Mimi
509815e558 Release v8.24.0 2025-08-09 23:38:48 +08:00
renovate[bot]
cbc75c50b6
Update dependency stylelint to v16.23.0 (#897)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 23:20:40 +08:00
renovate[bot]
6706f1b914
Update dependency eslint to v9.32.0 (#896)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 23:17:00 +08:00
renovate[bot]
08acbfeffb
Update dependency @next-theme/eslint-config to v0.0.5 (#895)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 23:13:57 +08:00
renovate[bot]
d5859762ce
Update dependency chai to v5.2.1 (#894)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-06 23:11:35 +08:00
Mimi
9d797e82d5 Update _vendors.yml 2025-08-06 23:10:55 +08:00
Mimi
7bb34c75c6 Switch to for-the-badge 2025-08-06 23:10:42 +08:00
Mimi
7bbb662e5e Support hexo-posts-embedding 2025-07-16 15:01:07 +08:00
Mimi
7022215775 Remove fossa 2025-07-10 11:21:25 +08:00
Mimi
822a72127f Fix pangu: spacing main element only 2025-07-10 11:13:56 +08:00
Mimi
b84b0d6fd7 Refactor lean-analytics 2025-07-10 11:05:03 +08:00
Mimi
55c429d677 Use async/await 2025-07-10 10:56:43 +08:00
Mimi
5b17f60f6f Drop document.execCommand 2025-07-10 10:15:38 +08:00
Mimi
8b0b387ed0 Release v8.23.2 2025-07-07 11:32:18 +08:00
renovate[bot]
9ef7fedc53
Update dependency stylelint to v16.21.1 (#893)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-05 09:45:55 +08:00
renovate[bot]
7a9865ebf8
Update dependency eslint to v9.30.1 (#892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 13:35:10 +08:00
renovate[bot]
3a64ebf409
Update dependency mocha to v11.7.1 (#891)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-04 10:52:48 +08:00
Mimi
882590b695 Update _vendors.yml 2025-07-04 10:18:17 +08:00
Mimi
57c9451f35 Upgrade pangu to v6 2025-06-30 18:53:53 +08:00
Mimi
aacd018d97 Fix registry-url 2025-06-30 18:53:07 +08:00
Mimi
74d8466d0e Release v8.23.1 2025-06-05 01:25:01 +08:00
renovate[bot]
8eb49e0908
Update dependency mocha to v11.5.0 (#889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 01:24:28 +08:00
renovate[bot]
0b227c0ca0
Update dependency stylelint to v16.20.0 (#886)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 01:20:08 +08:00
renovate[bot]
004176056b
Update dependency eslint to v9.28.0 (#885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-05 01:19:57 +08:00
Mimi
2c02824edb Add GPT URL 2025-05-17 19:12:53 +08:00
Mimi
de0342a975 Downgrade algoliasearch 2025-04-19 12:50:28 +08:00
Tony Peng
a6f3be5d82
Fix the page flickers when the search dialog pops up (#860) 2025-04-15 15:26:50 +08:00
Mimi
934baf98e2 New Action: Publish to npm 2025-04-15 14:08:55 +08:00
Zixuan Tan
ae14cd177c
Escape page metadata in post template (#884) 2025-04-09 01:40:02 +08:00
Mimi
13cc3171de Support code language name display 2025-04-05 13:01:17 +08:00
Mimi
d9c1707e1c Update docs 2025-03-31 22:32:19 +08:00
Mimi
931267bfb8 Release v8.23.0 2025-03-31 21:54:50 +08:00
renovate[bot]
8ee9999355
Update dependency mocha to v11.1.0 (#876)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 21:53:23 +08:00
renovate[bot]
71a915135e
Update dependency stylelint to v16.17.0 (#873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 21:46:02 +08:00
renovate[bot]
475de40906
Update dependency eslint to v9.23.0 (#872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 21:45:08 +08:00
renovate[bot]
a271b2ef96
Update dependency hexo-renderer-marked to v7 (#869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 21:40:40 +08:00
renovate[bot]
455ca9513e
Update dependency chai to v5 (#744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 21:34:23 +08:00
Mimi
76b52c89b4 Update _vendors.yml 2025-03-31 21:32:25 +08:00
Mimi
8699177369 Update test script 2025-03-31 13:50:24 +08:00
Jiajun-Peng
5f4210feab
Supports customizing the width of the follow-me QR code (#837) 2025-03-31 10:05:57 +08:00
Mimi
2791a406f1 Fix post title overflow 2025-03-30 12:37:45 +08:00
Mimi
bd3961d350 Use optional chaining 2025-03-29 15:23:58 +08:00
Mimi
c8f828dd66 Upgrade algoliasearch to v5 2025-03-29 14:40:42 +08:00
Mimi
0a170b8cd6 Fix page:loaded event 2025-03-27 16:14:53 +08:00
Kem Chen
69e0dbdeea
Load scripts using defer in <head> (#882) 2025-03-16 19:39:03 +08:00
Mimi
fd3852602f Fix .links-of-blogroll-item width 2025-03-13 14:24:26 +08:00
Mimi
cd80effd46 Fix .links-of-blogroll-item style 2025-03-13 14:10:34 +08:00
Mimi
e64fd52cf5 Reset p style to browser default 2025-03-13 11:19:28 +08:00
Kem Chen
db4947c114
Optimize comments.js file loading condition
Co-authored-by: Mimi <stevenjoezhang@gmail.com>
2025-03-13 10:48:40 +08:00
where where
479d2fe9c1
Fix missing pjax on Web Archive (#871) 2025-03-01 22:39:14 +08:00
Mimi
db06a99e7f Remove discord.yml 2025-01-09 21:15:34 +08:00
Mimi
01bc42c284 Release v8.22.0 2025-01-01 16:36:19 +08:00
renovate[bot]
ac2d6f612e
Update dependency c8 to v10.1.3 (#857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 16:35:30 +08:00
renovate[bot]
002f9bd77e
Update dependency mocha to v11 (#853)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 16:34:58 +08:00
renovate[bot]
d6ce4d6241
Update dependency stylelint to v16.12.0 (#851)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 16:33:18 +08:00
renovate[bot]
2a33936de7
Update dependency eslint to v9.17.0 (#847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 16:32:52 +08:00
Mimi
ac79f53ec4 Update _vendors.yml 2025-01-01 16:26:45 +08:00
where where
da4712e78d
Fix SCRIPT1028 caused by async (#852) 2024-12-24 04:16:44 +08:00
Mimi
77adbf59d8 Reorder imports 2024-11-28 02:12:24 +08:00
Mimi
3fb181fd5d Optimize .links-of-blogroll-item style 2024-11-28 01:57:10 +08:00
Mimi
58004e8180 Fix .menu-item-active::after style
* See: https://github.com/next-theme/hexo-theme-next/issues/850
2024-11-26 20:48:54 +08:00
Mimi
5639be9bff New action GitHub Releases To Discord 2024-11-26 19:44:52 +08:00
Mimi
8bdea2bfc6 Update community URLs in README 2024-11-26 17:11:34 +08:00
Mimi
b0a428533a Remove CSS vendor prefixes 2024-11-22 02:55:43 +08:00
Hyogeun Oh
183e89ae1e
Add motion.duration configuration (#846) 2024-11-21 12:41:12 +08:00
Mimi
1b6955735d Fix unit test 2024-11-20 18:10:12 +08:00
Mimi
bec4ea9032 Switch to Google Fonts v2 API 2024-11-20 15:58:04 +08:00
Mimi
a77778a676 Remove type from script tag 2024-11-20 14:58:44 +08:00
Mimi
6548d0b865 Use auto-fill in link-grid 2024-11-20 14:50:43 +08:00
Mimi
64772b0dec Use scrollbar-gutter 2024-11-20 10:06:25 +08:00
Mimi
cf701a13f1 Clean up style 2024-11-19 17:37:03 +08:00
Mimi
17b57da31a Fix figcaption style 2024-11-19 15:22:51 +08:00
Mimi
fec615cadf Release v8.21.1 2024-11-09 21:35:01 +08:00
renovate[bot]
e272368dbd
Update dependency mocha to v10.8.2 (#844)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 21:31:50 +08:00
renovate[bot]
0f045d655a
Update dependency stylelint to v16.10.0 (#840)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 20:51:07 +08:00
renovate[bot]
964233d4da
Update dependency eslint to v9.14.0 (#838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 20:49:43 +08:00
xiaojianzheng
4e6703bc1d
Support vendors.busuanzi config (#843)
Co-authored-by: Mimi <stevenjoezhang@gmail.com>
2024-11-03 16:37:23 +08:00
Mimi
3cddef0ab8 Update _vendors.yml 2024-11-03 15:51:48 +08:00
Alliot
c8bf953545
Allow specifying noindex for robots (#841)
Co-authored-by: Mimi <stevenjoezhang@gmail.com>
2024-11-03 14:22:41 +08:00
Mimi
acec1cf182 Release v8.21.0 2024-09-20 17:22:31 +08:00
Mimi
9e83b053d1 Update _vendors.yml 2024-09-20 17:21:13 +08:00
renovate[bot]
e464bd83f9
Update dependency chai to v4.5.0 (#825)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 17:12:59 +08:00
renovate[bot]
8fe7af50a0
Update dependency hexo to v7.3.0 (#821)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 17:11:23 +08:00
renovate[bot]
590f364b47
Update dependency mocha to v10.7.3 (#814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 17:08:52 +08:00
renovate[bot]
98f70703ca
Update dependency c8 to v10 (#807)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 17:08:36 +08:00
renovate[bot]
bda0fcab4e
Update dependency eslint to v9.10.0 (#800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 17:08:22 +08:00
renovate[bot]
bf93fa7aff
Update dependency stylelint to v16.9.0 (#792)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 17:08:06 +08:00
Mimi
431cb3d746
New Crowdin updates (#796) 2024-09-20 17:07:53 +08:00
Samuel Huang
a9c940e7f3
Add dark color scheme for text selection (#829) 2024-09-20 16:58:48 +08:00
Samuel Huang
1b8522031c
Support dark mode for note tags in modern style (#828) 2024-09-20 16:58:19 +08:00
Tony Peng
1b2b4f21fd
Trigger search event when user presses Ctrl + K (#804)
Co-authored-by: Mimi <stevenjoezhang@gmail.com>
2024-09-20 16:56:40 +08:00
Mimi
0708dc7e18 Fix muse.js 404 2024-06-14 21:35:32 +08:00
Mimi
ddecbe3628 Fix empty innerText 2024-05-13 13:46:20 +08:00
Mimi
783b6ffe8c Use Array.flat in motion.js 2024-05-13 01:09:16 +08:00
Mimi
5c024800e6 Fix mermaid copy button 2024-05-12 12:42:47 +08:00
Mimi
da8db69422 Specify transition-property 2024-05-11 21:12:22 +08:00
Mimi
17259c0018 Better use of parseInt and Number 2024-05-09 23:21:24 +08:00
Mimi
07acb27cc9 Fix .menu-item-active::after 2024-05-09 12:23:28 +08:00
Mimi
6742735db4 Fix mermaid folding 2024-05-08 23:42:01 +08:00
Mimi
524c3693f2 Prefer object-shorthand 2024-05-07 16:52:31 +08:00
Mimi
659e82b452 Remove local_search.trigger option 2024-05-07 16:43:50 +08:00
Mimi
1ca10776ff
Refactor Algolia search: drop instantsearch.js (#795) 2024-05-07 16:43:11 +08:00
Mimi
263841bd7a Update pull request template 2024-05-07 11:40:03 +08:00
Mimi
ba7ec07f51 Release v8.20.0 2024-05-01 20:55:52 +08:00
renovate[bot]
77b76207eb
Update dependency hexo to v7.2.0 (#790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 15:18:26 +08:00
renovate[bot]
4d69273d90
Update dependency eslint to v9 (#783)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mimi <1119186082@qq.com>
2024-05-01 15:15:13 +08:00
renovate[bot]
5f522a1432
Update dependency hexo-renderer-marked to v6.3.0 (#781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 15:06:53 +08:00
renovate[bot]
1547d82488
Update dependency mocha to v10.4.0 (#776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 15:06:38 +08:00
renovate[bot]
e67824bb83
Update dependency stylelint to v16.4.0 (#774)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 14:59:04 +08:00
Mimi
fc3f001087 Update _vendors.yml 2024-05-01 14:56:32 +08:00
Mimi
f7014d3f16 Reorder sidebar animation 2024-05-01 14:31:47 +08:00
Mimi
372940305c Remove muse.js 2024-04-28 00:31:49 +08:00
Triccsr
1b2b0040b4
Display sidebar on mobile for Pisces and Gemini (#710)
Co-authored-by: Mimi <1119186082@qq.com>
2024-04-26 22:09:19 +08:00
Mimi
cd1a082795 Remove dollar signs before commands 2024-04-24 00:57:06 +08:00
Mimi
26d682cfa2 Add post_count helper 2024-04-17 12:30:16 +08:00
Mimi
3d34a1163f Update .category-list-count style 2024-04-17 12:17:02 +08:00
Mimi
6bf97f6e49 Refactor .menu-item style 2024-04-17 01:41:34 +08:00
Mimi
2195b01d8c Fix undefind in group-pictures 2024-04-16 17:21:05 +08:00
Mimi
ca0e6f0a0e Support for hiding page header 2024-04-14 09:58:35 +08:00
Mimi
37d74f3b85 Update hexo-many-posts url 2024-04-06 20:58:00 +08:00
Jiezhe Wang
94dc7f105b
Fix utterances/giscus with pjax (#779) 2024-03-30 23:59:01 +08:00
Mimi
4cba2a3c44 Add link posts feature
This reverts commit a24450d9cfc6a6f7e5f6ddfabd6167fb6c0857d9.
2024-03-26 18:05:30 +08:00
Mimi
2507438cb5 Release v8.19.2 2024-03-04 18:31:50 +08:00
renovate[bot]
fb1bfdd6f8
Update dependency mocha to v10.3.0 (#764)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 18:29:38 +08:00
renovate[bot]
3611dcc27d
Update dependency hexo to v7.1.1 (#757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 18:28:00 +08:00
renovate[bot]
c8ceed02c0
Update dependency chai to v4.4.1 (#748)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 18:27:29 +08:00
renovate[bot]
1e746ca96b
Update dependency c8 to v9 (#745)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 17:34:52 +08:00
renovate[bot]
5058ea6ef0
Update github/codeql-action action to v3 (#739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 17:34:00 +08:00
renovate[bot]
3f4e57d31d
Update dependency stylelint to v16 (#735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-04 17:33:44 +08:00
maple
eaa762de7e
Add notranslate to prevent translating code (#769) 2024-03-01 10:22:14 +08:00
renovate[bot]
35b9f78a8c
Update dependency stylelint-stylus to v1 (#737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 08:05:17 +08:00
renovate[bot]
7d56937a98
Update actions/setup-python action to v5 (#732)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 08:05:05 +08:00
Mimi
a17cb01a86 Update _vendors.yml 2024-02-05 08:03:55 +08:00
Mimi
269eae34c4 Adapt to Hexo 7 highlight settings 2023-12-17 13:00:24 +08:00
Mimi
c8c2fb23e5 Release v8.19.1 2023-12-06 10:17:24 +08:00
renovate[bot]
b5c0359a32
Update actions/labeler action to v5 (#730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mimi <1119186082@qq.com>
2023-12-06 10:16:43 +08:00
Mimi
c32066ae1a Roll back animejs version 2023-12-06 09:56:15 +08:00
Mimi
c0f48c429d Release v8.19.0 2023-12-03 00:11:38 +08:00
renovate[bot]
3128709b3c
Update dependency hexo-renderer-marked to v6.2.0 (#726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-03 00:11:09 +08:00
renovate[bot]
821683084d
Update dessant/lock-threads action to v5 (#718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-03 00:10:38 +08:00
renovate[bot]
c43f601806
Update dependency hexo to v7 (#715)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Mimi <1119186082@qq.com>
2023-12-03 00:06:02 +08:00
renovate[bot]
a78121e96a
Update actions/setup-node action to v4 (#713)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-02 23:55:09 +08:00
renovate[bot]
c5c51b8fb3
Update dependency eslint to v8.55.0 (#711)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-02 23:54:56 +08:00
renovate[bot]
9c0ccebc38
Update dependency stylelint to v15.11.0 (#709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-02 23:54:42 +08:00
renovate[bot]
2a8b79bc5d
Update actions/checkout action to v4 (#697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-02 23:54:31 +08:00
Mimi
46dbcd36d5 Update _vendors.yml 2023-12-02 23:54:09 +08:00
Leao9203
d254d1aaf4
Update beian URL (#723) 2023-12-02 23:41:42 +08:00
Mimi
4f5e6001e4 Fix tester 2023-11-30 00:50:37 +08:00
maple
9bd24f7ba0
Update Google Analytics only_pageview mode to GA4 (#649) 2023-11-30 00:14:06 +08:00
Mimi
dedc8275e7 Release v8.18.2 2023-10-09 23:56:38 +08:00
Mimi
71e3e14930
New Crowdin updates (#703) 2023-10-09 23:56:10 +08:00
renovate[bot]
08ddd84b2a
Update dependency chai to v4.3.10 (#701)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 23:48:55 +08:00
renovate[bot]
63901bd80e
Update dependency eslint to v8.51.0 (#698)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 23:42:24 +08:00
Mimi
c2b5ba948b Update _vendors.yml 2023-10-09 23:40:20 +08:00
Mimi
3c286962c2 Update Crowdin logo 2023-09-22 00:55:46 +08:00
Mimi
44b30d0bc5 Release v8.18.1 2023-09-09 11:00:57 +08:00
renovate[bot]
4591886f6e
Update dependency chai to v4.3.8 (#695)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-09 02:24:06 +08:00
renovate[bot]
d09c7f6193
Update dependency stylelint to v15.10.3 (#688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-09 02:23:47 +08:00
renovate[bot]
fe8a01ff9b
Update dependency eslint to v8.48.0 (#685)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-08 22:05:51 +08:00
PeichengLiu
3fe071e6ea
Support folding code blocks in tabs (#694) 2023-09-08 22:05:22 +08:00
Mimi
408c1fa8d5 Release v8.18.0 2023-08-01 23:22:18 +08:00
renovate[bot]
e5026ed10d
Update dependency c8 to v8.0.1 (#680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 09:40:41 +08:00
renovate[bot]
d2410db8a2
Update dependency eslint to v8.46.0 (#676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 09:40:32 +08:00
renovate[bot]
0e7497b4fd
Update dependency hexo-renderer-marked to v6.1.1 (#675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 09:40:21 +08:00
renovate[bot]
aef1853f2a
Update dependency stylelint to v15 (#611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 09:39:57 +08:00
Mimi
788659333e Update _vendors.yml 2023-07-31 09:39:35 +08:00
Mimi
11e534bf28
Support folding code blocks (#679) 2023-07-29 07:41:50 +08:00
Mimi
a24450d9cf Remove link posts feature 2023-07-27 23:23:45 +08:00
Mimi
dc8e5e17fa Add npm downloads badge 2023-07-26 16:04:30 +08:00
Mimi
10010c13ea Some minor fixes 2023-07-26 14:43:51 +08:00
Mimi
8b8632f137
Upgrade to fancybox 5 (#677) 2023-07-26 10:49:28 +08:00
Mimi
8fd8f9247c Refactor Pull Request Reminder 2023-07-25 16:19:55 +08:00
Mimi
c596155ef9 Create code-container element
* See: https://github.com/next-theme/hexo-theme-next/issues/98
2023-07-17 11:23:42 +08:00
Mimi
0624149b05 Update fa CSS selector 2023-07-17 10:09:48 +08:00
Mimi
223ea199f3 Remove gitter support 2023-07-16 01:40:20 +08:00
Mimi
d3b76a8599 Update gitter url 2023-07-16 01:40:01 +08:00
Mimi
b85201b9b8 Fix next_url: add new option to decodeURI 2023-07-04 17:40:56 +08:00
Mimi
d1b22042e5 Release v8.17.1 2023-07-01 15:59:56 +08:00
Mimi
b727ea4a19
New Crowdin updates (#672) 2023-07-01 15:59:09 +08:00
renovate[bot]
6df115eddf
Update dependency eslint to v8.44.0 (#669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:58:29 +08:00
renovate[bot]
84cdf70750
Update dependency c8 to v8 (#668)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:58:11 +08:00
renovate[bot]
cb394aa2b2
Update dependency hexo-renderer-marked to v6.1.0 (#665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 15:57:59 +08:00
Mimi
ef62f9bc65 Update _vendors.yml 2023-07-01 15:57:30 +08:00
Mimi
eedd189307 Use mermaid.run 2023-07-01 15:57:21 +08:00
Mimi
2e1de3efa5 Update stylelint rule 2023-06-30 11:41:10 +08:00
Mimi
72302c2e4d Allow disabling the copyright statement 2023-06-29 10:43:50 +08:00
Mimi
824885ed0a Display warning message only once 2023-06-05 17:21:56 +08:00
Mimi
b9ba532df8 Remove AddThis share 2023-06-04 13:37:38 +08:00
149 changed files with 1850 additions and 1437 deletions

View File

@ -1,4 +0,0 @@
{
"extends": "@next-theme",
"root": true
}

View File

@ -90,7 +90,7 @@ You may get in touch with the maintainer team through any of the following metho
* [GitHub Discussions](https://github.com/next-theme/hexo-theme-next/discussions)
* Through Chat:
* [Gitter](https://gitter.im/hexo-next)
* [Gitter](https://app.gitter.im/#/room/#next:gitter.im)
## Attribution

View File

@ -1,15 +1,16 @@
<!-- ATTENTION!
1. Please write pull request readme in English, thanks!
<!--
Thank you for creating a pull request to contribute to NexT code! Before you open the pull request, please:
2. NexT includes 4 schemes: Muse and Mist have similar structure, but Pisces and Gemini are very different from them. It is possible that one scheme works fine after the changes, but another scheme is broken. Please make the tests in different schemes to make sure the changes are compatible with all schemes.
1. Make the tests to confirm that the changes are compatible with PJAX, Dark Mode and all four schemes of NexT (Muse, Mist, Pisces and Gemini). For backend code changes, modify or add unit tests if necessary.
3. In addition, you need to confirm that the changes made by this PR are compatible with PJAX and Dark Mode.
2. Break up your pull request into multiple smaller requests if it contains multiple bug fixes or new features. Each pull request should have one bug fix or new feature only for better code maintainability.
3. If possible, please write the pull request description in English.
-->
## PR Checklist <!-- 我确认我已经查看了 -->
<!-- Change [ ] to [x] to select (将 [ ] 换成 [x] 来选择) -->
<!-- Remove items that do not apply. For completed items, change [ ] to [x] to select (将 [ ] 换成 [x] 来选择) -->
- [ ] The commit message follows [guidelines for NexT](https://github.com/next-theme/hexo-theme-next/blob/master/.github/CONTRIBUTING.md).
- [ ] The changes have been tested (for bug fixes / features).
- [ ] [Docs](https://github.com/next-theme/theme-next-docs/tree/master/source/docs) in [NexT website](https://theme-next.js.org/docs/) have been added / updated (for features).
<!-- For adding Docs edit needed file here: https://github.com/next-theme/theme-next-docs/tree/master/source/docs and create PR with this changes here: https://github.com/next-theme/theme-next-docs/pulls -->
@ -20,10 +21,10 @@
- [ ] Bugfix.
- [ ] Feature.
- [ ] Improvement.
- [ ] Code style update (formatting, linting).
- [ ] Refactoring (no functional changes).
- [ ] Code style update (e.g. formatting, linting).
- [ ] Refactoring (no changes to functionality and APIs).
- [ ] Documentation.
- [ ] Translation. <!-- We use Crowdin to manage translations https://crowdin.com/project/hexo-theme-next -->
- [ ] Translation. <!-- We use Crowdin to manage translations: https://crowdin.com/project/hexo-theme-next -->
- [ ] Other... Please describe:
## What is the current behavior?
@ -32,7 +33,7 @@
Issue resolved:
## What is the new behavior?
<!-- Description about this pull, in several words -->
<!-- Please describe the new behavior of this pull request -->
- Link to demo site with this changes:
- Screenshots with this changes:

View File

@ -25,5 +25,11 @@ labels:
- name: Wontfix
labeled:
issue:
body: This will not be worked on but we appreciate your contribution.
body: There wasn't enough interest from the team or community to implement this change. Thanks for contributing and we appreciate your understanding.
action: close
- name: Configurations
labeled:
pr:
body: |
This pull request contains changes to the configuration file. Please make sure the documentation in [NexT website](https://theme-next.js.org/docs/) is changed or added.
Please edit relevant source files here: https://github.com/next-theme/theme-next-docs/tree/master/source/docs and create a pull request with the changes here: https://github.com/next-theme/theme-next-docs/pulls

32
.github/labeler.yml vendored
View File

@ -1,10 +1,26 @@
# Configuration for labeler - https://github.com/actions/labeler
📦 Dependencies: package.json
Configurations: _config.yml
CSS: source/css/**/*
📖 Docs: docs/**/*
Layout: layout/**/*
🌍 i18n: languages/**/*
Actions: .github/workflows/**/*
🔌 3rd Party Plugin: '**/*third-party/**/*'
📦 Dependencies:
- changed-files:
- any-glob-to-any-file: package.json
Configurations:
- changed-files:
- any-glob-to-any-file: _config.yml
CSS:
- changed-files:
- any-glob-to-any-file: source/css/**/*
📖 Docs:
- changed-files:
- any-glob-to-any-file: docs/**/*
Layout:
- changed-files:
- any-glob-to-any-file: layout/**/*
🌍 i18n:
- changed-files:
- any-glob-to-any-file: languages/**/*
Actions:
- changed-files:
- any-glob-to-any-file: .github/workflows/**/*
🔌 3rd Party Plugin:
- changed-files:
- any-glob-to-any-file: '**/*third-party/**/*'

View File

@ -24,18 +24,18 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
queries: +security-and-quality
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{ matrix.language }}"

View File

@ -4,12 +4,15 @@ on:
issues:
types:
- labeled
pull_request_target:
types:
- labeled
jobs:
comment:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
ref: master
- name: Label Commenter

View File

@ -7,6 +7,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
- uses: actions/labeler@v6
# https://github.com/peaceiris/actions-label-commenter#work-with-other-auto-label-actions
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
repo-token: "${{ secrets.GH_PAT }}"

View File

@ -6,9 +6,9 @@ jobs:
linter:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v6
- name: Install Dependencies
run: npm install
- run: npm run eslint
@ -21,7 +21,7 @@ jobs:
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install Dependencies

View File

@ -9,7 +9,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v4
- uses: dessant/lock-threads@v6
with:
github-token: ${{ github.token }}
issue-comment: >

26
.github/workflows/npm-publish.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Publish to npm
on:
push:
tags:
- 'v*'
permissions:
id-token: write # Required for OIDC
contents: read
jobs:
npm-publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Use Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
- name: Update npm to latest version for OIDC support
run: npm install -g npm@latest
- run: |
npm install
npm publish

View File

@ -1,19 +0,0 @@
name: Pull Request Reminder
on:
pull_request_target:
types:
- labeled
jobs:
reminder:
if: ${{ github.event.label.name == 'Configurations' }}
runs-on: ubuntu-latest
steps:
- name: Comment PR
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
This pull request contains changes to the configuration file. Please make sure the documentation in [NexT website](https://theme-next.js.org/docs/) is changed or added.
Please edit relevant source files here: https://github.com/next-theme/theme-next-docs/tree/master/source/docs and create a pull request with the changes here: https://github.com/next-theme/theme-next-docs/pulls

View File

@ -10,19 +10,21 @@ jobs:
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
repository: hexojs/hexo-starter
- name: Use Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v6
- name: Install Dependencies
run: npm install
- uses: actions/checkout@v3
- name: Install hexo-tag-embed
run: npm install hexo-tag-embed
- uses: actions/checkout@v6
with:
path: themes/next
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
repository: SukkaLab/hexo-many-posts
repository: hexojs/hexo-many-posts
path: source/_posts/hexo-many-posts
- run: npx hexo config theme next
- uses: DamianReeves/write-file-action@master

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ package-lock.json
node_modules/
.nyc_output/
coverage/
.env

View File

@ -13,8 +13,8 @@
"stylus/selector-list-comma": "always",
"stylus/selector-list-comma-newline-after": "never-multi-line",
"stylus/media-feature-colon": "always",
"stylus/single-line-comment": false,
"stylus/single-line-comment-no-empty": false,
"stylus/single-line-comment": null,
"stylus/single-line-comment-no-empty": null,
"stylus/block-closing-brace-newline-after": "never-single-line"
}
}

View File

@ -15,14 +15,15 @@
# NexT
> «NexT» is a high quality elegant [Hexo](https://hexo.io) theme. It is crafted from scratch with love.
> NexT is a high quality elegant [Hexo](https://hexo.io) theme. It is crafted from scratch with love.
[![NPM version](https://img.shields.io/npm/v/hexo-theme-next?color=red&logo=npm&style=flat-square)](https://www.npmjs.com/package/hexo-theme-next)
[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=5.3.0-blue?style=flat-square&logo=hexo)](https://hexo.io)
[![License](https://img.shields.io/badge/license-%20AGPL-orange?style=flat-square&logo=gnu)](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/linter.yml?branch=master&label=test&logo=github&style=flat-square)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/tester.yml?branch=master&logo=github&style=flat-square)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
[![Coverage Status](https://img.shields.io/coveralls/github/next-theme/hexo-theme-next?logo=coveralls&style=flat-square)](https://coveralls.io/github/next-theme/hexo-theme-next)
[![NPM version](https://img.shields.io/npm/v/hexo-theme-next?color=red&logo=npm&style=for-the-badge)](https://www.npmjs.com/package/hexo-theme-next)
[![NPM Downloads](https://img.shields.io/npm/dm/hexo-theme-next?logo=npm&style=for-the-badge)](https://www.npmjs.com/package/hexo-theme-next)
[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=7.0.0-blue?style=for-the-badge&logo=hexo)](https://hexo.io)
[![License](https://img.shields.io/badge/license-%20AGPL-orange?style=for-the-badge&logo=gnu)](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/linter.yml?branch=master&label=test&logo=github&style=for-the-badge)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/tester.yml?branch=master&logo=github&style=for-the-badge)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
[![Coverage Status](https://img.shields.io/coveralls/github/next-theme/hexo-theme-next?logo=coveralls&style=for-the-badge)](https://coveralls.io/github/next-theme/hexo-theme-next)
## Live Preview
@ -30,7 +31,7 @@
💟 <a href="https://theme-next.js.org/muse/">Muse</a> | 🔯 <a href="https://theme-next.js.org/mist/">Mist</a> | ♓️ <a href="https://theme-next.js.org/pisces/">Pisces</a> | ♊️ <a href="https://theme-next.js.org">Gemini</a>
<br>
<br>
More «NexT» examples <a href="https://github.com/next-theme/awesome-next#live-preview">here</a>.
More NexT examples <a href="https://github.com/next-theme/awesome-next#live-preview">here</a>.
</p>
## Installation
@ -38,15 +39,15 @@
If you're using Hexo 5.0 or later, the simplest way to install is through npm:
```sh
$ cd hexo-site
$ npm install hexo-theme-next
cd hexo-site
npm install hexo-theme-next
```
Or you can clone the entire repository:
```sh
$ cd hexo-site
$ git clone https://github.com/next-theme/hexo-theme-next themes/next
cd hexo-site
git clone https://github.com/next-theme/hexo-theme-next themes/next
```
See [detailed installation instructions][docs-installation-url] if you want any other variant.
@ -65,7 +66,7 @@ At present, NexT encourages users to use the [Alternate Theme Config][docs-confi
## Plugins
Plugins extend and expand the functionality of NexT. There are two types of plugins: core plugins and third-party plugins. The core plugins are required by the basic functions of NexT. Third-party plugins provide a large number of optional features.
Plugins extend and expand the functionality of NexT. Some advanced features may require third-party libraries or additional configuration, giving you the flexibility to create a truly personalized website.
Configuring these plugins is very easy. For example, if you want to enable `pjax` on your site, just set `pjax` to `true` in NexT config file:
@ -91,28 +92,37 @@ vendors:
## Update
A new version of NexT will be released every month. Please read the [release notes][docs-release-url] before updating the theme. You can update NexT by the following command.
The NexT theme will continue to release new versions to include new features and bug fixes. Please read the [release notes][docs-release-url] before updating the theme. You can update NexT by the following command.
Install the latest version through npm:
```sh
$ cd hexo-site
$ npm install hexo-theme-next@latest
cd hexo-site
npm install hexo-theme-next@latest
```
Or update to the latest master branch:
```sh
$ cd themes/next
$ git pull
cd themes/next
git pull
```
**If you want to update from v5.x / v7.x to the latest version, read [this][docs-upgrade-url].**
## Community
Connect with us and be part of our growing community!
* **Telegram Group (Chinese Language)**: [Click here to join!](https://t.me/theme_next_cn)
* **Discord Server**: [Join our Discord!](https://discord.gg/qmkgkY3jaG)
* **Gitter**: [Join our Gitter chats!][gitter-url]
* **ChatGPT**: [NexT Mentor][gpt-url]
## Feedback
* Visit the [Awesome NexT][awesome-next-url] list to share plugins and tutorials with other users.
* Join our [GitHub discussions][discussions-url] / [Gitter][gitter-url] chats.
* Join our [GitHub discussions][discussions-url].
* [Add or improve translation][i18n-url] in few seconds.
* Report a bug in [GitHub Issues][issues-bug-url].
* Request a new feature on [GitHub][issues-feat-url].
@ -130,7 +140,7 @@ Also, we welcome Issue or PR to our [official-plugins][official-plugins-url].
## Thanks
«NexT» send special thanks to these great services that sponsor our core infrastructure:
NexT send special thanks to these great services that sponsor our core infrastructure:
<a href="https://github.com"><img height="40" src="https://github.githubassets.com/images/modules/logos_page/GitHub-Logo.png"></a>
@ -146,7 +156,13 @@ Also, we welcome Issue or PR to our [official-plugins][official-plugins-url].
> Netlify allows us to distribute the documentation.
<a href="https://crowdin.com"><img height="40" src="https://support.crowdin.com/assets/logos/crowdin-logo-small-black.svg"></a>
<a href="https://crowdin.com">
<picture>
<source media="(prefers-color-scheme: dark)" height="40" srcset="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cWhite.svg">
<source media="(prefers-color-scheme: light)" height="40" srcset="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cDark.svg">
<img alt="Netlify Logo" height="40" src="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cDark.svg">
</picture>
</a>
> Crowdin allows us to translate conveniently the documentation.
@ -160,10 +176,6 @@ Also, we welcome Issue or PR to our [official-plugins][official-plugins-url].
> Thanks CDNJS for providing public CDN service.
## License
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnext-theme%2Fhexo-theme-next.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fnext-theme%2Fhexo-theme-next?ref=badge_large)
[docs-installation-url]: https://theme-next.js.org/docs/getting-started/installation.html
[docs-configuration-url]: https://theme-next.js.org/docs/getting-started/configuration.html
[docs-custom-files-url]: https://theme-next.js.org/docs/advanced-settings/custom-files.html
@ -172,7 +184,8 @@ Also, we welcome Issue or PR to our [official-plugins][official-plugins-url].
[awesome-next-url]: https://github.com/next-theme/awesome-next
[discussions-url]: https://github.com/next-theme/hexo-theme-next/discussions
[gitter-url]: https://gitter.im/hexo-next
[gitter-url]: https://app.gitter.im/#/room/#next:gitter.im
[gpt-url]: https://chatgpt.com/g/g-68286c2fc1f48191aee3e87c94a89431-next-mentor
[i18n-url]: https://crowdin.com/project/hexo-theme-next
[issues-bug-url]: https://github.com/next-theme/hexo-theme-next/issues/new?assignees=&labels=Bug&template=bug-report.md

View File

@ -43,7 +43,13 @@ scheme: Muse
#scheme: Gemini
# Dark Mode
darkmode: false
darkmode: true
# Light-Dark Mode
lightdark:
enable: false
# Add @supports (color: light-dark(red, red)) check
check_supports: true
# ---------------------------------------------------------------
@ -117,16 +123,18 @@ menu_settings:
# ---------------------------------------------------------------
sidebar:
# Sidebar Position.
# Sidebar position. Available values: left | right
position: left
#position: right
# Manual define the sidebar width. If commented, will be default for:
# Muse | Mist: 320
# Pisces | Gemini: 240
#width: 300
# Sidebar width.
# Applicable to Muse | Mist and mobile of Pisces | Gemini.
width_expanded: 320
# Applicable to desktop of Pisces | Gemini.
width_dual_column: 240
# Sidebar Display (only for Muse | Mist), available values:
# Sidebar display.
# Applicable to Muse | Mist and mobile of Pisces | Gemini.
# Available values:
# - post expand on posts automatically. Default.
# - always expand for all pages automatically.
# - hide expand only when click on the sidebar toggle icon.
@ -215,12 +223,13 @@ footer:
color: "#ff0000"
# If not defined, `author` from Hexo `_config.yml` will be used.
# Set to `false` to disable the copyright statement.
copyright:
# Powered by Hexo & NexT
powered: true
# Beian ICP and gongan information for Chinese users. See: https://beian.miit.gov.cn, http://www.beian.gov.cn
# Beian ICP and gongan information for Chinese users. See: https://beian.miit.gov.cn, https://beian.mps.gov.cn
beian:
enable: false
icp:
@ -228,7 +237,7 @@ footer:
gongan_id:
# The full num of gongan beian.
gongan_num:
# The icon for gongan beian. See: http://www.beian.gov.cn/portal/download
# The icon for gongan beian. Login and See: https://beian.mps.gov.cn/web/business/businessHome/website
gongan_icon_url:
@ -284,7 +293,8 @@ follow_me:
#RSS: /atom.xml || fa fa-rss
# Related popular posts
# Dependencies: https://github.com/sergeyzwezdin/hexo-related-posts
# Dependencies: https://github.com/next-theme/hexo-posts-embedding
# Or: https://github.com/sergeyzwezdin/hexo-related-posts
related_posts:
enable: false
icon: fa fa-signs-post
@ -355,7 +365,7 @@ theme_color:
body_scrollbar:
# Place the scrollbar over the content.
overlay: false
# Present the scrollbar even if the content is not overflowing.
# Reserving space for the scrollbar gutter even if the content is not overflowing.
stable: false
codeblock:
@ -372,6 +382,12 @@ codeblock:
enable: false
# Available values: default | flat | mac
style:
# Fold code block
fold:
enable: false
height: 500
# Display language name
language: false
back2top:
enable: true
@ -412,7 +428,7 @@ github_banner:
# Find fonts on Google Fonts (https://fonts.google.com)
# All fonts set here will have the following styles:
# light | light italic | normal | normal italic | bold | bold italic
# Be aware that setting too much fonts will cause site running slowly
# Be aware that setting too much fonts will cause site loading slowly
# ---------------------------------------------------------------
# Web Safe fonts are recommended for `global` (and `title`):
# Arial | Tahoma | Helvetica | Times New Roman | Courier New | Verdana | Georgia | Palatino | Garamond | Comic Sans MS | Trebuchet MS
@ -621,6 +637,7 @@ quicklink:
motion:
enable: true
async: false
duration: 200
transition:
# All available transition variants: https://theme-next.js.org/animate/
menu_item: fadeInDown
@ -655,6 +672,7 @@ canvas_ribbon:
# ---------------------------------------------------------------
# Comments Settings
# See: https://theme-next.js.org/docs/third-party-services/comments
# More comment system plugins: https://github.com/next-theme/awesome-next/blob/main/README.md#comment
# ---------------------------------------------------------------
# Multiple Comment System Support
@ -662,7 +680,7 @@ comments:
# Available values: tabs | buttons
style: tabs
# Choose a comment system to be displayed by default.
# Available values: disqus | disqusjs | changyan | livere | gitalk | utterances
# Available values: disqus | disqusjs | livere | gitalk | utterances | isso
active:
# Setting `true` means remembering the comment system selected by the visitor.
storage: true
@ -695,15 +713,6 @@ disqusjs:
apikey: # Register new application from https://disqus.com/api/applications/
shortname: # See: https://disqus.com/admin/settings/general/
# Changyan
# For more information: https://changyan.kuaizhan.com
changyan:
enable: false
appid:
appkey:
# Show comments count
count: true
# LiveRe comments system
# You can get your uid from https://livere.com/insight/myCode (General web site)
livere_uid: # <your_uid>
@ -724,6 +733,10 @@ gitalk:
# If you want everyone visiting your site to see a uniform language, you can set a force language value
# Available values: en | es-ES | fr | ru | zh-CN | zh-TW
language:
# If you want to customize the content of the initialized Issue, please edit the body parameter.
# For example:
# body: Comments for post ${title}, see ${url}
body:
# Utterances
# For more information: https://utteranc.es
@ -748,9 +761,8 @@ isso: # <data_isso>
# AddToAny Share. See: https://www.addtoany.com
addtoany:
enable: false
# Example: bottons: [facebook, twitter]
buttons:
- facebook
- twitter
# ---------------------------------------------------------------
@ -765,15 +777,13 @@ google_analytics:
# By default, NexT will load an external gtag.js script on your site.
# If you only need the pageview feature, set the following option to true to get a better performance.
only_pageview: false
# only needed if you are using `only_pageview` mode, https://developers.google.com/analytics/devguides/collection/protocol/ga4
measure_protocol_api_secret:
# Baidu Analytics
# See: https://tongji.baidu.com
baidu_analytics: # <app_id>
# Growingio Analytics
# See: https://www.growingio.com
growingio_analytics: # <project_id>
# Cloudflare Web Analytics
# See: https://www.cloudflare.com/web-analytics/
cloudflare_analytics:
@ -804,19 +814,6 @@ plausible:
script_url: # https://plausible.io/js/script.js
site_domain: # www.example.com
# Show number of visitors of each article.
# You can visit https://www.leancloud.cn to get AppID and AppKey.
leancloud_visitors:
enable: false
app_id: # <your app id>
app_key: # <your app key>
# Required for apps from CN region
server_url: # <your server url>
# Dependencies: https://github.com/theme-next/hexo-leancloud-counter-security
# If you don't care about security in leancloud counter and just want to use it directly
# (without hexo-leancloud-counter-security plugin), set `security` to `false`.
security: true
# Another tool to show number of visitors to each article.
# Visit https://console.firebase.google.com/u/0/ to get apiKey and projectId.
# Visit https://firebase.google.com/docs/firestore/ to get more information about firestore.
@ -854,9 +851,6 @@ algolia_search:
# Dependencies: https://github.com/next-theme/hexo-generator-searchdb
local_search:
enable: false
# If auto, trigger search by changing input.
# If manual, trigger search by pressing enter key or search button.
trigger: auto
# Show top n results per article, show all results by setting to -1
top_n_per_article: 1
# Unescape html strings to the readable one.
@ -874,7 +868,7 @@ local_search:
# Firstly, you need to enable and configure the chat service.
chat:
enable: false
icon: fa fa-comment # Icon name in Font Awesome, set false to disable icon.
icon: fa fa-comment # Icon name in Font Awesome, set to `false` to disable icon.
# Chatra is a functional, easy to use piece of chat software for websites.
# For more information: https://chatra.com
@ -892,12 +886,6 @@ tidio:
enable: false
key: # Public Key, get it from dashboard. See: https://www.tidio.com/panel/settings/developer
# Gitter is a chat and networking platform.
# For more information: https://gitter.im
gitter:
enable: false
room:
# ---------------------------------------------------------------
# CDN Settings

View File

@ -8,25 +8,25 @@ anime:
integrity: sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=
fontawesome:
name: '@fortawesome/fontawesome-free'
version: 6.4.0
version: 7.0.0
file: css/all.min.css
alias: font-awesome
integrity: sha256-HtsXJanqjKTc8vVQjO4YMhiqFoXkfBsjBWcX91T1jr8=
integrity: sha256-VHqXKFhhMxcpubYf9xiWdCiojEbY9NexQ4jh8AxbvcM=
prism:
name: prismjs
version: 1.29.0
version: 1.30.0
file: components/prism-core.min.js
alias: prism
integrity: sha256-4mJNT2bMXxcc1GCJaxBmMPdmah5ji0Ldnd79DKd1hoM=
integrity: sha256-bKrTFt2ZHyT4AE4LnBnAVctYKf9l6XP77kBvltgbjn4=
prism_autoloader:
name: prismjs
version: 1.29.0
version: 1.30.0
file: plugins/autoloader/prism-autoloader.min.js
alias: prism
integrity: sha256-AjM0J5XIbiB590BrznLEgZGLnOQWrt62s3BEq65Q/I0=
prism_line_numbers:
name: prismjs
version: 1.29.0
version: 1.30.0
file: plugins/line-numbers/prism-line-numbers.min.js
alias: prism
integrity: sha256-9cmf7tcLdXpKsPi/2AWE93PbZpTp4M4tqzFk+lWomjU=
@ -37,13 +37,13 @@ mathjax:
integrity: sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=
katex:
name: katex
version: 0.16.7
version: 0.16.9
file: dist/katex.min.css
alias: KaTeX
integrity: sha256-hLTCMFlKxdNgPXyWlSSxYN0ykJmxxq9Yt3MNfdRGWeA=
integrity: sha256-UF1fgpAiu3tPJN/uCqEUHNe7pnr+QR0SQDNfgglgtcM=
copy_tex_js:
name: katex
version: 0.16.7
version: 0.16.9
file: dist/contrib/copy-tex.min.js
alias: KaTeX
integrity: sha256-Us54+rSGDSTvIhKKUs4kygE2ipA0RXpWWh0/zLqw3bs=
@ -53,28 +53,23 @@ pjax:
file: pjax.min.js
alias: next-theme-pjax
integrity: sha256-vxLn1tSKWD4dqbMRyv940UYw4sXgMtYcK6reefzZrao=
jquery:
name: jquery
version: 3.7.0
file: dist/jquery.min.js
integrity: sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g=
fancybox_js:
name: '@fancyapps/fancybox'
version: 3.5.7
file: dist/jquery.fancybox.min.js
alias: fancybox
integrity: sha256-yt2kYMy0w8AbtF89WXb2P1rfjcP/HTHLT7097U8Y5b8=
name: '@fancyapps/ui'
version: 5.0.31
file: dist/fancybox/fancybox.umd.js
alias: fancyapps-ui
integrity: sha256-a+H7FYzJv6oU2hfsfDGM2Ohw/cR9v+hPfxHCLdmCrE8=
fancybox_css:
name: '@fancyapps/fancybox'
version: 3.5.7
file: dist/jquery.fancybox.min.css
alias: fancybox
integrity: sha256-Vzbj7sDDS/woiFS3uNKo8eIuni59rjyNGtXfstRzStA=
name: '@fancyapps/ui'
version: 5.0.31
file: dist/fancybox/fancybox.css
alias: fancyapps-ui
integrity: sha256-gkQVf8UKZgQ0HyuxL/VnacadJ+D2Kox2TCEBuNQg5+w=
mediumzoom:
name: medium-zoom
version: 1.0.8
version: 1.1.0
file: dist/medium-zoom.min.js
integrity: sha256-7PhEpEWEW0XXQ0k6kQrPKwuoIomz8R8IYyuU1Qew4P8=
integrity: sha256-ZgMyDAIYDYGxbcpJcfUnYwNevG/xi9OHKaR/8GK+jWc=
lazyload:
name: lozad
version: 1.16.0
@ -83,24 +78,24 @@ lazyload:
integrity: sha256-mOFREFhqmHeQbXpK2lp4nA3qooVgACfh88fpJftLBbc=
pangu:
name: pangu
version: 4.0.7
file: dist/browser/pangu.min.js
integrity: sha256-j+yj56cdEY2CwkVtGyz18fNybFGpMGJ8JxG3GSyO2+I=
version: 7.2.0
file: dist/browser/pangu.umd.js
integrity: sha256-JnmRRnJK7DC6RQJbAJb6AXOM9OmWzS6z8eYultk/48Y=
quicklink:
name: quicklink
version: 2.3.0
version: 3.0.1
file: dist/quicklink.umd.js
integrity: sha256-yvJQOINiH9fWemHn0vCA5lsHWJaHs6/ZmO+1Ft04SvM=
integrity: sha256-44BednzIpUeQJcY8qtLyarFu0UCCTbgmWOvaoehiFQQ=
disqusjs_js:
name: disqusjs
version: 3.0.2
version: 3.1.0
file: dist/browser/disqusjs.es2015.umd.min.js
integrity: sha256-okP99ZQKVpIy7+NogAMpGlIQzJa9XKXhIJcFgdju5bU=
integrity: sha256-gdbBT62HLzqWTnXQED3WQL/ItFCuWsA5gd6dM/wgdiE=
disqusjs_css:
name: disqusjs
version: 3.0.2
version: 3.1.0
file: dist/browser/styles/disqusjs.css
integrity: sha256-71XarXwNr1Td27HmZI9zjY+rMzRdush6/glo6VFXp7o=
integrity: sha256-E4RzceSomICFY1PT/yDQrN8DsLSwdScDEiQAevHabp0=
gitalk_js:
name: gitalk
version: 1.8.0
@ -113,39 +108,34 @@ gitalk_css:
integrity: sha256-AJnUHL7dBv6PGaeyPQJcgQPDjt/Hn/PvYZde1iqfp8U=
firebase_app:
name: firebase
version: 9.22.1
version: 12.2.1
file: firebase-app-compat.js
integrity: sha256-k74cv2m6iO63FdKOnpAEwdNSVBYVQh7bZXmjb09vORs=
integrity: sha256-d21UgtIcA6c6qwr8nWk6lxs/KrpbWhknQN7qBjWA2Kk=
firebase_firestore:
name: firebase
version: 9.22.1
version: 12.2.1
file: firebase-firestore-compat.js
integrity: sha256-heVsuC/9fyGrkx03lYLht+Xs88f7NBIhlLlwHoi8Sfw=
integrity: sha256-leHatffkFuVGIg7ABaA5BDsqsEUtktL4tftb3OdQfg0=
algolia_search:
name: algoliasearch
version: 4.17.1
file: dist/algoliasearch-lite.umd.js
integrity: sha256-F7emIId74fYoGrHzsnu3iClRHIbBMhMCbxDoA1cfMAY=
instant_search:
name: instantsearch.js
version: 4.56.1
file: dist/instantsearch.production.min.js
integrity: sha256-lz9C+x8+6w2rh56x5TrH5iYmE4Js2FiJS5h0tuMz7hQ=
version: 5.36.0
file: dist/lite/builds/browser.umd.js
integrity: sha256-o49zoHLDPBm9WLg6AiliAVi3axCRTqe3ltTxLvhzAVg=
local_search:
name: hexo-generator-searchdb
version: 1.4.1
version: 1.5.0
file: dist/search.js
integrity: sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc=
integrity: sha256-xFC6PJ82SL9b3WkGjFavNiA9gm5z6UBxWPiu4CYjptg=
pdfobject:
name: pdfobject
version: 2.2.11
version: 2.3.1
file: pdfobject.min.js
integrity: sha256-N6JtCNwaYm6kizuG92UtOOXamRHPwu+V1yF10g3bu/c=
integrity: sha256-jI72I8ZLVflVOisZIOaLvRew3tyvzeu6aZXFm7P7dEo=
mermaid:
name: mermaid
version: 9.4.3
version: 11.10.1
file: dist/mermaid.min.js
integrity: sha256-e0o3JYsdjqKajf9eOe22FhioYSz9WofRY4dLKo3F6do=
integrity: sha256-BmQmdWDS8X2OTbrwELWK366LV6escyWhHHe0XCTU/Hk=
animate_css:
name: animate.css
version: 3.1.1
@ -174,11 +164,11 @@ creative_commons:
alias: creativecommons-vocabulary
wavedrom:
name: wavedrom
version: 3.2.0
version: 3.5.0
file: wavedrom.min.js
integrity: sha256-cOqJCt2rKQA4GNjlL0tODFHnWd0CRLKLFqYhO6TCtAE=
integrity: sha256-INLAoJc6quTNfiMWkGZniYO2cxE8mHpddnLow1m6RFs=
wavedrom_skin:
name: wavedrom
version: 3.2.0
version: 3.5.0
file: skins/default.js
integrity: sha256-fduc/Zszk5ezWws2uInY/ALWVmIrmV6VTgXbsYSReFI=

View File

@ -17,12 +17,13 @@
> «NexT» — элегантная высококачественная тема под [Hexo](https://hexo.io). Сделана с нуля, с любовью.
[![NPM version](https://img.shields.io/npm/v/hexo-theme-next?color=red&logo=npm&style=flat-square)](https://www.npmjs.com/package/hexo-theme-next)
[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=5.3.0-blue?style=flat-square&logo=hexo)](https://hexo.io)
[![License](https://img.shields.io/badge/license-%20AGPL-orange?style=flat-square&logo=gnu)](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/linter.yml?branch=master&label=test&logo=github&style=flat-square)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/tester.yml?branch=master&logo=github&style=flat-square)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
[![Coverage Status](https://img.shields.io/coveralls/github/next-theme/hexo-theme-next?logo=coveralls&style=flat-square)](https://coveralls.io/github/next-theme/hexo-theme-next)
[![NPM version](https://img.shields.io/npm/v/hexo-theme-next?color=red&logo=npm&style=for-the-badge)](https://www.npmjs.com/package/hexo-theme-next)
[![NPM Downloads](https://img.shields.io/npm/dm/hexo-theme-next?logo=npm&style=for-the-badge)](https://www.npmjs.com/package/hexo-theme-next)
[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=7.0.0-blue?style=for-the-badge&logo=hexo)](https://hexo.io)
[![License](https://img.shields.io/badge/license-%20AGPL-orange?style=for-the-badge&logo=gnu)](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/linter.yml?branch=master&label=test&logo=github&style=for-the-badge)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/tester.yml?branch=master&logo=github&style=for-the-badge)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
[![Coverage Status](https://img.shields.io/coveralls/github/next-theme/hexo-theme-next?logo=coveralls&style=for-the-badge)](https://coveralls.io/github/next-theme/hexo-theme-next)
## Демо
@ -38,15 +39,15 @@
If you're using Hexo 5.0 or later, the simplest way to install is through npm:
```sh
$ cd hexo-site
$ npm install hexo-theme-next
cd hexo-site
npm install hexo-theme-next
```
Or you can clone the entire repository:
```sh
$ cd hexo-site
$ git clone https://github.com/next-theme/hexo-theme-next themes/next
cd hexo-site
git clone https://github.com/next-theme/hexo-theme-next themes/next
```
See [detailed installation instructions][docs-installation-url] if you want any other variant.
@ -65,7 +66,7 @@ At present, NexT encourages users to use the [Alternate Theme Config][docs-confi
## Плагины
Plugins extend and expand the functionality of NexT. There are two types of plugins: core plugins and third-party plugins. The core plugins are required by the basic functions of NexT. Third-party plugins provide a large number of optional features.
Plugins extend and expand the functionality of NexT. Some advanced features may require third-party libraries or additional configuration, giving you the flexibility to create a truly personalized website.
Configuring these plugins is very easy. Например, Вы хотите использовать `pjax` для своего сайта. Открываем конфиг NexT'а и находим:
@ -91,28 +92,36 @@ vendors:
## Обновление
NexT выпускает новые версии каждый месяц. Please read the [release notes][docs-release-url] before updating the theme. You can update NexT by the following command.
The NexT theme will continue to release new versions to include new features and bug fixes. Please read the [release notes][docs-release-url] before updating the theme. You can update NexT by the following command.
Install the latest version through npm:
```sh
$ cd hexo-site
$ npm install hexo-theme-next@latest
cd hexo-site
npm install hexo-theme-next@latest
```
Or update to the latest master branch:
```sh
$ cd themes/next
$ git pull
cd themes/next
git pull
```
**Если нужно обновиться с версии v5.x / v7.x на последней версиями, читаем [здесь][docs-upgrade-url].**
## Community
Connect with us and be part of our growing community!
* **Discord Server**: [Join our Discord!](https://discord.gg/qmkgkY3jaG)
* **Gitter**: [Join our Gitter chats!][gitter-url]
* **ChatGPT**: [NexT Mentor][gpt-url]
## Обратная связь
* Посетите [Awesome NexT][awesome-next-url] список.
* Вступить в наши [GitHub discussions][discussions-url] / [Gitter][gitter-url] чаты.
* Вступить в наши [GitHub discussions][discussions-url].
* [Добавить или улучшить перевод][i18n-url] за несколько секунд.
* Сообщить об ошибке в разделе [GitHub Issues][issues-bug-url].
* Запросить новую возможность на [GitHub][issues-feat-url].
@ -146,7 +155,13 @@ Also, we welcome Issue or PR to our [official-plugins][official-plugins-url].
> Netlify allows us to distribute the documentation.
<a href="https://crowdin.com"><img height="40" src="https://support.crowdin.com/assets/logos/crowdin-logo-small-black.svg"></a>
<a href="https://crowdin.com">
<picture>
<source media="(prefers-color-scheme: dark)" height="40" srcset="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cWhite.svg">
<source media="(prefers-color-scheme: light)" height="40" srcset="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cDark.svg">
<img alt="Netlify Logo" height="40" src="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cDark.svg">
</picture>
</a>
> Crowdin allows us to translate conveniently the documentation.
@ -168,7 +183,8 @@ Also, we welcome Issue or PR to our [official-plugins][official-plugins-url].
[awesome-next-url]: https://github.com/next-theme/awesome-next
[discussions-url]: https://github.com/next-theme/hexo-theme-next/discussions
[gitter-url]: https://gitter.im/hexo-next
[gitter-url]: https://app.gitter.im/#/room/#next:gitter.im
[gpt-url]: https://chatgpt.com/g/g-68286c2fc1f48191aee3e87c94a89431-next-mentor
[i18n-url]: https://crowdin.com/project/hexo-theme-next
[issues-bug-url]: https://github.com/next-theme/hexo-theme-next/issues/new?assignees=&labels=Bug&template=bug-report.md

View File

@ -88,7 +88,7 @@
* [GitHub Discussions](https://github.com/next-theme/hexo-theme-next/discussions)
* 即时通信:
* [Gitter](https://gitter.im/hexo-next)
* [Gitter](https://app.gitter.im/#/room/#next:gitter.im)
## 来源

View File

@ -15,14 +15,15 @@
# NexT
> «NexT» 是一款风格优雅的高质量 [Hexo](https://hexo.io) 主题,自点点滴滴中用爱雕琢而成。
> NexT 是一款风格优雅的高质量 [Hexo](https://hexo.io) 主题,自点点滴滴中用爱雕琢而成。
[![NPM version](https://img.shields.io/npm/v/hexo-theme-next?color=red&logo=npm&style=flat-square)](https://www.npmjs.com/package/hexo-theme-next)
[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=5.3.0-blue?style=flat-square&logo=hexo)](https://hexo.io)
[![License](https://img.shields.io/badge/license-%20AGPL-orange?style=flat-square&logo=gnu)](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/linter.yml?branch=master&label=test&logo=github&style=flat-square)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/tester.yml?branch=master&logo=github&style=flat-square)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
[![Coverage Status](https://img.shields.io/coveralls/github/next-theme/hexo-theme-next?logo=coveralls&style=flat-square)](https://coveralls.io/github/next-theme/hexo-theme-next)
[![NPM version](https://img.shields.io/npm/v/hexo-theme-next?color=red&logo=npm&style=for-the-badge)](https://www.npmjs.com/package/hexo-theme-next)
[![NPM Downloads](https://img.shields.io/npm/dm/hexo-theme-next?logo=npm&style=for-the-badge)](https://www.npmjs.com/package/hexo-theme-next)
[![Required Hexo version](https://img.shields.io/badge/hexo-%3E=7.0.0-blue?style=for-the-badge&logo=hexo)](https://hexo.io)
[![License](https://img.shields.io/badge/license-%20AGPL-orange?style=for-the-badge&logo=gnu)](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/linter.yml?branch=master&label=test&logo=github&style=for-the-badge)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
[![Build Status](https://img.shields.io/github/actions/workflow/status/next-theme/hexo-theme-next/tester.yml?branch=master&logo=github&style=for-the-badge)](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
[![Coverage Status](https://img.shields.io/coveralls/github/next-theme/hexo-theme-next?logo=coveralls&style=for-the-badge)](https://coveralls.io/github/next-theme/hexo-theme-next)
## 即时预览
@ -30,7 +31,7 @@
💟 <a href="https://theme-next.js.org/muse/">Muse</a> | 🔯 <a href="https://theme-next.js.org/mist/">Mist</a> | ♓️ <a href="https://theme-next.js.org/pisces/">Pisces</a> | ♊️ <a href="https://theme-next.js.org">Gemini</a>
<br>
<br>
更多 «NexT» 的例子参见<a href="https://github.com/next-theme/awesome-next#live-preview">这里</a>
更多 NexT 的例子参见<a href="https://github.com/next-theme/awesome-next#live-preview">这里</a>
</p>
## 安装
@ -38,15 +39,15 @@
如果你在使用 Hexo 5.0 或更新版本,最简单的安装方式是通过 npm
```sh
$ cd hexo-site
$ npm install hexo-theme-next
cd hexo-site
npm install hexo-theme-next
```
你也可以直接克隆整个仓库:
```sh
$ cd hexo-site
$ git clone https://github.com/next-theme/hexo-theme-next themes/next
cd hexo-site
git clone https://github.com/next-theme/hexo-theme-next themes/next
```
此外,如果你想要使用其他方式,请参见[详细安装步骤][docs-installation-url]。
@ -65,7 +66,7 @@ theme: next
## 插件
插件丰富和拓展了 NexT 的功能。这些插件分为两种:核心插件和第三方插件。核心插件被 NexT 的基础功能所依赖。第三方插件提供了大量的可选功能
插件丰富和拓展了 NexT 的功能。一些高级功能需要第三方依赖库和额外配置,使你能够灵活地创建一个完全自定义的网站
配置这些插件非常简单。例如,你想要在你的站点中使用 `pjax` 插件,请进入 NexT 配置文件,启用 `pjax` 配置项:
@ -91,28 +92,37 @@ vendors:
## 更新
NexT 每个月都会发布新版本。请在更新前阅读[更新说明][docs-release-url]。你可以通过如下命令更新 NexT。
NexT 会不断发布新版本以包含新功能和问题修复。请在更新前阅读[更新说明][docs-release-url]。你可以通过如下命令更新 NexT。
通过 npm 安装最新版本:
```sh
$ cd hexo-site
$ npm install hexo-theme-next@latest
cd hexo-site
npm install hexo-theme-next@latest
```
或者通过 git 更新到最新的 master 分支:
```sh
$ cd themes/next
$ git pull
cd themes/next
git pull
```
**如果你想要从 v5.x / v7.x 更新到最新版本,阅读[这篇文档][docs-upgrade-url]。**
## 社区
与我们联系并成为我们日益壮大的社区的一部分!
* **Telegram 群组(中文)**[点击此处加入!](https://t.me/theme_next_cn)
* **Discord 服务器**[加入我们的 Discord](https://discord.gg/qmkgkY3jaG)
* **Gitter**[加入我们的 Gitter 聊天!]
* **ChatGPT**: [NexT Mentor][gpt-url]
## 反馈
* 浏览 [Awesome NexT][awesome-next-url] 列表,与其它用户分享插件和教程。
* 加入我们的 [GitHub discussions][discussions-url] / [Gitter][gitter-url] 聊天。
* 加入我们的 [GitHub discussions][discussions-url]。
* 请花几秒钟来[添加或修正翻译][i18n-url]。
* 在 [GitHub Issues][issues-bug-url] 报告Bug。
* 在 [GitHub][issues-feat-url] 请求新的功能。
@ -130,7 +140,7 @@ $ git pull
## 鸣谢
«NexT» 特别感谢这些支持我们核心基础设施的优质服务:
NexT 特别感谢这些支持我们核心基础设施的优质服务:
<a href="https://github.com"><img height="40" src="https://github.githubassets.com/images/modules/logos_page/GitHub-Logo.png"></a>
@ -146,7 +156,13 @@ $ git pull
> Netlify 容许我们发布文档。
<a href="https://crowdin.com"><img height="40" src="https://support.crowdin.com/assets/logos/crowdin-logo-small-black.svg"></a>
<a href="https://crowdin.com">
<picture>
<source media="(prefers-color-scheme: dark)" height="40" srcset="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cWhite.svg">
<source media="(prefers-color-scheme: light)" height="40" srcset="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cDark.svg">
<img alt="Netlify Logo" height="40" src="https://support.crowdin.com/assets/logos/core-logo/svg/crowdin-core-logo-cDark.svg">
</picture>
</a>
> Crowdin 容许我们方便地翻译文档。
@ -168,7 +184,8 @@ $ git pull
[awesome-next-url]: https://github.com/next-theme/awesome-next
[discussions-url]: https://github.com/next-theme/hexo-theme-next/discussions
[gitter-url]: https://gitter.im/hexo-next
[gitter-url]: https://app.gitter.im/#/room/#next:gitter.im
[gpt-url]: https://chatgpt.com/g/g-68286c2fc1f48191aee3e87c94a89431-next-mentor
[i18n-url]: https://crowdin.com/project/hexo-theme-next
[issues-bug-url]: https://github.com/next-theme/hexo-theme-next/issues/new?assignees=&labels=Bug&template=bug-report.md

3
eslint.config.js Normal file
View File

@ -0,0 +1,3 @@
const config = require("@next-theme/eslint-config");
module.exports = config;

View File

@ -18,7 +18,7 @@ menu:
sidebar:
overview: সারাংশ
toc: সূচীপত্র
links: Links
links: লিঙ্কসমুহ
post:
posted: প্রকাশিত হয়েছে
edited: সম্পাদিত হয়েছে
@ -38,14 +38,14 @@ post:
post_link: এই আর্টিকেলটি প্রথমে প্রকাশিত হয়েছে
license_title: কপিরাইট নোটিস
license_content: "এই ব্লগের সমস্ত আর্টিকেল %s এর অধীনে লাইসেন্সপ্রাপ্ত যদি না ব্যতিক্রম উল্লেখ করা হয়।"
license_content_reprint: "This article is a reprinted article and has been reprinted with permission. Please indicate the source!"
license_content_reprint: "এই আর্টিকেলটি একটি পুনর্মুদ্রিত আর্টিকেল এবং অনুমতি নিয়ে পুনরায় মুদ্রণ করা হয়েছে। দয়া করে উৎস নির্দেশ করুন!"
footer:
powered: "%s এর সাহায্যে চলছে"
total_views: মোট দর্শক
total_visitors: মোট দর্শক
widget:
github: Follow me on GitHub
chat: Chat
github: আমাকে GitHub এ অনুসরন কর
chat: চ্যাট
counter:
tag_cloud:
zero: কোনও ট্যাগ নেই
@ -86,7 +86,7 @@ reward:
alipay: আলি পে
paypal: PayPal
bitcoin: বিটকয়েন
comment: Buy me a coffee
comment: আমাকে একটা কফি কিনে দাও
follow_me:
welcome: আমার অন্যান্য প্রকাশনা চ্যানেলে আপনাকে স্বাগতম
accessibility:

103
languages/eo.yml Normal file
View File

@ -0,0 +1,103 @@
---
name: Esperanto
title:
archive: Arkivo
category: Kategorio
tag: Etikedo
schedule: Horaro
menu:
home: Ĉefpaĝo
archives: Arkivoj
categories: Kategorioj
tags: Etikedoj
about: Pri
search: Serĉi
schedule: Horaro
sitemap: Retejmapo
commonweal: Commonweal 404
sidebar:
overview: Superrigardo
toc: Enhavtabelo
links: Links
post:
posted: Afiŝita je
edited: Redaktita je
created: Kreita por
modified: Modifita por
edit: Redaktu ĉi tiun afiŝon
in: En
read_more: Legi pli
untitled: Neniu titolo
sticky: Alpingli al la supro
views: Rigardoj
related_posts: Rilataj afiŝoj
copyright:
author: Aŭtoro de ĉi tiu afiŝo
link: Ligilo de ĉi tui afiŝo
post_author: Written by
post_link: This article originally appeared on
license_title: Copyright
license_content: "Ĉiuj artikoloj en ĉi tiu blogo estas licencita sub %s krom se kroma permesilo estas specifita."
license_content_reprint: "This article is a reprinted article and has been reprinted with permission. Please indicate the source!"
footer:
powered: "Funkciigita de %s"
total_views: Tutaj rigardoj
total_visitors: Tutaj visitoj
widget:
github: Follow me on GitHub
chat: Chat
counter:
tag_cloud:
zero: Neniuj etikedoj
one: Entute 1 etikedo
other: "Entute %d etikedoj"
categories:
zero: Neniuj kategorioj
one: Entute 1 kategorio
other: "Entute %d kategorioj"
archive_posts:
zero: Neniuj afiŝoj.
one: Entute 1 afiŝo.
other: "Entute %d afiŝoj."
state:
posts: afiŝoj
tags: etikedoj
categories: kategorioj
search:
placeholder: Serĉante...
empty: "We didn't find any results for the search: %s"
hits_time: "%s results found in %s ms"
hits: "%s results found"
cheers:
um: Um..
ok: malaĉe
nice: bonete
good: bone
great: bonege
excellent: perfekte
keep_on: Daŭre afiŝu!
symbol:
comma: ", "
period: ". "
colon: ": "
reward:
donate: Doni
wechatpay: WeChat Pay
alipay: Alipay
paypal: PayPal
bitcoin: Bitcoin
comment: Buy me a coffee
follow_me:
welcome: Bonvenon al miaj aliaj eldonkanaloj
accessibility:
nav_toggle: Baskuligi navigacian stangon
prev_page: Antaŭa paĝo
next_page: Sekva paĝo
back_to_top: Back to top
select_lang: Select language
symbols_count_time:
count: Nombro da signoj en la artikolo
count_total: Nombro da signoj en la tuta reto
time: Tempo de rigardo
time_total: Tempo tuta de rigardo
time_minutes: minutoj.

View File

@ -13,12 +13,12 @@ menu:
about: À propos
search: Recherche
schedule: Plannifier
sitemap: Sitemap
sitemap: Plan de site
commonweal: Commonweal 404
sidebar:
overview: Aperçu
toc: Table Des Matières
links: Links
links: Liens
post:
posted: Posté le
edited: Édité le
@ -34,18 +34,18 @@ post:
copyright:
author: Auteur de l'article
link: Lien de l'article
post_author: Written by
post_link: This article originally appeared on
post_author: Rédigé par
post_link: Cet article a été initialement publié sur
license_title: Droit d'auteur
license_content: "Tous les articles de ce blog sont sous licence %s, sauf mention contraire."
license_content_reprint: "This article is a reprinted article and has been reprinted with permission. Please indicate the source!"
license_content_reprint: "Cet article provient d'un article publié et repris avec autorisation. Veuillez indiquer la source!"
footer:
powered: "Propulsé par %s"
total_views: Vues totales
total_visitors: Total visiteurs
widget:
github: Follow me on GitHub
chat: Chat
github: Suivez-moi sur GitHub
chat: Discussion
counter:
tag_cloud:
zero: Aucun tag
@ -65,12 +65,12 @@ state:
categories: catégories
search:
placeholder: Recherche...
empty: "We didn't find any results for the search: %s"
hits_time: "%s results found in %s ms"
hits: "%s results found"
empty: "Nous n'avons trouvé aucun résultat pour la recherche : %s"
hits_time: "%s resultats trouvés en %s ms"
hits: "%s résultats trouvés"
cheers:
um: Um..
ok: OK
um: Eh bien..
ok: Ok
nice: Jolie
good: Bien
great: Super
@ -82,22 +82,22 @@ symbol:
colon: ": "
reward:
donate: Donner
wechatpay: WeChat Pay
wechatpay: Paiement WeChat
alipay: Alipay
paypal: PayPal
bitcoin: Bitcoin
comment: Buy me a coffee
comment: Offrez-moi un café
follow_me:
welcome: Welcome to my other publishing channels
welcome: Bienvenue dans mes autres salons de publication
accessibility:
nav_toggle: Basculer la barre de navigation
prev_page: Page précédente
next_page: Page suivante
back_to_top: Back to top
select_lang: Select language
back_to_top: Revenir en haut
select_lang: Choisir une langue
symbols_count_time:
count: Caractères dans l'article
count_total: Caractères total
time: Temps de lecture
time_total: Temps total de lecture
time_minutes: mins.
time_minutes: minutes.

View File

@ -3,16 +3,16 @@ name: Português
title:
archive: Arquivo
category: Categoria
tag: Tag
schedule: Schedule
tag: Etiqueta
schedule: Agenda
menu:
home: Home
home: Início
archives: Arquivos
categories: Categorias
tags: Tags
tags: Etiquetas
about: Sobre
search: Pesquisa
schedule: Schedule
schedule: Agenda
sitemap: Sitemap
commonweal: Commonweal 404
sidebar:
@ -21,30 +21,30 @@ sidebar:
links: Links
post:
posted: Postado em
edited: Edited on
edited: Editado em
created: Post created
modified: Updated at
edit: Edit this post
edit: Modificar este post
in: Em
read_more: Ler mais
untitled: Sem título
sticky: Sticky
views: Views
related_posts: Related Posts
sticky: Marcado
views: Visualizações
related_posts: Publicações Relacionadas
copyright:
author: Post author
link: Post link
post_author: Written by
post_link: This article originally appeared on
license_title: Copyright Notice
license_content: "All articles in this blog are licensed under %s unless stating additionally."
license_content_reprint: "This article is a reprinted article and has been reprinted with permission. Please indicate the source!"
author: Autor da publicação
link: Link para postagem
post_author: Escrito por
post_link: Este artigo apareceu originalmente em
license_title: Direitos de autor
license_content: "Todos os artigos deste blog são licenciados sob %s a não ser que informe adicionalmente."
license_content_reprint: "Este artigo é um artigo reimpresso e foi reimpresso com permissão. Por favor, indique a origem!"
footer:
powered: "Desenvolvido com amor com %s"
total_views: Total Views
total_visitors: Total Visitors
total_views: Total de Visualizações
total_visitors: Total de visitantes
widget:
github: Follow me on GitHub
github: Siga-me no GitHub
chat: Chat
counter:
tag_cloud:
@ -57,17 +57,17 @@ counter:
other: "%d categorias no total"
archive_posts:
zero: Sem publicações.
one: 1 post.
one: 1 publicação.
other: "%d publicações no total."
state:
posts: publicações
tags: tags
tags: etiquetas
categories: categorias
search:
placeholder: Searching...
empty: "We didn't find any results for the search: %s"
hits_time: "%s results found in %s ms"
hits: "%s results found"
placeholder: Pesquisando...
empty: "Não encontramos nenhum resultado para a pesquisa: %s"
hits_time: "%s resultados encontrados em %s ms"
hits: "%s resultados encontrados"
cheers:
um: Um..
ok: OK
@ -81,23 +81,23 @@ symbol:
period: ". "
colon: ": "
reward:
donate: Donate
donate: Doar
wechatpay: WeChat Pay
alipay: Alipay
paypal: PayPal
bitcoin: Bitcoin
comment: Buy me a coffee
comment: Pague-me um café
follow_me:
welcome: Welcome to my other publishing channels
welcome: Bem-vindo aos meus outros canais de publicação
accessibility:
nav_toggle: Toggle navigation bar
nav_toggle: Alternar barra de navegação
prev_page: Página anterior
next_page: Página seguinte
back_to_top: Back to top
select_lang: Select language
back_to_top: Voltar ao início
select_lang: Escolher idioma
symbols_count_time:
count: Symbols count in article
count_total: Symbols count total
time: Reading time
time_total: Reading time total
time: Tempo de leitura
time_total: Tempo total de leitura
time_minutes: mins.

View File

@ -66,7 +66,7 @@ state:
search:
placeholder: 搜索...
empty: "我們無法找到任何有關 %s 的搜索結果"
hits_time: "%s 結果在 %s 毫秒找到"
hits_time: "找到 %s 個搜索結果(用時 %s 毫秒)"
hits: "找到 %s 個結果"
cheers:
um: 嗯..

View File

@ -4,7 +4,7 @@ title:
archive: 歸檔
category: 分類
tag: 標籤
schedule: 時間表
schedule: 文章日曆
menu:
home: 首頁
archives: 歸檔
@ -18,7 +18,7 @@ menu:
sidebar:
overview: 本站概要
toc: 文章目錄
links: Links
links: 連結
post:
posted: 發表於
edited: 更新於
@ -32,27 +32,27 @@ post:
views: 閱讀次數
related_posts: 相關文章
copyright:
author: 作者
author: 本文作者
link: 文章連結
post_author: 已寫入
post_author: 原作者
post_link: 文章最初發表於
license_title: 版權聲明
license_content: "本網誌所有文章除特別聲明外,均採用 %s 許可協議。轉載請註明出處!"
license_content_reprint: "This article is a reprinted article and has been reprinted with permission. Please indicate the source!"
license_content_reprint: "本文章為轉載文章,已獲轉載許可。轉載請註明出處!"
footer:
powered: "由 %s 強力驅動"
total_views: 總瀏覽次數
total_visitors: 訪客總數
widget:
github: Follow me on GitHub
chat: Chat
github: 在 GitHub 上關注我
chat: 聊天
counter:
tag_cloud:
zero: 沒有標籤
zero: 暫無標籤
one: 目前共有 1 個標籤
other: "目前共有 %d 個標籤"
categories:
zero: 沒有分類
zero: 暫無分類
one: 目前共有 1 個分類
other: "目前共有 %d 個分類"
archive_posts:
@ -66,8 +66,8 @@ state:
search:
placeholder: 搜尋...
empty: "我們無法找到任何有關 %s 的搜索結果"
hits_time: "%s 找到 %s 個結果"
hits: "找到 %s 個結果"
hits_time: "找到 %s 個搜索結果(用時 %s 毫秒)"
hits: "找到 %s 個搜索結果"
cheers:
um: 嗯..
ok: 還行
@ -84,9 +84,9 @@ reward:
donate: 捐贈
wechatpay: 微信支付
alipay: 支付寶
paypal: 貝寶
paypal: PayPal
bitcoin: 比特幣
comment: Buy me a coffee
comment: 請我喝杯咖啡!
follow_me:
welcome: 歡迎關注我的其它發布渠道
accessibility:

View File

@ -5,6 +5,11 @@
{%- include '_partials/head/head-unique.njk' -%}
<title>{% block title %}{% endblock %}</title>
{{ partial('_third-party/analytics/index.njk', {}, {cache: theme.cache.enable}) }}
{{ partial('_scripts/index.njk', {}, {cache: theme.cache.enable}) }}
{{ partial('_third-party/index.njk', {}, {cache: theme.cache.enable}) }}
{{ partial('_third-party/statistics/index.njk', {}, {cache: theme.cache.enable}) }}
{%- include '_third-party/math/index.njk' -%}
{%- include '_third-party/quicklink.njk' -%}
{{- next_inject('head') }}
<noscript>
<link rel="stylesheet" href="{{ url_for(theme.css) }}/noscript.css">
@ -40,13 +45,6 @@
{{ partial('_partials/widgets.njk', {}, {cache: theme.cache.enable}) }}
{{ partial('_scripts/index.njk', {}, {cache: theme.cache.enable}) }}
{{ partial('_third-party/index.njk', {}, {cache: theme.cache.enable}) }}
{{ partial('_third-party/statistics/index.njk', {}, {cache: theme.cache.enable}) }}
{%- include '_third-party/math/index.njk' -%}
{%- include '_third-party/quicklink.njk' -%}
{{- next_inject('bodyEnd') }}
</body>
</html>

View File

@ -7,7 +7,7 @@
{%- if year !== current_year %}
{%- set current_year = year %}
<div class="collection-year">
<span class="collection-header">{{ current_year }}</span>
<span class="collection-header">{{ current_year }}{% if is_archive() %}<span class="collection-year-count">{{ post_count(year) }}</span>{% endif %}</span>
</div>
{%- endif %}

View File

@ -19,8 +19,8 @@
</span>
<span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
<meta itemprop="name" content="{{ page.title + ' | ' + title }}">
<meta itemprop="description" content="{{ page.description }}">
<meta itemprop="name" content="{{ escape_html(page.title or '') + ' | ' + title }}">
<meta itemprop="description" content="{{ escape_html(page.description or '') }}">
</span>
{%- if post.header !== false %}
@ -134,15 +134,15 @@
<div class="post-nav">
<div class="post-nav-item">
{%- if prev %}
<a href="{{ url_for(prev.path) }}" rel="prev" title="{{ prev.title }}">
<i class="fa fa-chevron-left"></i> {{ prev.title }}
<a href="{{ url_for(prev.path) }}" rel="prev" title="{{ escape_html(prev.title or '') }}">
<i class="fa fa-angle-left"></i> {{ prev.title }}
</a>
{%- endif %}
</div>
<div class="post-nav-item">
{%- if next %}
<a href="{{ url_for(next.path) }}" rel="next" title="{{ next.title }}">
{{ next.title }} <i class="fa fa-chevron-right"></i>
<a href="{{ url_for(next.path) }}" rel="next" title="{{ escape_html(next.title or '') }}">
{{ next.title }} <i class="fa fa-angle-right"></i>
</a>
{%- endif %}
</div>

View File

@ -62,6 +62,9 @@
{%- if theme.pjax %}
<div class="pjax">
{%- endif %}
{%- if page.embedding_vector %}
{% set _ = related_posts(page) %}
{%- endif %}
{%- if page.related_posts and page.related_posts.length > 0 %}
<div class="sidebar-inner sidebar-post-related">
<div class="animated">

View File

@ -6,11 +6,11 @@
{%- if theme.comments.style == 'buttons' %}
<div class="comment-button-group">
{%- for inject_item in theme.injects.comment %}
<a class="btn comment-button {{ inject_item.locals.class }}">{{ inject_item.locals.button }}</a>
<a class="btn comment-button comment-{{ inject_item.locals.class }}">{{ inject_item.locals.button }}</a>
{%- endfor %}
</div>
{%- for inject_item in theme.injects.comment %}
<div class="comment-position {{ inject_item.locals.class }}">
<div class="comment-position comment-{{ inject_item.locals.class }}">
{{ partial(inject_item.layout, inject_item.locals, inject_item.options) }}
</div>
{%- endfor %}

View File

@ -5,20 +5,22 @@
<img src="{{ url_for(theme.footer.beian.gongan_icon_url) }}" alt="">
{%- endif %}
{%- if theme.footer.beian.gongan_id and theme.footer.beian.gongan_num %}
{{- next_url('http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=' + theme.footer.beian.gongan_id, theme.footer.beian.gongan_num + ' ') }}
{{- next_url('https://beian.mps.gov.cn/#/query/webSearch?code=' + theme.footer.beian.gongan_id, theme.footer.beian.gongan_num + ' ') }}
{%- endif %}
</div>
{%- endif %}
<div class="copyright">
{%- set copyright_year = date(null, 'YYYY') %}
&copy; {% if theme.footer.since and theme.footer.since != copyright_year %}{{ theme.footer.since }} {% endif %}
<span itemprop="copyrightYear">{{ copyright_year }}</span>
<span class="with-love">
<i class="{{ theme.footer.icon.name }}"></i>
</span>
<span class="author" itemprop="copyrightHolder">{{ theme.footer.copyright or author }}</span>
</div>
{%- if theme.footer.copyright !== false %}
<div class="copyright">
{%- set copyright_year = date(null, 'YYYY') %}
&copy; {% if theme.footer.since and theme.footer.since != copyright_year %}{{ theme.footer.since }} {% endif %}
<span itemprop="copyrightYear">{{ copyright_year }}</span>
<span class="with-love">
<i class="{{ theme.footer.icon.name }}"></i>
</span>
<span class="author" itemprop="copyrightHolder">{{ theme.footer.copyright or author }}</span>
</div>
{%- endif %}
{%- if config.symbols_count_time.total_symbols or config.symbols_count_time.total_time %}
<div class="wordcount">

View File

@ -12,7 +12,9 @@
{%- set canonical = canonical | replace(r/\.html$/, '') %}
{%- endif %}
<link rel="canonical" href="{{ canonical }}">
{%- if page.noindex %}
<meta name="robots" content="noindex">
{%- endif %}
{# Exports some front-matter variables to Front-End #}
{# https://hexo.io/docs/variables.html #}
{{ next_data('page', next_config_unique()) }}

View File

@ -18,7 +18,7 @@
{{ next_url(page.post_link, page.post_link, {title: page.title}) }}
{%- else %}
<strong>{{ __('post.copyright.link') + __('symbol.colon') }}</strong>
{{ next_url(page.permalink, page.permalink, {title: page.title}) }}
{{ next_url(page.permalink, page.permalink, {title: page.title}, true) }}
{%- endif %}
</li>
<li class="post-copyright-license">

View File

@ -1,9 +1,3 @@
{%- if theme.add_this_id %}
<div class="addthis_inline_share_toolbox social-like">
<script src="//s7.addthis.com/js/300/addthis_widget.js#pubid={{ theme.add_this_id }}" async="async"></script>
</div>
{%- endif %}
{%- if theme.addtoany.enable %}
<div class="social-like a2a_kit a2a_kit_size_32 a2a_default_style">
<a class="a2a_dd" href="https://www.addtoany.com/share"></a>

View File

@ -1,14 +0,0 @@
<div class="search-header">
<span class="search-icon">
<i class="fa fa-search"></i>
</span>
<div class="search-input-container"></div>
<span class="popup-btn-close" role="button">
<i class="fa fa-times-circle"></i>
</span>
</div>
<div class="search-result-container">
<div class="algolia-stats"><hr></div>
<div class="algolia-hits"></div>
<div class="algolia-pagination"></div>
</div>

View File

@ -1,11 +1,24 @@
{%- if theme.algolia_search.enable or theme.local_search.enable %}
<div class="search-pop-overlay">
<div class="popup search-popup">
{%- if theme.algolia_search.enable %}
{%- include 'algolia-search.njk' -%}
{% elif theme.local_search.enable %}
{%- include 'localsearch.njk' -%}
{%- endif %}
<div class="search-header">
<span class="search-icon">
<i class="fa fa-search"></i>
</span>
<div class="search-input-container">
<input autocomplete="off" autocapitalize="off" maxlength="80"
placeholder="{{ __('search.placeholder') }}" spellcheck="false"
type="search" class="search-input">
</div>
<span class="popup-btn-close" role="button">
<i class="fa fa-times-circle"></i>
</span>
</div>
<div class="search-result-container">
<div class="search-result-icon">
<i class="{% if theme.algolia_search.enable %}fab fa-algolia{% elif theme.local_search.enable %}fa fa-spinner fa-pulse{% endif %} fa-5x"></i>
</div>
</div>
</div>
</div>
{%- endif %}

View File

@ -1,18 +0,0 @@
<div class="search-header">
<span class="search-icon">
<i class="fa fa-search"></i>
</span>
<div class="search-input-container">
<input autocomplete="off" autocapitalize="off" maxlength="80"
placeholder="{{ __('search.placeholder') }}" spellcheck="false"
type="search" class="search-input">
</div>
<span class="popup-btn-close" role="button">
<i class="fa fa-times-circle"></i>
</span>
</div>
<div class="search-result-container no-result">
<div class="search-result-icon">
<i class="fa fa-spinner fa-pulse fa-5x"></i>
</div>
</div>

View File

@ -51,9 +51,9 @@
</div>
{%- endif %}
{%- if theme.chat.enable and (theme.chatra.enable or theme.tidio.enable or theme.gitter.enable) %}
{%- if theme.chat.enable and (theme.chatra.enable or theme.tidio.enable) %}
<div class="sidebar-button animated">
<button{% if theme.gitter.enable %} class="js-gitter-toggle-chat-button"{% endif %}>
<button>
{%- if theme.chat.icon %}<i class="{{ theme.chat.icon }}"></i>{% endif %}
{{ __('widget.chat') }}
</button>

View File

@ -1,6 +1,6 @@
{# Widgets with fixed position #}
{%- if theme.sidebar.display !== 'remove' and (theme.scheme === 'Muse' or theme.scheme === 'Mist') %}
{%- if theme.sidebar.display !== 'remove' %}
<div class="toggle sidebar-toggle" role="button">
<span class="toggle-line"></span>
<span class="toggle-line"></span>

View File

@ -1,14 +1,16 @@
{%- include 'vendors.njk' -%}
{{- next_js('comments.js') }}
{%- if theme.injects.comment.length > 1 %}
{{- next_js('comments.js') }}
{%- endif %}
{{- next_js('utils.js') }}
{%- if theme.motion.enable %}
{{- next_js('motion.js') }}
{%- endif %}
{%- if theme.scheme === 'Muse' or theme.scheme === 'Mist' %}
{{- next_js('schemes/muse.js') }}
{%- if theme.sidebar.display !== 'remove' %}
{{- next_js('sidebar.js') }}
{%- endif %}
{{- next_js('next-boot.js') }}

View File

@ -1,5 +1,5 @@
{%- if theme.canvas_ribbon.enable %}
<script size="{{ theme.canvas_ribbon.size }}" alpha="{{ theme.canvas_ribbon.alpha }}" zIndex="{{ theme.canvas_ribbon.zIndex }}" src="{{ theme.vendors.canvas_ribbon.url }}"></script>
<script size="{{ theme.canvas_ribbon.size }}" alpha="{{ theme.canvas_ribbon.alpha }}" zIndex="{{ theme.canvas_ribbon.zIndex }}" src="{{ theme.vendors.canvas_ribbon.url }}" defer></script>
{%- endif %}
{%- for name in js_vendors() %}

View File

@ -1,5 +1,5 @@
{%- if theme.clarity_analytics %}
<script type="text/javascript">
<script>
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;

View File

@ -1,3 +0,0 @@
{{ next_data('gitter', theme.gitter) }}
{{ next_js('third-party/chat/gitter.js') }}
<script src="https://sidecar.gitter.im/dist/sidecar.v1.js" async defer></script>

View File

@ -8,8 +8,6 @@
{%- include 'chat/chatra.njk' -%}
{%- elif theme.tidio.enable %}
{%- include 'chat/tidio.njk' -%}
{%- elif theme.gitter.enable %}
{%- include 'chat/gitter.njk' -%}
{%- endif %}
{%- include 'tags/pdf.njk' -%}

View File

@ -1,4 +1,3 @@
{{ next_vendors('algolia_search') }}
{{ next_vendors('instant_search') }}
{{- next_js('third-party/search/algolia-search.js') }}

View File

@ -1,3 +1,7 @@
{%- if theme.busuanzi_count.enable %}
{%- if theme.vendors.busuanzi %}
<script{{ pjax }} async src="{{ theme.vendors.busuanzi }}"></script>
{%- else %}
<script{{ pjax }} async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
{%- endif %}
{%- endif %}

View File

@ -23,7 +23,9 @@
{### PAGE BLOCK ###}
{##################}
<div class="post-block" lang="{{ page.lang }}">
{%- include '_partials/page/page-header.njk' -%}
{%- if page.header !== false %}
{%- include '_partials/page/page-header.njk' -%}
{%- endif %}
{#################}
{### PAGE BODY ###}
{#################}

View File

@ -1,6 +1,6 @@
{
"name": "hexo-theme-next",
"version": "8.17.0",
"version": "8.27.0",
"description": "Elegant and powerful theme for Hexo.",
"main": "package.json",
"files": [
@ -19,7 +19,10 @@
"test": "mocha test/index.js",
"test-cov": "c8 npm test"
},
"repository": "next-theme/hexo-theme-next",
"repository": {
"type": "git",
"url": "git+https://github.com/next-theme/hexo-theme-next.git"
},
"keywords": [
"hexo",
"theme",
@ -32,15 +35,15 @@
},
"homepage": "https://theme-next.js.org",
"devDependencies": {
"@next-theme/eslint-config": "0.0.3",
"c8": "7.14.0",
"chai": "4.3.7",
"eslint": "8.42.0",
"hexo": "6.3.0",
"hexo-renderer-marked": "6.0.0",
"js-yaml": "4.1.0",
"mocha": "10.2.0",
"stylelint": "14.16.1",
"stylelint-stylus": "0.18.0"
"@next-theme/eslint-config": "0.0.5",
"c8": "10.1.3",
"chai": "6.2.2",
"eslint": "9.39.2",
"hexo": "8.1.1",
"hexo-renderer-marked": "7.0.1",
"js-yaml": "4.1.1",
"mocha": "11.7.5",
"stylelint": "16.26.1",
"stylelint-stylus": "1.0.0"
}
}

View File

@ -15,11 +15,11 @@ module.exports = hexo => {
hexo.log.warn(`Since ${args[0]} is turned on, the ${args[1]} is disabled to avoid potential hazards.`);
};
if (cache && cache.enable && language_switcher) {
if (cache?.enable && language_switcher) {
warning('language_switcher', 'caching');
cache.enable = false;
}
if (cache && cache.enable && hexo.config.relative_link) {
if (cache?.enable && hexo.config.relative_link) {
warning('caching', '`relative_link` option in Hexo `_config.yml`');
hexo.config.relative_link = false;
}

View File

@ -13,14 +13,13 @@ module.exports = hexo => {
const { config } = hexo;
const theme = hexo.theme.config;
config.highlight.hljs = false;
config.prismjs = config.prismjs || {};
theme.highlight = {
enable: config.highlight.enable && !config.prismjs.enable,
enable: config.syntax_highlighter === 'highlight.js' || config.highlight.enable,
light : highlightTheme(theme.codeblock.theme.light),
dark : highlightTheme(theme.codeblock.theme.dark)
};
theme.prism = {
enable: config.prismjs.enable,
enable: config.syntax_highlighter === 'prismjs' || config.prismjs.enable,
light : prismTheme(theme.codeblock.prism.light),
dark : prismTheme(theme.codeblock.prism.dark),
number: resolve('prismjs', 'plugins/line-numbers/prism-line-numbers.css')

View File

@ -5,7 +5,7 @@ const path = require('path');
let css;
try {
css = require('@adobe/css-tools');
} catch (error) {
} catch {
css = require('css');
}
@ -13,7 +13,7 @@ function resolve(name, file = '') {
let dir;
try {
dir = path.dirname(require.resolve(`${name}/package.json`));
} catch (error) {
} catch {
return '';
}
return `${dir}/${file}`;

View File

@ -9,7 +9,7 @@ const { getVendors } = require('./utils');
let internal;
try {
internal = require('@next-theme/plugins');
} catch (error) {
} catch {
}
const vendorsFile = fs.readFileSync(path.join(__dirname, '../../../_vendors.yml'));
const dependencies = yaml.load(vendorsFile);
@ -19,6 +19,12 @@ module.exports = hexo => {
if (typeof internal === 'function') {
internal(hexo, dependencies);
}
let { plugins = 'cdnjs' } = vendors;
if (plugins === 'local' && typeof internal === 'undefined') {
hexo.log.warn('Dependencies for `plugins: local` not found. The default CDN provider CDNJS is used instead.');
hexo.log.warn('Run `npm install @next-theme/plugins` in Hexo site root directory to install the plugin.');
plugins = 'cdnjs';
}
for (const [key, value] of Object.entries(dependencies)) {
// This script will be executed repeatedly when Hexo listens file changes
// But the variable vendors[key] only needs to be modified once
@ -41,12 +47,6 @@ module.exports = hexo => {
local : url_for.call(hexo, `lib/${name}/${file}`),
custom : vendors.custom_cdn_url
});
let { plugins = 'cdnjs' } = vendors;
if (plugins === 'local' && typeof internal === 'undefined') {
hexo.log.warn('Dependencies for `plugins: local` not found. The default CDN provider CDNJS is used instead.');
hexo.log.warn('Run `npm install @next-theme/plugins` in Hexo site root directory to install the plugin.');
plugins = 'cdnjs';
}
vendors[key] = {
url : links[plugins] || links.cdnjs,
integrity: value.integrity

View File

@ -8,7 +8,7 @@ const { iconText } = require('./common');
// Add comment
hexo.extend.filter.register('theme_inject', injects => {
const config = hexo.theme.config.changyan;
if (!config.enable || !config.appid || !config.appkey) return;
if (!config || !config.enable || !config.appid || !config.appkey) return;
injects.comment.raw('changyan', '<div class="comments" id="SOHUCS" sid="{{ gitalk_md5(page.path) }}"></div>', {}, {});
@ -19,7 +19,7 @@ hexo.extend.filter.register('theme_inject', injects => {
// Add post_meta
hexo.extend.filter.register('theme_inject', injects => {
const config = hexo.theme.config.changyan;
if (!config.enable || !config.count || !config.appid || !config.appkey) return;
if (!config || !config.enable || !config.count || !config.appid || !config.appkey) return;
injects.postMeta.raw('changyan', `
{% if post.comments %}

View File

@ -40,8 +40,8 @@ hexo.extend.filter.register('after_generate', () => {
hexo.route.remove('js/comments-buttons.js');
}
if (theme.scheme === 'Pisces' || theme.scheme === 'Gemini') {
hexo.route.remove('js/schemes/muse.js');
if (theme.sidebar.display === 'remove') {
hexo.route.remove('js/sidebar.js');
}
// Third Party Scripts
@ -67,12 +67,8 @@ hexo.extend.filter.register('after_generate', () => {
hexo.route.remove('js/third-party/chat/tidio.js');
}
if (!theme.gitter.enable) {
hexo.route.remove('js/third-party/chat/gitter.js');
}
// Comments
if (!theme.changyan.enable || !theme.changyan.appid || !theme.changyan.appkey) {
if (!theme.changyan || !theme.changyan.enable || !theme.changyan.appid || !theme.changyan.appkey) {
hexo.route.remove('js/third-party/comments/changyan.js');
}
@ -124,7 +120,7 @@ hexo.extend.filter.register('after_generate', () => {
hexo.route.remove('js/third-party/statistics/firestore.js');
}
if (!theme.leancloud_visitors.enable) {
if (!theme.leancloud_visitors?.enable) {
hexo.route.remove('js/third-party/statistics/lean-analytics.js');
}

View File

@ -32,7 +32,7 @@ hexo.extend.helper.register('next_js', function(file, {
custom : custom_cdn_url
});
const src = links[internal] || links.local;
return `<script ${pjax ? 'data-pjax ' : ''}${module ? 'type="module" ' : ''}src="${src}"></script>`;
return `<script ${pjax ? 'data-pjax ' : ''}${module ? 'type="module" ' : ''}src="${src}" defer></script>`;
});
hexo.extend.helper.register('next_vendors', function(name) {
@ -42,8 +42,8 @@ hexo.extend.helper.register('next_vendors', function(name) {
if (integrity) return `<link rel="stylesheet" href="${url}" integrity="${integrity}" crossorigin="anonymous">`;
return `<link rel="stylesheet" href="${url}">`;
}
if (integrity) return `<script src="${url}" integrity="${integrity}" crossorigin="anonymous"></script>`;
return `<script src="${url}"></script>`;
if (integrity) return `<script src="${url}" integrity="${integrity}" crossorigin="anonymous" defer></script>`;
return `<script src="${url}" defer></script>`;
});
hexo.extend.helper.register('next_data', function(name, ...data) {
@ -92,6 +92,10 @@ hexo.extend.helper.register('post_edit', function(src) {
});
});
hexo.extend.helper.register('post_count', function(year) {
return this.site.posts.filter(post => this.date(post.date, 'YYYY') === year).count();
});
hexo.extend.helper.register('gitalk_md5', function(path) {
const str = this.url_for(path);
return crypto.createHash('md5').update(str).digest('hex');

View File

@ -6,20 +6,20 @@ module.exports = function() {
if (!config || !config.enable) return '';
const fontStyles = ':300,300italic,400,400italic,700,700italic';
const fontStyles = ':ital,wght@0,300;0,400;0,700;1,300;1,400;1,700';
const fontHost = config.host || 'https://fonts.googleapis.com';
// Get a font list from config
let fontFamilies = [];
['global', 'title', 'headings', 'posts', 'codes'].forEach(item => {
if (config[item] && config[item].family && config[item].external) {
if (config[item]?.family && config[item].external) {
fontFamilies = fontFamilies.concat(config[item].family.split(','));
}
});
fontFamilies = fontFamilies.map(name => name.trim().replace(/\s/g, '+') + fontStyles);
fontFamilies = [...new Set(fontFamilies)].join('%7C');
fontFamilies = [...new Set(fontFamilies)].map(name => 'family=' + name).join('&');
// Merge extra parameters to the final processed font string
return fontFamilies ? `<link rel="stylesheet" href="${fontHost}/css?family=${fontFamilies}&display=swap&subset=latin,latin-ext">` : '';
return fontFamilies ? `<link rel="stylesheet" href="${fontHost}/css2?${fontFamilies}&display=swap&subset=latin,latin-ext">` : '';
};

View File

@ -18,7 +18,8 @@ hexo.extend.helper.register('next_config', function() {
version : this.next_version,
exturl : theme.exturl,
sidebar : theme.sidebar,
copycode : theme.codeblock.copy_button,
hljswrap : theme.highlight.enable && config.highlight.wrap,
codeblock : theme.codeblock,
bookmark : theme.bookmark,
mediumzoom: theme.mediumzoom,
lazyload : theme.lazyload,
@ -26,7 +27,7 @@ hexo.extend.helper.register('next_config', function() {
comments : theme.comments,
stickytabs: theme.tabs.sticky,
motion : theme.motion,
prism : config.prismjs.enable && !config.prismjs.preprocess,
prism : theme.prism.enable && !config.prismjs.preprocess,
i18n : {
placeholder: __('search.placeholder'),
empty : __('search.empty', '${query}'),
@ -34,7 +35,7 @@ hexo.extend.helper.register('next_config', function() {
hits : __('search.hits', '${hits}')
}
};
if (config.algolia && theme.algolia_search && theme.algolia_search.enable) {
if (config.algolia && theme.algolia_search?.enable) {
exportConfig.algolia = {
appID : config.algolia.applicationID || config.algolia.appId,
apiKey : config.algolia.apiKey,
@ -42,7 +43,7 @@ hexo.extend.helper.register('next_config', function() {
hits : theme.algolia_search.hits
};
}
if (config.search && theme.local_search && theme.local_search.enable) {
if (config.search && theme.local_search?.enable) {
exportConfig.path = url_for(config.search.path);
exportConfig.localsearch = theme.local_search;
}

View File

@ -3,7 +3,7 @@
const { htmlTag } = require('hexo-util');
const { parse } = require('url');
module.exports = function(path, text, options = {}) {
module.exports = function(path, text, options = {}, decode = false) {
const { config, theme } = this;
const data = parse(path);
const siteHost = parse(config.url).hostname || config.url;
@ -50,5 +50,5 @@ module.exports = function(path, text, options = {}) {
}
}
return htmlTag(tag, attrs, decodeURI(text), false);
return htmlTag(tag, attrs, decode ? decodeURI(text) : text, false);
};

View File

@ -5,7 +5,7 @@
hexo.extend.helper.register('js_vendors', function() {
const { config, theme } = this;
const vendors = ['anime'];
if (config.prismjs.enable && !config.prismjs.preprocess) {
if (theme.prism.enable && !config.prismjs.preprocess) {
vendors.push('prism', 'prism_autoloader');
if (config.prismjs.line_number) {
vendors.push('prism_line_numbers');
@ -15,7 +15,7 @@ hexo.extend.helper.register('js_vendors', function() {
vendors.push('pjax');
}
if (theme.fancybox) {
vendors.push('jquery', 'fancybox_js');
vendors.push('fancybox_js');
}
if (theme.mediumzoom) {
vendors.push('mediumzoom');

View File

@ -80,7 +80,7 @@ function groupBy(group, data) {
const templates = {
dispatch: function(pictures, group, layout) {
dispatch(pictures, group, layout) {
const rule = LAYOUTS[group] ? LAYOUTS[group][layout] : null;
return rule ? this.getHTML(groupBy(rule, pictures)) : this.defaults(pictures);
},
@ -94,7 +94,7 @@ const templates = {
*
* @param pictures
*/
defaults: function(pictures) {
defaults(pictures) {
const ROW_SIZE = 3;
const rows = pictures.length / ROW_SIZE;
const pictureArr = [];
@ -106,13 +106,13 @@ const templates = {
return this.getHTML(pictureArr);
},
getHTML: function(rows) {
getHTML(rows) {
return rows.map(row => {
return `<div class="group-picture-row">${this.getColumnHTML(row)}</div>`;
}).join('');
},
getColumnHTML: function(pictures) {
getColumnHTML(pictures) {
return pictures.map(picture => {
return `<div class="group-picture-column">${picture}</div>`;
}).join('');
@ -120,9 +120,10 @@ const templates = {
};
module.exports = ctx => function(args, content) {
args = args[0].split('-');
const group = parseInt(args[0], 10);
const layout = parseInt(args[1], 10);
let group, layout;
if (args[0]) {
[group, layout] = args[0].split('-');
}
content = ctx.render.renderSync({ text: content, engine: 'markdown' });

View File

@ -7,8 +7,13 @@
const { escapeHTML } = require('hexo-util');
module.exports = function(args, content) {
return `<pre class="mermaid">
// Support mermaid inside backtick code block
// Keep the same HTML structure
// Fix issue #347 #797
return `<pre>
<code class="mermaid">
${args.join(' ')}
${escapeHTML(content)}
</code>
</pre>`;
};

View File

@ -3,6 +3,8 @@
--content-bg-color: $content-bg-color;
--card-bg-color: $card-bg-color;
--text-color: $text-color;
--selection-bg: $selection-bg;
--selection-color: $selection-color;
--blockquote-color: $blockquote-color;
--link-color: $link-color;
--link-hover-color: $link-hover-color;
@ -35,6 +37,8 @@ if (hexo-config('darkmode')) {
--content-bg-color: $content-bg-color-dark;
--card-bg-color: $card-bg-color-dark;
--text-color: $text-color-dark;
--selection-bg: $selection-bg-dark;
--selection-color: $selection-color-dark;
--blockquote-color: $blockquote-color-dark;
--link-color: $link-color-dark;
--link-hover-color: $link-hover-color-dark;
@ -73,3 +77,46 @@ if (hexo-config('darkmode')) {
}
}
}
if (hexo-config('lightdark.enable')) {
+light-dark-block() {
:root {
--body-bg-color: light-dark($body-bg-color, $body-bg-color-dark);
--content-bg-color: light-dark($content-bg-color, $content-bg-color-dark);
--card-bg-color: light-dark($card-bg-color, $card-bg-color-dark);
--text-color: light-dark($text-color, $text-color-dark);
--selection-bg: light-dark($selection-bg, $selection-bg-dark);
--selection-color: light-dark($selection-color, $selection-color-dark);
--blockquote-color: light-dark($blockquote-color, $blockquote-color-dark);
--link-color: light-dark($link-color, $link-color-dark);
--link-hover-color: light-dark($link-hover-color, $link-hover-color-dark);
--brand-color: light-dark($brand-color, $brand-color-dark);
--brand-hover-color: light-dark($brand-hover-color, $brand-hover-color-dark);
--table-row-odd-bg-color: light-dark($table-row-odd-bg-color, $table-row-odd-bg-color-dark);
--table-row-hover-bg-color: light-dark($table-row-hover-bg-color, $table-row-hover-bg-color-dark);
--menu-item-bg-color: light-dark($menu-item-bg-color, $menu-item-bg-color-dark);
--theme-color: light-dark($theme-color, $theme-color-dark);
--btn-default-bg: light-dark($btn-default-bg, $btn-default-bg-dark);
--btn-default-color: light-dark($btn-default-color, $btn-default-color-dark);
--btn-default-border-color: light-dark($btn-default-border-color, $btn-default-border-color-dark);
--btn-default-hover-bg: light-dark($btn-default-hover-bg, $btn-default-hover-bg-dark);
--btn-default-hover-color: light-dark($btn-default-hover-color, $btn-default-hover-color-dark);
--btn-default-hover-border-color: light-dark($btn-default-hover-border-color, $btn-default-hover-border-color-dark);
color-scheme: light dark;
img {
opacity: light-dark(1, .75);
&:hover {
opacity: light-dark(1, .9);
}
}
iframe {
color-scheme: light;
}
}
}
}

View File

@ -34,7 +34,9 @@ if (hexo-config('back2top.enable')) {
color: $b2t-color;
display: flex;
height: $sidebar-toggle-size;
transition: bottom $transition-ease;
transition: $transition-ease;
// Override in Pisces
transition-property: bottom;
sidebar-toggle();
&:hover {

View File

@ -18,15 +18,8 @@
}
.category-list-count {
color: $grey;
&::before {
content: ' (';
}
&::after {
content: ') ';
}
font-size: $font-size-smallest;
badge();
}
.category-list-child {

View File

@ -26,3 +26,16 @@ if (hexo-config('darkmode')) {
}
}
}
if (hexo-config('lightdark.enable')) {
+light-dark-block() {
for $tag-cloud in (0 .. 10) {
$tag-cloud-color = mix($tag-cloud-end, $tag-cloud-start, $tag-cloud * 10);
$tag-cloud-color-dark = mix($tag-cloud-end-dark, $tag-cloud-start-dark, $tag-cloud * 10);
.tag-cloud-{$tag-cloud} {
border-bottom-color: light-dark($tag-cloud-color, $tag-cloud-color-dark);
color: light-dark($tag-cloud-color, $tag-cloud-color-dark);
}
}
}
}

View File

@ -45,8 +45,13 @@
margin-left: 4px;
}
// For fancybox and pandoc
.image-caption, img + figcaption, .fancybox + figcaption {
figure:not(.highlight) {
margin: 0 auto 20px;
}
// https://github.com/hexojs/hexo-renderer-marked/pull/264
// https://github.com/next-theme/hexo-next-exif
figure:not(.highlight) figcaption {
color: $grey-dark;
font-size: $font-size-small;
font-weight: bold;

View File

@ -29,6 +29,11 @@
margin: 60px 0;
position: relative;
.collection-year-count {
font-size: $font-size-smallest;
badge();
}
&::before {
background: $grey;
margin-left: -4px;
@ -90,7 +95,7 @@
color: var(--link-color);
}
.fa-external-link-alt {
.fa {
font-size: $font-size-small;
margin-left: 5px;
}

View File

@ -47,9 +47,10 @@ if (hexo-config('follow_me')) {
.social-item-img {
display: none;
left: 50%;
max-width: $post-reward-img-width;
max-width: $post-followme-img-width;
position: absolute;
transform: translate(-50%, 20px);
z-index: 1;
}
}
}

View File

@ -28,9 +28,9 @@ if (hexo-config('creative_commons.post')) {
&::after {
content: '\f25e';
font-family: 'Font Awesome 6 Brands';
font-family: 'Font Awesome 7 Brands';
font-size: 200px;
opacity: .1;
opacity: $watermark-opacity;
position: absolute;
right: -50px;
top: -150px;

View File

@ -33,7 +33,10 @@
.posts-expand .post-title-link {
border-bottom: 0;
color: var(--link-color);
// Make underline position correct
display: inline-block;
// Fix issue #736
max-width: 100%;
position: relative;
&::before {
@ -53,7 +56,7 @@
transform: scaleX(1);
}
.fa-external-link-alt {
.fa {
font-size: $font-size-small;
margin-left: 5px;
}

View File

@ -8,7 +8,6 @@
border: 2px solid $sidebar-highlight;
border-radius: 2px;
outline: 0;
transition: all $transition-ease;
vertical-align: text-top;
}
}

View File

@ -1,39 +1,48 @@
if (hexo-config('disqusjs.enable') and hexo-config('darkmode')) {
@media (prefers-color-scheme:dark) {
html #dsqjs a {
color: var(--link-color);
}
if (hexo-config('disqusjs.enable')) {
html #dsqjs {
color-scheme: light;
}
if (hexo-config('darkmode')) {
@media (prefers-color-scheme:dark) {
html #dsqjs {
color-scheme: dark;
}
html #dsqjs a:focus,html #dsqjs a:hover {
color: var(--link-hover-color);
}
html #dsqjs a {
color: var(--link-color);
}
html #dsqjs .dsqjs-nav,html #dsqjs footer {
border-color: var(--card-bg-color);
}
html #dsqjs a:focus,html #dsqjs a:hover {
color: var(--link-hover-color);
}
html #dsqjs .dsqjs-load-more,html #dsqjs .dsqjs-load-more:hover,html #dsqjs .dsqjs-nav-tab,html #dsqjs .dsqjs-no-comment,html #dsqjs .dsqjs-post-content {
color: var(--text-color);
}
html #dsqjs .dsqjs-nav,html #dsqjs footer {
border-color: var(--card-bg-color);
}
html #dsqjs .dsqjs-order-label {
background-color: #3e4b5e;
}
html #dsqjs .dsqjs-load-more,html #dsqjs .dsqjs-load-more:hover,html #dsqjs .dsqjs-nav-tab,html #dsqjs .dsqjs-no-comment,html #dsqjs .dsqjs-post-content {
color: var(--text-color);
}
html #dsqjs .dsqjs-order-radio:checked+.dsqjs-order-label {
background-color: var(--content-bg-color);
}
html #dsqjs .dsqjs-order-label {
background-color: #3e4b5e;
}
html #dsqjs .dsqjs-tab-active>span:after {
background-color: #2e9fff!important;
}
html #dsqjs .dsqjs-order-radio:checked+.dsqjs-order-label {
background-color: var(--content-bg-color);
}
html #dsqjs .dsqjs-footer,html #dsqjs .dsqjs-meta {
color: var(--text-color);
}
html #dsqjs .dsqjs-tab-active>span:after {
background-color: #2e9fff!important;
}
html #dsqjs .dsqjs-post-body blockquote {
border-color: var(--content-bg-color);
html #dsqjs .dsqjs-footer,html #dsqjs .dsqjs-meta {
color: var(--text-color);
}
html #dsqjs .dsqjs-post-body blockquote {
border-color: var(--content-bg-color);
}
}
}
}

View File

@ -14,4 +14,12 @@ if (hexo-config('gitalk.enable')) {
}
}
}
if (hexo-config('lightdark.enable')) {
+light-dark-block() {
.gt-container .gt-header-textarea {
background-color: light-dark(#f6f6f6, var(--card-bg-color-dark)) !important;
}
}
}
}

View File

@ -1,7 +0,0 @@
if (hexo-config('gitter.enable')) {
.gitter-open-chat-button {
$alignment = sidebar-toggle-alignment(false);
{$alignment[0]}: auto !important;
{$alignment[1]}: 10px !important;
}
}

View File

@ -3,7 +3,6 @@
@import 'utterances';
@import 'search';
@import 'math';
@import 'gitter';
.use-motion .animated {
// Fix issue #48 #55

View File

@ -1,6 +1,7 @@
if (hexo-config('local_search.enable') or hexo-config('algolia_search.enable')) {
.search-active {
overflow: hidden;
margin-right: var(--dialog-scrollgutter, 0);
}
.search-pop-overlay {
@ -61,6 +62,11 @@ if (hexo-config('local_search.enable') or hexo-config('algolia_search.enable'))
background: $grey-dim;
}
}
if (hexo-config('lightdark.enable')) {
+light-dark-block() {
background: light-dark($gainsboro, $grey-dim);
}
}
border-top-left-radius: 5px;
border-top-right-radius: 5px;
display: flex;
@ -79,11 +85,14 @@ if (hexo-config('local_search.enable') or hexo-config('algolia_search.enable'))
}
.search-result-container {
display: flex;
flex-direction: column;
height: calc(100% - 55px);
overflow: auto;
padding: 5px 25px;
hr {
flex-shrink: 0;
margin: 5px 0 10px;
&:first-child {
@ -103,20 +112,30 @@ if (hexo-config('local_search.enable') or hexo-config('algolia_search.enable'))
p.search-result {
border-bottom: 1px dashed $grey-light;
margin: 0 0 10px;
padding: 5px 0;
}
.search-input-container {
flex-grow: 1;
padding: 2px;
}
.search-result-icon {
color: $grey-light;
margin: auto;
}
}
}
mark.search-keyword {
background: transparent;
border-bottom: 1px dashed $red;
color: $red;
font-weight: bold;
}
if (hexo-config('algolia_search.enable')) {
.search-input-container {
flex-grow: 1;
form {
padding: 2px;
}
}
.search-stats {
align-items: center;
display: flex;
@ -128,52 +147,13 @@ if (hexo-config('algolia_search.enable')) {
}
}
.algolia-pagination {
// Override default style of ul
margin: 40px 0;
opacity: 1;
padding: 0;
.pagination-item {
display: inline-block;
}
.current .page-number {
@extend $page-number-current;
cursor: default;
}
.disabled-item {
visibility: hidden;
}
}
}
if (hexo-config('local_search.enable')) {
.search-popup {
.search-input-container {
flex-grow: 1;
padding: 2px;
}
.no-result {
display: flex;
}
.search-result-list {
width: 100%;
}
.search-result-icon {
color: $grey-light;
margin: auto;
}
}
mark.search-keyword {
background: transparent;
border-bottom: 1px dashed $red;
color: $red;
font-weight: bold;
.pagination.algolia-pagination {
// Override the default style of pagination
// Put pagination at the bottom when there is sufficient height
margin-top: auto;
padding: 40px 0;
// Override motion
// https://github.com/theme-next/hexo-theme-next/issues/537
visibility: visible;
}
}

View File

@ -31,23 +31,12 @@
}
}
.fa, .fab, .far, .fas {
i[class^='fa'] {
margin-right: 8px;
}
.badge {
display: inline-block;
font-weight: bold;
line-height: 1;
margin-left: .35em;
margin-top: .35em;
text-align: center;
white-space: nowrap;
+mobile() {
float: right;
margin-left: 0;
}
badge();
}
}

View File

@ -1,10 +1,3 @@
/*
// < 767px
+mobile() {
}
*/
if (hexo-config('mobile_layout_economy')) {
+mobile-small() {
// For Pisces & Gemini schemes only wider width (remove main blocks in Gemini).
@ -53,7 +46,7 @@ if (hexo-config('mobile_layout_economy')) {
}
// Fix issue #641
.image-caption, img + figcaption, .fancybox + figcaption {
figure:not(.highlight) figcaption {
margin: -5px auto 15px !important;
}
@ -82,9 +75,3 @@ if (hexo-config('mobile_layout_economy')) {
}
}
}
/*
// < 413px
+mobile-smallest() {
}
*/

View File

@ -1,3 +1,101 @@
+sidebar() {
if ($sidebar-toggle-alignment == 'right') {
.sidebar {
right: 0 - $sidebar-width-expanded;
.sidebar-active & {
right: 0;
}
}
} else {
.sidebar {
left: 0 - $sidebar-width-expanded;
.sidebar-active & {
left: 0;
}
}
}
.sidebar {
background: $black-deep;
bottom: 0;
if (not hexo-config('back2top.sidebar')) {
box-shadow: inset 0 2px 6px black;
}
max-height: 100vh;
overflow-y: auto;
position: fixed;
top: 0;
transition: $transition-ease-out;
transition-property: left, right;
width: $sidebar-width-expanded;
z-index: $zindex-2;
a {
border-bottom-color: $black-light;
color: $grey-dark;
&:hover {
border-bottom-color: $gainsboro;
color: $gainsboro;
}
}
}
.links-of-author {
&:not(:first-child) {
margin-top: 15px;
}
a {
border-bottom-color: $black-light;
display: inline-block;
margin-bottom: 10px;
margin-right: 10px;
vertical-align: middle;
if (hexo-config('social_icons.transition')) {
transition: all $transition-ease;
}
&::before {
background: rgb(random-color(0, 255) - 50%, random-color(0, 255) - 50%, random-color(0, 255) - 50%);
display: inline-block;
margin-right: 3px;
transform: translateY(-2px);
round-icon(4px);
}
}
}
.links-of-blogroll-item {
padding: 0 5px;
}
.popular-posts .popular-posts-item .popular-posts-link:hover {
background: none;
}
.sidebar-dimmer {
background: black;
height: 100%;
left: 0;
opacity: 0;
position: fixed;
top: 0;
transition: visibility .4s, opacity .4s;
visibility: hidden;
width: 100%;
z-index: $zindex-1;
.sidebar-active & {
opacity: .7;
visibility: visible;
}
}
}
.sidebar-inner {
color: $grey-dark;
padding: $sidebar-padding 10px;
@ -5,27 +103,13 @@
flex-column();
}
.cc-license {
.cc-opacity {
border-bottom: 0;
opacity: .7;
&:hover {
opacity: .9;
}
}
img {
display: inline-block;
}
}
@import 'sidebar-author';
@import 'sidebar-author-links';
@import 'sidebar-button';
@import 'sidebar-blogroll';
@import 'sidebar-nav';
@import 'sidebar-toggle';
@import 'sidebar-nav';
@import 'sidebar-toc';
@import 'sidebar-author';
@import 'site-state';
@import 'sidebar-button';
@import 'sidebar-author-links';
@import 'sidebar-copyright';
@import 'sidebar-blogroll';
@import 'related-posts';

View File

@ -4,7 +4,7 @@
}
if (not hexo-config('social_icons.icons_only')) {
.fa, .fab, .far, .fas {
i[class^='fa'] {
margin-right: 2px;
}
}

View File

@ -9,6 +9,20 @@
.links-of-blogroll-list {
list-style: none;
margin: 0;
gap: 5px;
margin: 5px 0 0;
padding: 0;
flex-wrap();
if (hexo-config('links_settings.layout') == 'block') {
flex-direction: column;
}
}
.links-of-blogroll-item {
max-width: 100%;
a {
sidebar-inline-links-item();
}
}

View File

@ -8,7 +8,7 @@
border: 1px solid $orange;
border-radius: 4px;
.fa, .fab, .far, .fas {
i[class^='fa'] {
margin-right: 5px;
}
}

View File

@ -0,0 +1,14 @@
.cc-license {
.cc-opacity {
border-bottom: 0;
opacity: .7;
&:hover {
opacity: .9;
}
}
img {
display: inline-block;
}
}

View File

@ -12,10 +12,10 @@
@media (any-hover: hover) {
body:not(.sidebar-active) .sidebar-toggle:hover {
toggle-arrow(hexo-config('sidebar.position'));
toggle-arrow($sidebar-toggle-alignment);
}
}
.sidebar-active .sidebar-toggle {
toggle-close(hexo-config('sidebar.position'));
toggle-close($sidebar-toggle-alignment);
}

View File

@ -1,6 +1,6 @@
::selection {
background: $selection-bg;
color: $selection-color;
background: var(--selection-bg);
color: var(--selection-color);
}
html, body {
@ -27,7 +27,8 @@ body {
}
if (hexo-config('body_scrollbar.stable')) {
overflow-y: scroll;
// https://caniuse.com/mdn-css_properties_scrollbar-gutter
scrollbar-gutter: stable;
}
}
@ -44,10 +45,6 @@ for $headline in (1 .. 6) {
}
}
p {
margin: 0 0 20px;
}
a {
border-bottom: 1px solid $link-decoration-color;
color: var(--link-color);

View File

@ -1,11 +1,18 @@
.highlight:hover .copy-btn, pre:hover .copy-btn {
.highlight:hover .copy-btn, .code-container:hover .copy-btn {
opacity: 1;
}
figure.highlight {
.table-container {
position: relative;
}
.code-container {
position: relative;
}
.code-lang {
font-size: 40px;
line-height: 1;
opacity: $watermark-opacity;
pointer-events: none;
position: absolute;
right: 5px;
}
.copy-btn {

View File

@ -0,0 +1,29 @@
.expand-btn {
bottom: 0;
color: var(--highlight-foreground);
cursor: pointer;
display: none;
left: 0;
right: 0;
position: absolute;
text-align: center;
}
.fold-cover {
background-image: linear-gradient(to top, var(--highlight-background) 0, rgba(0, 0, 0, 0) 100%);
bottom: 0;
display: none;
height: 50px;
left: 0;
right: 0;
position: absolute;
}
.highlight-fold {
max-height: unit(hexo-config('codeblock.fold.height'), 'px');
overflow-y: hidden !important;
.expand-btn, .fold-cover {
display: block;
}
}

View File

@ -13,6 +13,7 @@ if (hexo-config('darkmode')) {
}
@require 'copy-code' if (hexo-config('codeblock.copy_button.enable'));
@require 'fold' if (hexo-config('codeblock.fold.enable'));
// Placeholder: $code-inline $code-block
$code-inline {
@ -74,6 +75,14 @@ figure.highlight {
overflow: auto;
position: relative;
color-scheme: light;
if (hexo-config('darkmode')) {
@media (prefers-color-scheme: dark) {
color-scheme: dark;
}
}
pre {
border: 0;
margin: 0;
@ -119,7 +128,7 @@ figure.highlight {
}
// See https://github.com/hexojs/hexo-util/pull/229
pre .caption, pre figcaption {
pre .caption {
@extend $figcaption;
margin-bottom: 10px;
}
@ -136,7 +145,6 @@ pre {
@extend $code-block;
overflow: auto;
padding: 10px;
position: relative;
code {
background: none;

View File

@ -3,14 +3,10 @@
// https://caniuse.com/mdn-css_properties_gap_grid_context
grid-gap: 1.5rem;
gap: 1.5rem;
grid-template-columns: 1fr 1fr;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
margin-bottom: 20px;
padding: 1rem;
+mobile() {
grid-template-columns: 1fr;
}
.link-grid-container {
border: solid $grey-lighter;
box-shadow: 1rem 1rem .5rem rgba(0, 0, 0, .5);

View File

@ -69,6 +69,11 @@ if (hexo-config('note.style') != 'disabled') {
background: mix($note-bg[$type], $body-bg-color-dark, 10%);
}
}
if (hexo-config('lightdark.enable')) {
+light-dark-block() {
background: light-dark($note-bg[$type], mix($note-bg[$type], $body-bg-color-dark, 10%));
}
}
}
if ($note-style == 'modern') {
@ -85,6 +90,42 @@ if (hexo-config('note.style') != 'disabled') {
color: $note-modern-hover[$type];
}
}
if (hexo-config('darkmode')) {
@media (prefers-color-scheme: dark) {
background: $note-modern-bg-dark[$type];
border-color: $note-modern-border-dark[$type];
color: $note-modern-text-dark[$type];
a:not(.btn) {
border-bottom-color: $note-modern-text-dark[$type];
color: $note-modern-text-dark[$type];
&:hover {
border-bottom-color: $note-modern-hover-dark[$type];
color: $note-modern-hover-dark[$type];
}
}
}
}
if (hexo-config('lightdark.enable')) {
+light-dark-block() {
background: light-dark($note-modern-bg[$type], $note-modern-bg-dark[$type]);
border-color: light-dark($note-modern-border[$type], $note-modern-border-dark[$type]);
color: light-dark($note-modern-text[$type], $note-modern-text-dark[$type]);
a:not(.btn) {
border-bottom-color: light-dark($note-modern-text[$type], $note-modern-text-dark[$type]);
color: light-dark($note-modern-text[$type], $note-modern-text-dark[$type]);
&:hover {
border-bottom-color: light-dark($note-modern-hover[$type], $note-modern-hover-dark[$type]);
color: light-dark($note-modern-hover[$type], $note-modern-hover-dark[$type]);
}
}
}
}
}
if ($note-style != 'modern') {

View File

@ -11,7 +11,6 @@
flex-wrap: wrap;
margin: 0;
padding: 0;
position: -webkit-sticky;
position: sticky;
top: 0;
// Fix issue #398
@ -53,7 +52,7 @@
padding: .25em .75em;
text-align: center;
i {
i[class^='fa'] {
width: (18em / 14);
}

View File

@ -8,7 +8,8 @@
left: 0;
position: relative;
top: 0;
transition: all .4s;
transition: .4s;
transition-property: left, opacity, top, transform, width;
width: 100%;
&:first-child {
@ -22,9 +23,9 @@
}
.toggle.toggle-arrow {
toggle-arrow(hexo-config('sidebar.position'));
toggle-arrow($sidebar-toggle-alignment);
}
.toggle.toggle-close {
toggle-close(hexo-config('sidebar.position'));
toggle-close($sidebar-toggle-alignment);
}

View File

@ -52,6 +52,27 @@ desktop-largest() {
}
}
light-dark-block() {
if (hexo-config('lightdark.check_supports')){
@supports (color: light-dark(red, red)) {
{block};
}
}
else {
{block};
}
}
sidebar() {
if (($scheme == 'Muse') or ($scheme == 'Mist')) {
{block}
} else {
+tablet-mobile() {
{block}
}
}
}
random-color($min, $max) {
return floor(math(0, 'random') * ($max - $min + 1) + $min);
}
@ -61,24 +82,17 @@ word-wrap() {
}
disable-user-select() {
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
}
sidebar-inline-links-item() {
margin: 5px 0 0;
a {
box-sizing: border-box;
display: inline-block;
max-width: 100%;
overflow: hidden;
padding: 0 5px;
text-overflow: ellipsis;
white-space: nowrap;
}
box-sizing: border-box;
display: inline-block;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
flex-wrap() {
@ -103,7 +117,7 @@ font-family-icons($icon = '') {
if ($icon) {
content: $icon;
}
font-family: 'Font Awesome 6 Free';
font-family: 'Font Awesome 7 Free';
font-weight: 900;
}
@ -124,16 +138,9 @@ main-container() {
}
}
sidebar-toggle-alignment($reverse) {
$condition = hexo-config('sidebar.position') == 'right';
if (($scheme == 'Muse') or ($scheme == 'Mist')) {
$condition = $condition == $reverse;
}
return $condition ? ('left' 'right') : ('right' 'left');
}
sidebar-toggle-position($reverse) {
$alignment = sidebar-toggle-alignment($reverse)[0];
$condition = ($sidebar-toggle-alignment == 'right') == $reverse;
$alignment = $condition ? 'left' : 'right';
{$alignment}: $b2t-position-right;
+tablet-mobile() {
{$alignment}: $b2t-position-right-mobile;
@ -272,3 +279,23 @@ gemini-block-not-first() {
margin-top: $content-mobile-padding;
}
}
menu-item-row() {
display: flex;
align-items: center;
.badge {
margin-left: auto;
}
}
badge() {
background: $badge-background;
border-radius: $badge-border-radius;
color: $badge-color;
font-weight: bold;
line-height: 1;
margin-left: .35em;
padding: $badge-padding;
text-shadow: $badge-text-shadow;
}

View File

@ -70,7 +70,7 @@
}
// ==================================================
// > 768px & < 991px
// >= 768px & <= 991px
// ==================================================
+tablet() {
// Posts in blocks.
@ -98,7 +98,7 @@
}
// ==================================================
// < 767px
// <= 767px
// ==================================================
+mobile() {
// Posts in blocks.

View File

@ -31,15 +31,8 @@
+mobile() {
text-align: left;
menu-item-row();
}
}
.badge {
background: white;
border-radius: 10px;
color: $black-light;
padding: 1px 4px;
text-shadow: 1px 1px 0 rgba(0, 0, 0, .1);
}
}
}

View File

@ -27,6 +27,7 @@
+mobile() {
padding: 5px 10px;
menu-item-row();
}
&:hover, &.menu-item-active {
@ -39,7 +40,7 @@
}
}
.fa, .fab, .far, .fas {
i[class^='fa'] {
+tablet-desktop() {
display: block;
line-height: 2;
@ -47,10 +48,4 @@
width: 100%;
}
}
.badge {
background: $gainsboro;
color: $black-light;
padding: 1px 4px;
}
}

View File

@ -1,134 +1,23 @@
if (hexo-config('sidebar.position') == 'right') {
.sidebar-active {
// Note: $sidebar-desktop + $content-desktop-large should be less than desktop-large threshold
// Otherwise a horizontal scrollbar will appear
+desktop-large() {
padding-right: $sidebar-desktop;
.footer-fixed {
right: $sidebar-desktop;
}
}
}
.sidebar {
right: 0 - $sidebar-desktop;
.sidebar-active & {
right: 0;
}
}
} else {
.sidebar-active {
+desktop-large() {
padding-left: $sidebar-desktop;
.footer-fixed {
left: $sidebar-desktop;
}
}
}
.sidebar {
left: 0 - $sidebar-desktop;
.sidebar-active & {
left: 0;
}
}
}
.sidebar {
background: $black-deep;
bottom: 0;
if (not hexo-config('back2top.sidebar')) {
box-shadow: inset 0 2px 6px black;
}
max-height: 100vh;
overflow-y: auto;
position: fixed;
top: 0;
transition: all $transition-ease-out;
width: $sidebar-desktop;
z-index: $zindex-2;
a {
border-bottom-color: $black-light;
color: $grey-dark;
&:hover {
border-bottom-color: $gainsboro;
color: $gainsboro;
}
}
}
.links-of-author {
&:not(:first-child) {
margin-top: 15px;
}
a {
border-bottom-color: $black-light;
display: inline-block;
margin-bottom: 10px;
margin-right: 10px;
vertical-align: middle;
if (hexo-config('social_icons.transition')) {
transition: all $transition-ease;
}
&::before {
background: rgb(random-color(0, 255) - 50%, random-color(0, 255) - 50%, random-color(0, 255) - 50%);
display: inline-block;
margin-right: 3px;
transform: translateY(-2px);
round-icon(4px);
}
}
}
.links-of-blogroll-item {
if (hexo-config('links_settings.layout') == 'inline') {
display: inline-block;
}
padding: 2px 10px;
a {
box-sizing: border-box;
display: inline-block;
max-width: 280px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.popular-posts .popular-posts-item .popular-posts-link:hover {
background: none;
}
.sidebar-dimmer {
background: black;
height: 100%;
left: 0;
opacity: 0;
position: fixed;
top: 0;
transition: visibility .4s, opacity .4s;
visibility: hidden;
width: 100%;
z-index: $zindex-1;
.sidebar-active & {
opacity: .7;
visibility: visible;
}
}
+desktop-large() {
.sidebar-dimmer {
display: none;
}
.sidebar-active {
// Note: $sidebar-width-expanded + $content-desktop-large should be less than desktop-large threshold
// Otherwise a horizontal scrollbar will appear
if ($sidebar-toggle-alignment == 'right') {
padding-right: $sidebar-width-expanded;
.footer-fixed {
right: $sidebar-width-expanded;
}
} else {
padding-left: $sidebar-width-expanded;
.footer-fixed {
left: $sidebar-width-expanded;
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More