mirror of
https://github.com/next-theme/hexo-theme-next.git
synced 2026-01-18 18:33:42 +00:00
Compare commits
232 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b90614fba4 | ||
|
|
6ee5480403 | ||
|
|
3ecb958423 | ||
|
|
82f780fc56 | ||
|
|
12acb69171 | ||
|
|
91d1aaca9b | ||
|
|
bf059cc25a | ||
|
|
db63a76823 | ||
|
|
e9dd671ed7 | ||
|
|
b6cbb64ab1 | ||
|
|
4d66cf46c9 | ||
|
|
726834cd48 | ||
|
|
fd72e89ba7 | ||
|
|
2a6af757f2 | ||
|
|
cfbc0d89a6 | ||
|
|
595e724a66 | ||
|
|
2c822eda0d | ||
|
|
73cd9254c6 | ||
|
|
0ba36eecff | ||
|
|
4717bccd08 | ||
|
|
53a9f1e398 | ||
|
|
47a185b655 | ||
|
|
bbf85e97a9 | ||
|
|
0a02719361 | ||
|
|
5098e8cdfa | ||
|
|
cb28415573 | ||
|
|
fcb9c5a143 | ||
|
|
05c8cdb660 | ||
|
|
e3de2542ee | ||
|
|
1415cdcc95 | ||
|
|
ae7bcea86d | ||
|
|
b27b8ebe44 | ||
|
|
9519ed1733 | ||
|
|
05fb97779b | ||
|
|
2695b0795d | ||
|
|
bcd927663b | ||
|
|
0259a4f44a | ||
|
|
eada2d5ae6 | ||
|
|
a684f4fb49 | ||
|
|
1bc8adab61 | ||
|
|
77bdcd4525 | ||
|
|
6f31287e3c | ||
|
|
56a3ce1b4d | ||
|
|
40e5141e69 | ||
|
|
509815e558 | ||
|
|
cbc75c50b6 | ||
|
|
6706f1b914 | ||
|
|
08acbfeffb | ||
|
|
d5859762ce | ||
|
|
9d797e82d5 | ||
|
|
7bb34c75c6 | ||
|
|
7bbb662e5e | ||
|
|
7022215775 | ||
|
|
822a72127f | ||
|
|
b84b0d6fd7 | ||
|
|
55c429d677 | ||
|
|
5b17f60f6f | ||
|
|
8b0b387ed0 | ||
|
|
9ef7fedc53 | ||
|
|
7a9865ebf8 | ||
|
|
3a64ebf409 | ||
|
|
882590b695 | ||
|
|
57c9451f35 | ||
|
|
aacd018d97 | ||
|
|
74d8466d0e | ||
|
|
8eb49e0908 | ||
|
|
0b227c0ca0 | ||
|
|
004176056b | ||
|
|
2c02824edb | ||
|
|
de0342a975 | ||
|
|
a6f3be5d82 | ||
|
|
934baf98e2 | ||
|
|
ae14cd177c | ||
|
|
13cc3171de | ||
|
|
d9c1707e1c | ||
|
|
931267bfb8 | ||
|
|
8ee9999355 | ||
|
|
71a915135e | ||
|
|
475de40906 | ||
|
|
a271b2ef96 | ||
|
|
455ca9513e | ||
|
|
76b52c89b4 | ||
|
|
8699177369 | ||
|
|
5f4210feab | ||
|
|
2791a406f1 | ||
|
|
bd3961d350 | ||
|
|
c8f828dd66 | ||
|
|
0a170b8cd6 | ||
|
|
69e0dbdeea | ||
|
|
fd3852602f | ||
|
|
cd80effd46 | ||
|
|
e64fd52cf5 | ||
|
|
db4947c114 | ||
|
|
479d2fe9c1 | ||
|
|
db06a99e7f | ||
|
|
01bc42c284 | ||
|
|
ac2d6f612e | ||
|
|
002f9bd77e | ||
|
|
d6ce4d6241 | ||
|
|
2a33936de7 | ||
|
|
ac79f53ec4 | ||
|
|
da4712e78d | ||
|
|
77adbf59d8 | ||
|
|
3fb181fd5d | ||
|
|
58004e8180 | ||
|
|
5639be9bff | ||
|
|
8bdea2bfc6 | ||
|
|
b0a428533a | ||
|
|
183e89ae1e | ||
|
|
1b6955735d | ||
|
|
bec4ea9032 | ||
|
|
a77778a676 | ||
|
|
6548d0b865 | ||
|
|
64772b0dec | ||
|
|
cf701a13f1 | ||
|
|
17b57da31a | ||
|
|
fec615cadf | ||
|
|
e272368dbd | ||
|
|
0f045d655a | ||
|
|
964233d4da | ||
|
|
4e6703bc1d | ||
|
|
3cddef0ab8 | ||
|
|
c8bf953545 | ||
|
|
acec1cf182 | ||
|
|
9e83b053d1 | ||
|
|
e464bd83f9 | ||
|
|
8fe7af50a0 | ||
|
|
590f364b47 | ||
|
|
98f70703ca | ||
|
|
bda0fcab4e | ||
|
|
bf93fa7aff | ||
|
|
431cb3d746 | ||
|
|
a9c940e7f3 | ||
|
|
1b8522031c | ||
|
|
1b2b4f21fd | ||
|
|
0708dc7e18 | ||
|
|
ddecbe3628 | ||
|
|
783b6ffe8c | ||
|
|
5c024800e6 | ||
|
|
da8db69422 | ||
|
|
17259c0018 | ||
|
|
07acb27cc9 | ||
|
|
6742735db4 | ||
|
|
524c3693f2 | ||
|
|
659e82b452 | ||
|
|
1ca10776ff | ||
|
|
263841bd7a | ||
|
|
ba7ec07f51 | ||
|
|
77b76207eb | ||
|
|
4d69273d90 | ||
|
|
5f522a1432 | ||
|
|
1547d82488 | ||
|
|
e67824bb83 | ||
|
|
fc3f001087 | ||
|
|
f7014d3f16 | ||
|
|
372940305c | ||
|
|
1b2b0040b4 | ||
|
|
cd1a082795 | ||
|
|
26d682cfa2 | ||
|
|
3d34a1163f | ||
|
|
6bf97f6e49 | ||
|
|
2195b01d8c | ||
|
|
ca0e6f0a0e | ||
|
|
37d74f3b85 | ||
|
|
94dc7f105b | ||
|
|
4cba2a3c44 | ||
|
|
2507438cb5 | ||
|
|
fb1bfdd6f8 | ||
|
|
3611dcc27d | ||
|
|
c8ceed02c0 | ||
|
|
1e746ca96b | ||
|
|
5058ea6ef0 | ||
|
|
3f4e57d31d | ||
|
|
eaa762de7e | ||
|
|
35b9f78a8c | ||
|
|
7d56937a98 | ||
|
|
a17cb01a86 | ||
|
|
269eae34c4 | ||
|
|
c8c2fb23e5 | ||
|
|
b5c0359a32 | ||
|
|
c32066ae1a | ||
|
|
c0f48c429d | ||
|
|
3128709b3c | ||
|
|
821683084d | ||
|
|
c43f601806 | ||
|
|
a78121e96a | ||
|
|
c5c51b8fb3 | ||
|
|
9c0ccebc38 | ||
|
|
2a8b79bc5d | ||
|
|
46dbcd36d5 | ||
|
|
d254d1aaf4 | ||
|
|
4f5e6001e4 | ||
|
|
9bd24f7ba0 | ||
|
|
dedc8275e7 | ||
|
|
71e3e14930 | ||
|
|
08ddd84b2a | ||
|
|
63901bd80e | ||
|
|
c2b5ba948b | ||
|
|
3c286962c2 | ||
|
|
44b30d0bc5 | ||
|
|
4591886f6e | ||
|
|
d09c7f6193 | ||
|
|
fe8a01ff9b | ||
|
|
3fe071e6ea | ||
|
|
408c1fa8d5 | ||
|
|
e5026ed10d | ||
|
|
d2410db8a2 | ||
|
|
0e7497b4fd | ||
|
|
aef1853f2a | ||
|
|
788659333e | ||
|
|
11e534bf28 | ||
|
|
a24450d9cf | ||
|
|
dc8e5e17fa | ||
|
|
10010c13ea | ||
|
|
8b8632f137 | ||
|
|
8fd8f9247c | ||
|
|
c596155ef9 | ||
|
|
0624149b05 | ||
|
|
223ea199f3 | ||
|
|
d3b76a8599 | ||
|
|
b85201b9b8 | ||
|
|
d1b22042e5 | ||
|
|
b727ea4a19 | ||
|
|
6df115eddf | ||
|
|
84cdf70750 | ||
|
|
cb394aa2b2 | ||
|
|
ef62f9bc65 | ||
|
|
eedd189307 | ||
|
|
2e1de3efa5 | ||
|
|
72302c2e4d | ||
|
|
824885ed0a | ||
|
|
b9ba532df8 |
@ -1,4 +0,0 @@
|
||||
{
|
||||
"extends": "@next-theme",
|
||||
"root": true
|
||||
}
|
||||
2
.github/CODE_OF_CONDUCT.md
vendored
2
.github/CODE_OF_CONDUCT.md
vendored
@ -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
|
||||
|
||||
|
||||
21
.github/PULL_REQUEST_TEMPLATE.md
vendored
21
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -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:
|
||||
|
||||
8
.github/label-commenter-config.yml
vendored
8
.github/label-commenter-config.yml
vendored
@ -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
32
.github/labeler.yml
vendored
@ -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/**/*'
|
||||
|
||||
8
.github/workflows/codeql.yml
vendored
8
.github/workflows/codeql.yml
vendored
@ -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 }}"
|
||||
|
||||
5
.github/workflows/label-commenter.yml
vendored
5
.github/workflows/label-commenter.yml
vendored
@ -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
|
||||
|
||||
5
.github/workflows/labeler.yml
vendored
5
.github/workflows/labeler.yml
vendored
@ -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 }}"
|
||||
|
||||
6
.github/workflows/linter.yml
vendored
6
.github/workflows/linter.yml
vendored
@ -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
|
||||
|
||||
2
.github/workflows/lock.yml
vendored
2
.github/workflows/lock.yml
vendored
@ -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
26
.github/workflows/npm-publish.yml
vendored
Normal 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
|
||||
19
.github/workflows/pr-reminder.yml
vendored
19
.github/workflows/pr-reminder.yml
vendored
@ -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
|
||||
12
.github/workflows/tester.yml
vendored
12
.github/workflows/tester.yml
vendored
@ -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
1
.gitignore
vendored
@ -8,3 +8,4 @@ package-lock.json
|
||||
node_modules/
|
||||
.nyc_output/
|
||||
coverage/
|
||||
.env
|
||||
|
||||
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
65
README.md
65
README.md
@ -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.
|
||||
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://hexo.io)
|
||||
[](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
|
||||
[](https://coveralls.io/github/next-theme/hexo-theme-next)
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://hexo.io)
|
||||
[](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
|
||||
[](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
|
||||
|
||||
[](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
|
||||
|
||||
92
_config.yml
92
_config.yml
@ -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
|
||||
|
||||
102
_vendors.yml
102
_vendors.yml
@ -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=
|
||||
|
||||
@ -17,12 +17,13 @@
|
||||
|
||||
> «NexT» — элегантная высококачественная тема под [Hexo](https://hexo.io). Сделана с нуля, с любовью.
|
||||
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://hexo.io)
|
||||
[](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
|
||||
[](https://coveralls.io/github/next-theme/hexo-theme-next)
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://hexo.io)
|
||||
[](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
|
||||
[](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
|
||||
|
||||
@ -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)
|
||||
|
||||
## 来源
|
||||
|
||||
|
||||
@ -15,14 +15,15 @@
|
||||
|
||||
# NexT
|
||||
|
||||
> «NexT» 是一款风格优雅的高质量 [Hexo](https://hexo.io) 主题,自点点滴滴中用爱雕琢而成。
|
||||
> NexT 是一款风格优雅的高质量 [Hexo](https://hexo.io) 主题,自点点滴滴中用爱雕琢而成。
|
||||
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://hexo.io)
|
||||
[](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
|
||||
[](https://coveralls.io/github/next-theme/hexo-theme-next)
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://www.npmjs.com/package/hexo-theme-next)
|
||||
[](https://hexo.io)
|
||||
[](https://github.com/next-theme/hexo-theme-next/blob/master/LICENSE.md)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ALinter)
|
||||
[](https://github.com/next-theme/hexo-theme-next/actions?query=workflow%3ATester)
|
||||
[](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
3
eslint.config.js
Normal file
@ -0,0 +1,3 @@
|
||||
const config = require("@next-theme/eslint-config");
|
||||
|
||||
module.exports = config;
|
||||
@ -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
103
languages/eo.yml
Normal 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.
|
||||
@ -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.
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -66,7 +66,7 @@ state:
|
||||
search:
|
||||
placeholder: 搜索...
|
||||
empty: "我們無法找到任何有關 %s 的搜索結果"
|
||||
hits_time: "%s 結果在 %s 毫秒找到"
|
||||
hits_time: "找到 %s 個搜索結果(用時 %s 毫秒)"
|
||||
hits: "找到 %s 個結果"
|
||||
cheers:
|
||||
um: 嗯..
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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 %}
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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">
|
||||
|
||||
@ -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 %}
|
||||
|
||||
@ -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') %}
|
||||
© {% 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') %}
|
||||
© {% 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">
|
||||
|
||||
@ -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()) }}
|
||||
|
||||
@ -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">
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
@ -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 %}
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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') }}
|
||||
|
||||
@ -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() %}
|
||||
|
||||
@ -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;
|
||||
|
||||
3
layout/_third-party/chat/gitter.njk
vendored
3
layout/_third-party/chat/gitter.njk
vendored
@ -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>
|
||||
2
layout/_third-party/index.njk
vendored
2
layout/_third-party/index.njk
vendored
@ -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' -%}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
{{ next_vendors('algolia_search') }}
|
||||
{{ next_vendors('instant_search') }}
|
||||
|
||||
{{- next_js('third-party/search/algolia-search.js') }}
|
||||
|
||||
@ -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 %}
|
||||
|
||||
@ -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 ###}
|
||||
{#################}
|
||||
|
||||
27
package.json
27
package.json
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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')
|
||||
|
||||
@ -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}`;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 %}
|
||||
|
||||
@ -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');
|
||||
}
|
||||
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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">` : '';
|
||||
};
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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);
|
||||
};
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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' });
|
||||
|
||||
|
||||
@ -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>`;
|
||||
};
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -18,15 +18,8 @@
|
||||
}
|
||||
|
||||
.category-list-count {
|
||||
color: $grey;
|
||||
|
||||
&::before {
|
||||
content: ' (';
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: ') ';
|
||||
}
|
||||
font-size: $font-size-smallest;
|
||||
badge();
|
||||
}
|
||||
|
||||
.category-list-child {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
border: 2px solid $sidebar-highlight;
|
||||
border-radius: 2px;
|
||||
outline: 0;
|
||||
transition: all $transition-ease;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,6 @@
|
||||
@import 'utterances';
|
||||
@import 'search';
|
||||
@import 'math';
|
||||
@import 'gitter';
|
||||
|
||||
.use-motion .animated {
|
||||
// Fix issue #48 #55
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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() {
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
}
|
||||
|
||||
if (not hexo-config('social_icons.icons_only')) {
|
||||
.fa, .fab, .far, .fas {
|
||||
i[class^='fa'] {
|
||||
margin-right: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
border: 1px solid $orange;
|
||||
border-radius: 4px;
|
||||
|
||||
.fa, .fab, .far, .fas {
|
||||
i[class^='fa'] {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
14
source/css/_common/outline/sidebar/sidebar-copyright.styl
Normal file
14
source/css/_common/outline/sidebar/sidebar-copyright.styl
Normal file
@ -0,0 +1,14 @@
|
||||
.cc-license {
|
||||
.cc-opacity {
|
||||
border-bottom: 0;
|
||||
opacity: .7;
|
||||
|
||||
&:hover {
|
||||
opacity: .9;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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 {
|
||||
|
||||
29
source/css/_common/scaffolding/highlight/fold.styl
Normal file
29
source/css/_common/scaffolding/highlight/fold.styl
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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') {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -70,7 +70,7 @@
|
||||
}
|
||||
|
||||
// ==================================================
|
||||
// > 768px & < 991px
|
||||
// >= 768px & <= 991px
|
||||
// ==================================================
|
||||
+tablet() {
|
||||
// Posts in blocks.
|
||||
@ -98,7 +98,7 @@
|
||||
}
|
||||
|
||||
// ==================================================
|
||||
// < 767px
|
||||
// <= 767px
|
||||
// ==================================================
|
||||
+mobile() {
|
||||
// Posts in blocks.
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
Loading…
x
Reference in New Issue
Block a user