Compare commits
208 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
5fc9da7249 | ||
|
b7c3ce4f21 | ||
|
7af6fda960 | ||
|
501ce9a842 | ||
|
8de56d6a6e | ||
|
acb071831b | ||
|
cd0825d52a | ||
|
5fec2eb442 | ||
|
8e8f682098 | ||
|
0753bb9bf3 | ||
|
8066ea8b5b | ||
|
85fe5c123e | ||
|
f6be671638 | ||
|
240304719d | ||
|
bb87ce34fc | ||
|
777fc5af56 | ||
|
c585654582 | ||
|
948cb65243 | ||
|
106f2494eb | ||
|
4c72c3521c | ||
|
2dd7a5408b | ||
|
7b58e4541a | ||
|
16ce821f1f | ||
|
8aaa2094c4 | ||
|
567584695c | ||
|
cd6c3c6e28 | ||
|
def8609767 | ||
|
af0bc34076 | ||
|
1c3644ef7b | ||
|
b1def36445 | ||
|
47d33f0b13 | ||
|
e868170925 | ||
|
2e497bf1b5 | ||
|
03607113d3 | ||
|
a31a403ec9 | ||
|
7d0130035e | ||
|
e95daf0fe7 | ||
|
a350cb7098 | ||
|
0415b2999a | ||
|
e24c1c8fde | ||
|
4460828c6a | ||
|
3932a3d8ef | ||
|
1c0b980462 | ||
|
c63f8450e3 | ||
|
7548895d03 | ||
|
b1fc783466 | ||
|
ef684cecba | ||
|
4027d32ce0 | ||
|
736a5d3876 | ||
|
b9284527ec | ||
|
c48d95fcd9 | ||
|
ee3908d8aa | ||
|
14e0f01357 | ||
|
e95cdd5cd8 | ||
|
3bb55b8fcb | ||
|
c18a2e681e | ||
|
7642eba4d6 | ||
|
4d3776ea3c | ||
|
9bb629ee79 | ||
|
83b79e97c1 | ||
|
b04e2838a0 | ||
|
e3724557a3 | ||
|
c775133f5b | ||
|
48a39f4322 | ||
|
b1f929876c | ||
|
8b0ab2c38d | ||
|
505f34cd3f | ||
|
7d1f337d59 | ||
|
7f495adc00 | ||
|
abc77cc06e | ||
|
944ae944e1 | ||
|
a19fce2fb0 | ||
|
820e492f53 | ||
|
d5a8f7b105 | ||
|
a1d6ea6caa | ||
|
c383089978 | ||
|
d223d30789 | ||
|
0d498784fe | ||
|
80091fa674 | ||
|
1b1cacee23 | ||
|
ca3fe89197 | ||
|
8217da81ab | ||
|
40071e8acc | ||
|
bb10282d89 | ||
|
1384ea58a7 | ||
|
469943c62b | ||
|
f0a002fd23 | ||
|
3e815c0438 | ||
|
f05527e92d | ||
|
b96c126078 | ||
|
141208f47e | ||
|
eb98909f8b | ||
|
69406768b1 | ||
|
45456e4b37 | ||
|
2b0ebe976b | ||
|
0b41e237e0 | ||
|
1f5956994a | ||
|
2f5c468007 | ||
|
7cb66de22e | ||
|
7a0d513a5b | ||
|
807060dc82 | ||
|
c8e83e34cf | ||
|
dabe749770 | ||
|
9da6ecc35d | ||
|
3ff6f74bff | ||
|
6a925ba53c | ||
|
5c501a9db7 | ||
|
48d03030a8 | ||
|
15ffef6fe6 | ||
|
16a56f6528 | ||
|
5119a4c925 | ||
|
1fe6bd6ca2 | ||
|
319522746e | ||
|
21f0d86f63 | ||
|
60c2930d39 | ||
|
fb2dbe73a2 | ||
|
05af377fa9 | ||
|
1609b61336 | ||
|
da27325950 | ||
|
42bd579f19 | ||
|
ee1211d86b | ||
|
f0adf9a62e | ||
|
c0ef5fc0ad | ||
|
86cd94fc80 | ||
|
b67d410b86 | ||
|
4711891b4a | ||
|
9317a2d5d4 | ||
|
de1e586b8c | ||
|
4f386df7ee | ||
|
0c7e535867 | ||
|
7bf0adfd98 | ||
|
a0e92eb20c | ||
|
46fc5df869 | ||
|
29561f6687 | ||
|
7034f76024 | ||
|
f21fbe4e2b | ||
|
2e211f7609 | ||
|
e4218c40fa | ||
|
c0d20c3732 | ||
|
586f38c9ed | ||
|
84f7538acd | ||
|
424ace4186 | ||
|
92b24d4a2b | ||
|
40c23e99d5 | ||
|
8cc982d5f5 | ||
|
43738d5335 | ||
|
c5c22237f0 | ||
|
9974ff6a56 | ||
|
4c16804821 | ||
|
cdf2bceb40 | ||
|
85fbcf5702 | ||
|
9ee2605a49 | ||
|
b07d7c7ec7 | ||
|
6557b6a34c | ||
|
6fbda2ece3 | ||
|
79b014ab4a | ||
|
b4f1246c53 | ||
|
2a080f157c | ||
|
7ba48368df | ||
|
16fe9782f7 | ||
|
785a9f33e1 | ||
|
55d5c26161 | ||
|
c1cedb6104 | ||
|
085292ac1d | ||
|
97e79abc8d | ||
|
ebe1e25719 | ||
|
1003d95815 | ||
|
c3588e1752 | ||
|
66a6390998 | ||
|
a9473d4d22 | ||
|
68b1022367 | ||
|
8eadb41a90 | ||
|
6b3edff55f | ||
|
185374380f | ||
|
6afa47978e | ||
|
718cf389ee | ||
|
eaf683440a | ||
|
bc0119d821 | ||
|
196253f025 | ||
|
836246b4e0 | ||
|
28d8716cf4 | ||
|
1f6b859952 | ||
|
a32496edbe | ||
|
4fcc3ff32b | ||
|
641abe0ae9 | ||
|
00b8d2c47a | ||
|
608766a430 | ||
|
71bc221675 | ||
|
200450fadd | ||
|
3fedba6204 | ||
|
f98e95ccf8 | ||
|
380a5cc4ab | ||
|
9fac2a8e2c | ||
|
d1534ef60e | ||
|
ff240c9011 | ||
|
c22c19547d | ||
|
eb1ecd74fa | ||
|
14f1f432c9 | ||
|
ad93a588f7 | ||
|
83243b93f4 | ||
|
8070697b20 | ||
|
ed5e4803d1 | ||
|
4c7e107c08 | ||
|
2184d5f5ee | ||
|
da20d7b3c9 | ||
|
7fcdbf8722 | ||
|
71e1c2149d | ||
|
e528545051 |
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
*.html linguist-language=javascript
|
||||||
|
*.stylus linguist-language=javascript
|
||||||
|
*.ejs linguist-language=javascript
|
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl
|
|||||||
liberapay: # Replace with a single Liberapay username
|
liberapay: # Replace with a single Liberapay username
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
otechie: # Replace with a single Otechie username
|
otechie: # Replace with a single Otechie username
|
||||||
custom: https://pic.downk.cc/item/5e1c70bc2fb38b8c3c5b0a2f.png
|
custom: http://afdian.net/@shenyu
|
||||||
|
70
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
70
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
name: Bug Report
|
||||||
|
about: Something isn't working as expected
|
||||||
|
title: ""
|
||||||
|
labels: Bug
|
||||||
|
assignees: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
Please follow this Issue template to provide relevant information, such as source code repositories, blog links, and screenshots, which will help us investigate.
|
||||||
|
请按照此 Issue 模版提供相关信息,例如源码仓库、博客链接和屏幕截图,这将有助于我们进行调查。
|
||||||
|
|
||||||
|
## Issue Checklist <!-- 我确认我已经查看了 -->
|
||||||
|
|
||||||
|
<!-- Change [ ] to [x] to select (将 [ ] 换成 [x] 来选择) -->
|
||||||
|
|
||||||
|
- [ ] I am using [the latest](https://github.com/Shen-Yu/hexo-theme-ayer) version of hexo-theme-ayer.
|
||||||
|
- [ ] I have reviewed the latest Roadmap on GitHub and searched for current [Ayer Issues](https://github.com/Shen-Yu/hexo-theme-ayer/issues), which does not help me.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Expected behavior <!-- 预期行为 -->
|
||||||
|
|
||||||
|
## Actual behavior <!-- 实际行为 -->
|
||||||
|
|
||||||
|
<!-- Please provide at least one of the following information (请至少提供以下的一项信息) -->
|
||||||
|
|
||||||
|
- Links to demo site with this issue: N/A
|
||||||
|
- Links to repository or source code of the blog: N/A
|
||||||
|
|
||||||
|
## Steps to reproduce the behavior <!-- 重现步骤 -->
|
||||||
|
|
||||||
|
1. N/A
|
||||||
|
2. N/A
|
||||||
|
3. N/A
|
||||||
|
|
||||||
|
## Environment Information
|
||||||
|
|
||||||
|
### Node.js and NPM Information
|
||||||
|
|
||||||
|
<!-- Paste output from `node -v && npm -v` (粘贴 `node -v && npm -v` 输出的信息) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Package dependencies Information
|
||||||
|
|
||||||
|
<!-- Paste output from `npm ls --depth 0` (粘贴 `npm ls --depth 0` 输出的信息) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### HTML Configuration
|
||||||
|
|
||||||
|
<!-- Paste configuration from HTML (粘贴 HTML 配置 中的内容) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### MiniValine Configuration
|
||||||
|
|
||||||
|
<!-- Paste configuration from MiniValine (粘贴 MiniValine 配置 中的内容) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Other Information <!-- (Like Browser, System, Screenshots) -->
|
36
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
36
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
name: Feature Request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ""
|
||||||
|
labels: Feature Request
|
||||||
|
assignees: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
Please follow this Issue template to provide relevant information, such as source code repositories, blog links, and screenshots, which will help us investigate.
|
||||||
|
请按照此 Issue 模版提供相关信息,例如源码仓库、博客链接和屏幕截图,这将有助于我们进行调查。
|
||||||
|
|
||||||
|
## Issue Checklist <!-- 我确认我已经查看了 -->
|
||||||
|
|
||||||
|
<!-- Change [ ] to [x] to select (将 [ ] 换成 [x] 来选择) -->
|
||||||
|
|
||||||
|
- [ ] I am using [the latest](https://github.com/Shen-Yu/hexo-theme-ayer) version of hexo-theme-ayer.
|
||||||
|
- [ ] I have reviewed the latest Roadmap on GitHub and searched for current [Ayer Issues](https://github.com/Shen-Yu/hexo-theme-ayer/issues), which does not help me.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Expected behavior <!-- 预期行为 -->
|
||||||
|
|
||||||
|
## Actual behavior <!-- 实际行为 -->
|
||||||
|
|
||||||
|
<!-- Please provide at least one of the following information (请至少提供以下的一项信息) -->
|
||||||
|
|
||||||
|
- Links to demo site with this feature: N/A
|
||||||
|
- Links to repository or source code of the blog: N/A
|
||||||
|
|
||||||
|
## Steps to reproduce the behavior <!-- 重现步骤 -->
|
||||||
|
|
||||||
|
1. N/A
|
||||||
|
2. N/A
|
||||||
|
3. N/A
|
||||||
|
|
||||||
|
## Other Information <!-- Like Browser, System, Screenshots -->
|
21
.github/ISSUE_TEMPLATE/other.md
vendored
Normal file
21
.github/ISSUE_TEMPLATE/other.md
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
name: Other
|
||||||
|
about: Not a question, feature request or bug report
|
||||||
|
title: ""
|
||||||
|
labels: ""
|
||||||
|
assignees: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
Please follow this Issue template to provide relevant information, such as source code repositories, blog links, and screenshots, which will help us investigate.
|
||||||
|
请按照此 Issue 模版提供相关信息,例如源码仓库、博客链接和屏幕截图,这将有助于我们进行调查。
|
||||||
|
|
||||||
|
## Issue Checklist <!-- 我确认我已经查看了 -->
|
||||||
|
|
||||||
|
<!-- Change [ ] to [x] to select (将 [ ] 换成 [x] 来选择) -->
|
||||||
|
|
||||||
|
- [ ] I am using [the latest](https://github.com/Shen-Yu/hexo-theme-ayer) version of hexo-theme-ayer.
|
||||||
|
- [ ] I have reviewed the latest Roadmap on GitHub and searched for current [Ayer Issues](https://github.com/Shen-Yu/hexo-theme-ayer/issues), which does not help me.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Other Information <!-- Like Browser, System, Screenshots -->
|
70
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
70
.github/ISSUE_TEMPLATE/question.md
vendored
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
name: Question
|
||||||
|
about: I have a question for Ayer
|
||||||
|
title: ""
|
||||||
|
labels: Question
|
||||||
|
assignees: ""
|
||||||
|
---
|
||||||
|
|
||||||
|
Please follow this Issue template to provide relevant information, such as source code repositories, blog links, and screenshots, which will help us investigate.
|
||||||
|
请按照此 Issue 模版提供相关信息,例如源码仓库、博客链接和屏幕截图,这将有助于我们进行调查。
|
||||||
|
|
||||||
|
## Issue Checklist <!-- 我确认我已经查看了 -->
|
||||||
|
|
||||||
|
<!-- Change [ ] to [x] to select (将 [ ] 换成 [x] 来选择) -->
|
||||||
|
|
||||||
|
- [ ] I am using [the latest](https://github.com/Shen-Yu/hexo-theme-ayer) version of hexo-theme-ayer.
|
||||||
|
- [ ] I have reviewed the latest Roadmap on GitHub and searched for current [Ayer Issues](https://github.com/Shen-Yu/hexo-theme-ayer/issues), which does not help me.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Expected behavior <!-- 预期行为 -->
|
||||||
|
|
||||||
|
## Actual behavior <!-- 实际行为 -->
|
||||||
|
|
||||||
|
<!-- Please provide at least one of the following information (请至少提供以下的一项信息) -->
|
||||||
|
|
||||||
|
- Links to demo site with this issue: N/A
|
||||||
|
- Links to repository or source code of the blog: N/A
|
||||||
|
|
||||||
|
## Steps to reproduce the behavior <!-- 重现步骤 -->
|
||||||
|
|
||||||
|
1. N/A
|
||||||
|
2. N/A
|
||||||
|
3. N/A
|
||||||
|
|
||||||
|
## Environment Information
|
||||||
|
|
||||||
|
### Node.js and NPM Information
|
||||||
|
|
||||||
|
<!-- Paste output from `node -v && npm -v` (粘贴 `node -v && npm -v` 输出的信息) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Package dependencies Information
|
||||||
|
|
||||||
|
<!-- Paste output from `npm ls --depth 0` (粘贴 `npm ls --depth 0` 输出的信息) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### HTML Configuration
|
||||||
|
|
||||||
|
<!-- Paste configuration from HTML (粘贴 HTML 配置 中的内容) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ayer Configuration
|
||||||
|
|
||||||
|
<!-- Paste configuration from Ayer (粘贴 Ayer 配置 中的内容) -->
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Other Information <!-- (Like Browser, System, Screenshots) -->
|
12
.github/config.yml
vendored
Normal file
12
.github/config.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# =============================================================================================== #
|
||||||
|
# Configuration for welcome - https://github.com/behaviorbot/welcome
|
||||||
|
|
||||||
|
# Comment to be posted to on first time issues
|
||||||
|
newIssueWelcomeComment: >
|
||||||
|
Thanks for opening this issue, maintainers will get back to you as soon as possible!
|
||||||
|
# Comment to be posted to on PRs from first time contributors in your repository
|
||||||
|
newPRWelcomeComment: >
|
||||||
|
Thanks so much for opening your first PR here!
|
||||||
|
# Comment to be posted to on pull requests merged by a first time user
|
||||||
|
firstPRMergeComment: >
|
||||||
|
Congrats on merging your first pull request here! :tada: How awesome!
|
21
.github/workflows/npmpublish.yml
vendored
Normal file
21
.github/workflows/npmpublish.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
|
||||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
|
||||||
|
|
||||||
|
name: Node.js Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [created]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish-npm:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
registry-url: https://registry.npmjs.org/
|
||||||
|
- run: npm publish
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
|
5
.gitignore
vendored
5
.gitignore
vendored
@@ -5,6 +5,5 @@
|
|||||||
yarn.lock
|
yarn.lock
|
||||||
package-lock.json
|
package-lock.json
|
||||||
node_modules/
|
node_modules/
|
||||||
|
.cache
|
||||||
# Setting
|
.history
|
||||||
_config.yml
|
|
||||||
|
3
.npmignore
Normal file
3
.npmignore
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.cache/
|
||||||
|
.history/
|
||||||
|
.github/
|
5
.postcssrc
Normal file
5
.postcssrc
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"plugins": {
|
||||||
|
"autoprefixer": true
|
||||||
|
}
|
||||||
|
}
|
@@ -5,4 +5,6 @@ node_js: node
|
|||||||
cache:
|
cache:
|
||||||
npm: true
|
npm: true
|
||||||
|
|
||||||
install: npm install
|
install: npm install
|
||||||
|
|
||||||
|
script: npm run test
|
28
LICENSE
28
LICENSE
@@ -1,6 +1,8 @@
|
|||||||
MIT License
|
The Star And Thank Author License (SATA)
|
||||||
|
|
||||||
Copyright (c) 2019 沈宇
|
Copyright © 2019 Shen-Yu(shenyu@hotmail.com)
|
||||||
|
|
||||||
|
Project Url: https://github.com/Shen-Yu/hexo-theme-ayer
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -9,13 +11,27 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|||||||
copies of the Software, and to permit persons to whom the Software is
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
furnished to do so, subject to the following conditions:
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
The above copyright notice and this permission notice shall be included in
|
||||||
copies or substantial portions of the Software.
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
And wait, the most important, you shall star/+1/like the project(s) in project url
|
||||||
|
section above first, and then thank the author(s) in Copyright section.
|
||||||
|
|
||||||
|
Here are some suggested ways:
|
||||||
|
|
||||||
|
- Email the authors a thank-you letter, and make friends with him/her/them.
|
||||||
|
- Report bugs or issues.
|
||||||
|
- Tell friends what a wonderful project this is.
|
||||||
|
- And, sure, you can just express thanks in your mind without telling the world.
|
||||||
|
|
||||||
|
Contributors of this project by forking have the option to add his/her name and
|
||||||
|
forked project url at copyright and project url sections, but shall not delete
|
||||||
|
or modify anything else in these two sections.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
SOFTWARE.
|
THE SOFTWARE.
|
278
README.md
278
README.md
@@ -9,25 +9,34 @@
|
|||||||
<a href="http://standardjs.com" target="_blank" rel="noopener noreferrer">
|
<a href="http://standardjs.com" target="_blank" rel="noopener noreferrer">
|
||||||
<img alt="js-standard-style" src="https://img.shields.io/badge/code%20style-standard-brightgreen.svg">
|
<img alt="js-standard-style" src="https://img.shields.io/badge/code%20style-standard-brightgreen.svg">
|
||||||
</a>
|
</a>
|
||||||
|
<br>
|
||||||
|
<a href="https://www.npmjs.com/package/hexo-theme-ayer" target="_blank" rel="noopener noreferrer">
|
||||||
|
<img alt="npm" src="https://img.shields.io/npm/dt/hexo-theme-ayer">
|
||||||
|
</a>
|
||||||
|
<a href="https://shen-yu.gitee.io" target="_blank" rel="noopener noreferrer">
|
||||||
|
<img alt="platform" src="https://img.shields.io/badge/platform-PC--ios--android-ff69b4.svg">
|
||||||
|
</a>
|
||||||
<a href="https://gitter.im/hexo-theme-ayer/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge" target="_blank" rel="noopener noreferrer">
|
<a href="https://gitter.im/hexo-theme-ayer/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge" target="_blank" rel="noopener noreferrer">
|
||||||
<img alt="Gitter" src="https://badges.gitter.im/Join%20Chat.svg">
|
<img alt="Gitter" src="https://badges.gitter.im/Join%20Chat.svg">
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<a href="https://github.com/Shen-Yu/hexo-theme-ayer/releases" target="_blank" rel="noopener noreferrer">
|
<a href="https://www.npmjs.com/package/hexo-theme-ayer" target="_blank" rel="noopener noreferrer">
|
||||||
<img alt="GitHub release" src="https://img.shields.io/badge/release-v1.5-blue.svg">
|
<img alt="npm version" src="https://img.shields.io/npm/v/hexo-theme-ayer">
|
||||||
|
</a>
|
||||||
|
<img alt="language" src="https://img.shields.io/badge/language-ejs--stylus-green.svg">
|
||||||
|
<a href="https://github.com/Shen-Yu/hexo-theme-ayer/releases" target="_blank" rel="noopener noreferrer">
|
||||||
|
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/Shen-Yu/hexo-theme-ayer?color=b37feb">
|
||||||
</a>
|
</a>
|
||||||
<img alt="language" src="https://img.shields.io/badge/language-ejs--stylus-orange.svg">
|
<a href="https://github.com/Shen-Yu/hexo-theme-ayer/blob/master/LICENSE" target="_blank" rel="noopener noreferrer"><img alt="LICENSE" src="https://img.shields.io/badge/LICENSE-SATA-yellow">
|
||||||
<a href="https://hexo.io/zh-cn/" target="_blank" rel="noopener noreferrer">
|
|
||||||
<img alt="hexo" src="https://img.shields.io/badge/hexo-%3E%3D3.0-blue.svg">
|
|
||||||
</a>
|
</a>
|
||||||
<img alt="platform" src="https://img.shields.io/badge/platform-PC--ios--android-cc2e8b.svg">
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
:ocean: Ayer is a clean and elegant theme for Hexo, also fast, powerful and responsive. It contains many awesome features, It's perfect for your blog, "Ayer" means "water" in Malaysian and "yesterday" in Spanish. If you have any queries or advice during the process of using, Please contact me!
|
:ocean: Ayer is a clean and elegant theme for Hexo, also fast, powerful and responsive. It contains many awesome features, It's perfect for your blog, "Ayer" means "water" in Malaysian and "yesterday" in Spanish. If you have any queries or advice during the process of using, Please contact me! shenyu@hotmail.com
|
||||||
|
|
||||||
<b>注:收藏本主题请点右上角Star,谢谢~</b>
|
<b>注:收藏本主题请点右上角Star,谢谢~~ </b>
|
||||||
|
<b>如果你想给主题添砖加瓦,可以点右上角Fork,然后给此仓库提交PR</b>
|
||||||
|
|
||||||
### [Preview 预览](https://shen-yu.gitee.io)
|
### [Preview 预览](https://shen-yu.gitee.io)
|
||||||
|
|
||||||
@@ -37,13 +46,24 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Install
|
## Install
|
||||||
|
|
||||||
``` bash
|
### For hexo < 5.0
|
||||||
$ git clone https://github.com/Shen-Yu/hexo-theme-ayer.git themes/ayer
|
|
||||||
|
``` shell
|
||||||
|
git clone https://github.com/Shen-Yu/hexo-theme-ayer.git themes/ayer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Enable
|
### For hexo >= 5.0
|
||||||
|
|
||||||
|
``` shell
|
||||||
|
npm i hexo-theme-ayer -S
|
||||||
|
```
|
||||||
|
|
||||||
|
- If this theme is newly installed, a `_config.ayer.yml` file will be generated in the root directory after the installation is complete, and you can directly edit the `_config.ayer.yml` file for configuration.
|
||||||
|
- If it is a theme upgrade, you can use the configuration method of hexo < 5.0, or you can move the original configuration file to the root directory and rename it to `_config.ayer.yml`.
|
||||||
|
|
||||||
|
## Enable
|
||||||
|
|
||||||
Modify `theme` setting in `_config.yml` to `ayer`
|
Modify `theme` setting in `_config.yml` to `ayer`
|
||||||
|
|
||||||
@@ -51,14 +71,19 @@ Modify `theme` setting in `_config.yml` to `ayer`
|
|||||||
theme: ayer
|
theme: ayer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Update
|
## Update
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
cd themes/ayer
|
cd themes/ayer
|
||||||
git pull
|
git pull
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configuration
|
## Multi Language Support
|
||||||
|
zh-CN(中文简体) en(English) zh-TW(中文繁体) ja(Japanese) es(Spanish) de(German) fr(French) ru(Russian) ko(Korean) vi(Vietnamese) nl(Dutch) no(Norwegian) pt(Portuguese)
|
||||||
|
|
||||||
|
English is default languge, if you want to change, modify `language` option in `_config.yml` file in your blog's root folder.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
let me know if you have any questions.
|
let me know if you have any questions.
|
||||||
|
|
||||||
@@ -67,10 +92,25 @@ let me know if you have any questions.
|
|||||||
menu:
|
menu:
|
||||||
Home: /
|
Home: /
|
||||||
Archives: /archives
|
Archives: /archives
|
||||||
|
Categories: /categories
|
||||||
|
Tags: /tags
|
||||||
Gallery: http://shenyu-vip.lofter.com
|
Gallery: http://shenyu-vip.lofter.com
|
||||||
Travel: /tags/旅行/
|
Travel: /tags/旅行/
|
||||||
About: /2019/about
|
About: /2019/about
|
||||||
|
|
||||||
|
# Subtitle and Typing animation
|
||||||
|
# https://github.com/mattboldt/typed.js
|
||||||
|
subtitle:
|
||||||
|
enable: true
|
||||||
|
text: A clean and elegant theme
|
||||||
|
text2: It's perfect for your hexo blog
|
||||||
|
text3: Have fun! #Supports up to three lines of text
|
||||||
|
startDelay: 0
|
||||||
|
typeSpeed: 200
|
||||||
|
loop: true
|
||||||
|
backSpeed: 100
|
||||||
|
showCursor: true
|
||||||
|
|
||||||
# Favicon and sidebar logo
|
# Favicon and sidebar logo
|
||||||
favicon: /favicon.ico
|
favicon: /favicon.ico
|
||||||
logo: /images/ayer-side.svg
|
logo: /images/ayer-side.svg
|
||||||
@@ -83,11 +123,25 @@ cover:
|
|||||||
logo: /images/ayer.svg
|
logo: /images/ayer.svg
|
||||||
|
|
||||||
# ProgressBar
|
# ProgressBar
|
||||||
progressBar: ture
|
progressBar: true
|
||||||
|
|
||||||
|
# Boardcast
|
||||||
|
broadcast:
|
||||||
|
enable: true
|
||||||
|
type: 2 # 1:custom,2:hitokoto api(https://hitokoto.cn/)
|
||||||
|
text: a clean and elegant theme, fast and responsive. # only work in custom mode
|
||||||
|
|
||||||
# Article Setting
|
# Article Setting
|
||||||
# (Use this to excerpt if article is too long:<!--more-->)
|
# (Use this to excerpt if article is too long:<!--more-->)
|
||||||
excerpt_link: Read More...
|
excerpt_link: Read More...
|
||||||
|
excerpt_all: false
|
||||||
|
|
||||||
|
# Copy code button
|
||||||
|
copy_btn: true
|
||||||
|
# Share
|
||||||
|
share_enable: true
|
||||||
|
# If you are not in China, maybe you prefer to set:false
|
||||||
|
share_china: true
|
||||||
# share text
|
# share text
|
||||||
share_text: Share
|
share_text: Share
|
||||||
# search text
|
# search text
|
||||||
@@ -121,13 +175,108 @@ alipay: /images/alipay.jpg
|
|||||||
# qrcode image path
|
# qrcode image path
|
||||||
weixin: /images/wechat.jpg
|
weixin: /images/wechat.jpg
|
||||||
|
|
||||||
|
# Copyright
|
||||||
|
# type:0-close all; 1-only display in article which you have configured copyright: true; 2-all articles
|
||||||
|
copyright_type: 2
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
|
# https://github.com/theme-next/hexo-generator-searchdb
|
||||||
search: true
|
search: true
|
||||||
|
|
||||||
# RSS
|
# RSS
|
||||||
|
# leave it empty if you dont' need
|
||||||
rss: /atom.xml
|
rss: /atom.xml
|
||||||
|
|
||||||
# Comment:1、Valine (recommended);2、Gitalk
|
# DarkMode
|
||||||
|
darkmode: true
|
||||||
|
|
||||||
|
# Canvas background style: 0-close,1-moveline
|
||||||
|
canvas_bg: 0
|
||||||
|
|
||||||
|
# Custom mouse pointer,replace /images/mouse.cur
|
||||||
|
mouse:
|
||||||
|
enable: false
|
||||||
|
path: /images/mouse.cur
|
||||||
|
|
||||||
|
# Click effect: 0-close,1-love,2-boom,3-particles
|
||||||
|
click_effect: 0
|
||||||
|
|
||||||
|
# articleWidth and sidebarWidth
|
||||||
|
layout:
|
||||||
|
article_width: 80rem
|
||||||
|
sidebar_width: 8rem
|
||||||
|
|
||||||
|
# GitHub Ribbons(https://github.blog/2008-12-19-github-ribbons/)
|
||||||
|
github:
|
||||||
|
# (Set false if you don't need)
|
||||||
|
enable: false
|
||||||
|
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
||||||
|
|
||||||
|
# pv&uv statistics
|
||||||
|
busuanzi:
|
||||||
|
enable: true
|
||||||
|
|
||||||
|
# cnzz statistics
|
||||||
|
cnzz:
|
||||||
|
enable: true
|
||||||
|
url: #
|
||||||
|
|
||||||
|
# Google Analytics
|
||||||
|
google_analytics: ''
|
||||||
|
# Baidu Analytics
|
||||||
|
baidu_analytics: ''
|
||||||
|
|
||||||
|
# Mathjax Support
|
||||||
|
mathjax: true
|
||||||
|
|
||||||
|
# Katex Support
|
||||||
|
# note: need change the hexo-renderer,npm un hexo-renderer-marked -S && npm i hexo-renderer-markdown-it-katex -S
|
||||||
|
katex:
|
||||||
|
enable: false # true
|
||||||
|
allpost: true
|
||||||
|
copy_tex: false
|
||||||
|
|
||||||
|
# since year
|
||||||
|
since: 2019
|
||||||
|
|
||||||
|
# pageFooter (Set true can let more people know this theme, Thanks!)
|
||||||
|
pageFooter: true
|
||||||
|
|
||||||
|
# only for chinese website
|
||||||
|
# ICP
|
||||||
|
icp:
|
||||||
|
enable: false
|
||||||
|
url: "http://www.beian.miit.gov.cn/"
|
||||||
|
text: "浙ICP备88888888"
|
||||||
|
# gongan
|
||||||
|
gongan:
|
||||||
|
enable: false
|
||||||
|
img: /images/beian.png
|
||||||
|
url: "http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=01234567890123" #link
|
||||||
|
text: "浙公网安备01234567890123号"
|
||||||
|
|
||||||
|
# friends link
|
||||||
|
friends_link:
|
||||||
|
Ayer: #site name
|
||||||
|
# site url
|
||||||
|
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
||||||
|
# site icon(optional)
|
||||||
|
img: /images/ayer.png
|
||||||
|
GitHub:
|
||||||
|
url: https://github.com/Shen-Yu
|
||||||
|
img: https://i.loli.net/2020/09/07/indb4PRYDA98EkN.png
|
||||||
|
gitee:
|
||||||
|
url: https://gitee.com/shen-yu
|
||||||
|
img: https://i.loli.net/2020/09/07/K3AqO7h6krQFlRX.png
|
||||||
|
Hexo:
|
||||||
|
url: https://hexo.io
|
||||||
|
img: https://i.loli.net/2020/09/07/UYGzjo7h68CRWny.png
|
||||||
|
hexo-tag-chart:
|
||||||
|
url: https://github.com/Shen-Yu/hexo-tag-chart
|
||||||
|
img: https://i.loli.net/2020/09/07/GIXBYE5SoylhR1r.png
|
||||||
|
|
||||||
|
# Comment:1、Valine (recommended);2、Gitalk;3、Twikoo;4、MiniValine
|
||||||
|
# You can close the comment section on one of your posts by marking `comments: false` in front-matter.
|
||||||
|
|
||||||
# 1、Valine [A fast, simple & powerful comment system](https://github.com/xCss/Valine)
|
# 1、Valine [A fast, simple & powerful comment system](https://github.com/xCss/Valine)
|
||||||
# You need create leancloud account first (https://console.leancloud.app), then put the id|key in below.
|
# You need create leancloud account first (https://console.leancloud.app), then put the id|key in below.
|
||||||
@@ -150,39 +299,22 @@ gitalk:
|
|||||||
owner: # GitHub ID
|
owner: # GitHub ID
|
||||||
admin: # GitHub ID
|
admin: # GitHub ID
|
||||||
|
|
||||||
# GitHub Ribbons(https://github.blog/2008-12-19-github-ribbons/)
|
# 3、Twikoo(https://github.com/imaegoo/twikoo)
|
||||||
github:
|
twikoo:
|
||||||
# (Set false if you don't need)
|
enable: false
|
||||||
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
envId: #
|
||||||
|
|
||||||
# fancybox(Use for gallery, set false if you don't need)
|
# 4、MiniValine
|
||||||
fancybox: true
|
# See: https://github.com/MiniValine/MiniValine
|
||||||
|
minivaline:
|
||||||
# pv&uv statistics
|
enable: false
|
||||||
busuanzi:
|
md: true
|
||||||
enable: true
|
# more options https://minivaline.js.org/docs/cn/#/Options
|
||||||
|
backend: waline
|
||||||
# cnzz statistics
|
serverURL: https://waline.vercel.app
|
||||||
cnzz:
|
|
||||||
enable: true
|
|
||||||
url: #
|
|
||||||
|
|
||||||
# Google Analytics
|
|
||||||
google_analytics: ''
|
|
||||||
# Baidu Analytics
|
|
||||||
baidu_analytics: ''
|
|
||||||
|
|
||||||
# mathjax
|
|
||||||
mathjax: true
|
|
||||||
|
|
||||||
# since year
|
|
||||||
since: 2019
|
|
||||||
|
|
||||||
# pageFooter (Set true can let more people know this theme, Thanks!)
|
|
||||||
pageFooter: true
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Plugins
|
## Plugins
|
||||||
|
|
||||||
+ [hexo-generator-search](https://github.com/wzpan/hexo-generator-search) (for Local Search)
|
+ [hexo-generator-search](https://github.com/wzpan/hexo-generator-search) (for Local Search)
|
||||||
|
|
||||||
@@ -199,7 +331,7 @@ pageFooter: true
|
|||||||
format: html
|
format: html
|
||||||
```
|
```
|
||||||
|
|
||||||
+ [hexo-generate-feed](https://github.com/hexojs/hexo-generator-feed) (for RSS)
|
+ [hexo-generator-feed](https://github.com/hexojs/hexo-generator-feed) (for RSS)
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
$ npm install hexo-generator-feed --save
|
$ npm install hexo-generator-feed --save
|
||||||
@@ -208,7 +340,7 @@ pageFooter: true
|
|||||||
Then add the plugin configuration in hexo's configuration file `_config.yml` (note: not the theme's configuration file):
|
Then add the plugin configuration in hexo's configuration file `_config.yml` (note: not the theme's configuration file):
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
feed:
|
feed:m
|
||||||
type: atom
|
type: atom
|
||||||
path: atom.xml
|
path: atom.xml
|
||||||
limit: 20
|
limit: 20
|
||||||
@@ -225,11 +357,11 @@ pageFooter: true
|
|||||||
$ npm uninstall hexo-generator-index --save
|
$ npm uninstall hexo-generator-index --save
|
||||||
$ npm install hexo-generator-index-pin-top --save
|
$ npm install hexo-generator-index-pin-top --save
|
||||||
```
|
```
|
||||||
### Categories
|
## Categories
|
||||||
``` bash
|
``` bash
|
||||||
hexo new page categories
|
hexo new page categories
|
||||||
```
|
```
|
||||||
Then paste following codes to file: _posts/categories/index.md
|
Then paste following codes to file: /source/categories/index.md
|
||||||
``` md
|
``` md
|
||||||
---
|
---
|
||||||
title: categories
|
title: categories
|
||||||
@@ -238,23 +370,24 @@ layout: "categories"
|
|||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tags
|
## Tags
|
||||||
Same as categories.
|
Same as categories.
|
||||||
|
|
||||||
### Post poster
|
## Friend Links
|
||||||
|
``` bash
|
||||||
|
hexo new page friends
|
||||||
|
```
|
||||||
|
Then paste following codes to file: /source/friends/index.md
|
||||||
``` md
|
``` md
|
||||||
---
|
---
|
||||||
title: Post name
|
title: friends
|
||||||
|
type: friends
|
||||||
photos: [
|
layout: "friends"
|
||||||
["img_url"],
|
|
||||||
["img_url"]
|
|
||||||
]
|
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
Then edit `friends_link` in `_config.yml`
|
||||||
|
|
||||||
### Gallery
|
## Gallery
|
||||||
Need to write in the head of the markdown, this is not a good way to write, I hope to get a better way to write on github.
|
Need to write in the head of the markdown, this is not a good way to write, I hope to get a better way to write on github.
|
||||||
|
|
||||||
``` md
|
``` md
|
||||||
@@ -268,7 +401,7 @@ albums: [
|
|||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
### Toc
|
## Toc
|
||||||
|
|
||||||
Use Tocbot to parse the title tags (h1~h6) in the content and insert the directory.
|
Use Tocbot to parse the title tags (h1~h6) in the content and insert the directory.
|
||||||
|
|
||||||
@@ -282,11 +415,30 @@ Use Tocbot to parse the title tags (h1~h6) in the content and insert the directo
|
|||||||
|
|
||||||
``` md
|
``` md
|
||||||
---
|
---
|
||||||
toc: false
|
no_toc: true
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
<a src="https://github.com/Shen-Yu/hexo-theme-ayer">Ayer</a> by <a href="https://github.com/Shen-Yu">Eric-Shen</a> is licensed under <a rel="license" href="https://www.mit-license.org/">MIT</a>.
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
<a src="https://github.com/Shen-Yu/hexo-theme-ayer">Ayer</a> by <a href="https://github.com/Shen-Yu">Eric-Shen</a> is licensed under <a rel="license" href="https://github.com/Shen-Yu/hexo-theme-ayer/blob/master/LICENSE">SATA-License</a>.
|
||||||
|
|
||||||
|
The basic idea is, whenever using a project using SATA license, people shall star/like/+1 that project and thank the author. Just imagine Google stared your project and send you a thank-you letter because they used your project in github!
|
||||||
|
<br>
|
||||||
|
|
||||||
|
本项目采用<a rel="license" href="https://github.com/Shen-Yu/hexo-theme-ayer/blob/master/LICENSE">SATA</a>开源协议,在遵守MIT许可证的前提下,你应该给这个开源项目“点个赞”,比如github右上角的star,然后你应该感谢这个开源项目的作者,作者信息可以在许可证头部的版权声明部分找到。<br>
|
||||||
|
|
||||||
|
下面是几条SATA作者推荐的感谢途径,也是SATA包含的内容:
|
||||||
|
|
||||||
|
- 给你使用的开源项目的作者发个Email,和他交个朋友
|
||||||
|
- 提出你在使用过程中发现的BUG或者提一些建设性的意见
|
||||||
|
- 告诉你的朋友们这个开源项目碉堡了(博主: 就像我在宣传SATA)
|
||||||
|
- 当然,你也可以只是在心里默默的感激,不用让全世界都知道
|
||||||
|
|
||||||
|
## Stargazers over time
|
||||||
|
|
||||||
|
[](https://starchart.cc/Shen-Yu/hexo-theme-ayer)
|
||||||
|
201
_config.yml
201
_config.yml
@@ -6,8 +6,22 @@ menu:
|
|||||||
标签: /tags
|
标签: /tags
|
||||||
旅行: /tags/旅行/
|
旅行: /tags/旅行/
|
||||||
摄影: http://shenyu-vip.lofter.com
|
摄影: http://shenyu-vip.lofter.com
|
||||||
|
友链: /friends
|
||||||
关于我: /2019/about
|
关于我: /2019/about
|
||||||
|
|
||||||
|
# 站点次标题和打字动效
|
||||||
|
# https://github.com/mattboldt/typed.js
|
||||||
|
subtitle:
|
||||||
|
enable: true # 是否开启动效
|
||||||
|
text: 面朝大海,春暖花开 # 显示的文字
|
||||||
|
text2: 愿你一生努力,一生被爱 # 滚动播放,如果不需要可以留空
|
||||||
|
text3: 想要的都拥有,得不到的都释怀 # 最多支持三段文字
|
||||||
|
startDelay: 0 # 延迟时间
|
||||||
|
typeSpeed: 200 # 打字速度
|
||||||
|
loop: true # 是否循环
|
||||||
|
backSpeed: 100 # 回退速度
|
||||||
|
showCursor: true # 是否显示光标
|
||||||
|
|
||||||
# 网站图标和侧边栏logo
|
# 网站图标和侧边栏logo
|
||||||
favicon: /favicon.ico
|
favicon: /favicon.ico
|
||||||
logo: /images/ayer-side.svg
|
logo: /images/ayer-side.svg
|
||||||
@@ -16,17 +30,33 @@ logo: /images/ayer-side.svg
|
|||||||
# enable-是否启用封面;path-封面背景图;logo-封面logo
|
# enable-是否启用封面;path-封面背景图;logo-封面logo
|
||||||
cover:
|
cover:
|
||||||
enable: true
|
enable: true
|
||||||
path: /images/cover1.jpg # images目录下附送多张美图,可更换
|
path: /images/cover1.jpg # /source/images目录下附送多张美图,可更换
|
||||||
logo: false #/images/ayer.svg,如果不要直接设置成false
|
logo: false #/images/ayer.svg,如果不要直接设置成false
|
||||||
|
|
||||||
# 页面顶部进度条
|
# 页面顶部进度条
|
||||||
progressBar: ture
|
progressBar: true
|
||||||
|
|
||||||
|
# 告示板模块
|
||||||
|
broadcast:
|
||||||
|
enable: true # true开启,false关闭
|
||||||
|
type: 2 # 1:自定义输入,2:一言api(https://hitokoto.cn/)
|
||||||
|
text: 一个安静优雅的hexo主题,快速且响应式。 # type为1时有效
|
||||||
|
|
||||||
# 文章配置
|
# 文章配置
|
||||||
# 文章太长,截断按钮文字(在需要截断的行增加此标记:<!--more-->)
|
# 文章太长,截断按钮文字(在需要截断的行增加此标记:<!--more-->)
|
||||||
excerpt_link: 阅读更多...
|
excerpt_link: 阅读更多...
|
||||||
|
# 如果你嫌每篇文章手动加more标记比较麻烦,又不想在首页全文显示,可以把excerpt_all设置成true,这样首页只会显示文章归档
|
||||||
|
excerpt_all: false
|
||||||
|
|
||||||
|
# 是否开启代码复制按钮
|
||||||
|
copy_btn: true
|
||||||
|
# 是否开启文章分享按钮
|
||||||
|
share_enable: true
|
||||||
|
# 国内的社交平台(If you are not in China, maybe you prefer to set:false)
|
||||||
|
share_china: true
|
||||||
# 文章分享文字
|
# 文章分享文字
|
||||||
share_text: 分享
|
share_text: 分享
|
||||||
|
|
||||||
# 分页文字
|
# 分页文字
|
||||||
nav_text:
|
nav_text:
|
||||||
page_prev: 上一页
|
page_prev: 上一页
|
||||||
@@ -52,49 +82,56 @@ word_count:
|
|||||||
# 打赏type设定:0-关闭打赏; 1-文章对应的md文件里有reward:true属性,才有打赏; 2-所有文章均有打赏
|
# 打赏type设定:0-关闭打赏; 1-文章对应的md文件里有reward:true属性,才有打赏; 2-所有文章均有打赏
|
||||||
reward_type: 2
|
reward_type: 2
|
||||||
# 打赏wording
|
# 打赏wording
|
||||||
reward_wording: '请我喝杯咖啡吧~'
|
reward_wording: "请我喝杯咖啡吧~"
|
||||||
# 支付宝二维码图片地址,跟你设置logo的方式一样。比如:/images/alipay.jpg
|
# 支付宝二维码图片地址,跟你设置logo的方式一样。比如:/images/alipay.jpg
|
||||||
alipay: /images/alipay.jpg
|
alipay: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/alipay.jpg
|
||||||
# 微信二维码图片地址
|
# 微信二维码图片地址
|
||||||
weixin: /images/wechat.jpg
|
weixin: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/wechat.jpg
|
||||||
|
|
||||||
|
# 版权声明
|
||||||
|
# 版权声明type设定:0-关闭版权声明; 1-文章对应的md文件里有copyright: true属性,才有版权声明; 2-所有文章均有版权声明
|
||||||
|
copyright_type: 2
|
||||||
|
|
||||||
# 是否启用搜索
|
# 是否启用搜索
|
||||||
|
# 需要安装hexo-generator-searchdb(https://github.com/theme-next/hexo-generator-searchdb)
|
||||||
search: true
|
search: true
|
||||||
|
|
||||||
# RSS订阅(先安装hexo-generator-feed插件,再去博客根目录config进行配置)
|
# RSS订阅(先安装hexo-generator-feed插件,再去博客根目录config进行配置)
|
||||||
|
# 不想显示可以直接留空
|
||||||
rss: /atom.xml
|
rss: /atom.xml
|
||||||
|
|
||||||
# 评论:1、Valine(推荐);2、Gitalk
|
# 是否启用黑夜模式开关
|
||||||
|
darkmode: true
|
||||||
|
|
||||||
# 1、Valine[一款快速、简洁且高效的无后端评论系统](https://github.com/xCss/Valine)
|
# 动态背景效果: 0-关闭,1-动态线条(跟随鼠标)
|
||||||
# 启用Valine必须先创建leancloud应用, 获取 id|key 填入即可
|
canvas_bg: 0
|
||||||
leancloud:
|
|
||||||
enable: true
|
|
||||||
app_id: #
|
|
||||||
app_key: #
|
|
||||||
# Valine配置
|
|
||||||
valine:
|
|
||||||
enable: true # 是否启用
|
|
||||||
verify: false # 是否启用防垃圾验证
|
|
||||||
avatar: mp # 头像样式(https://valine.js.org/avatar.html)
|
|
||||||
placeholder: 给我的文章加点评论吧~ # placeholder
|
|
||||||
|
|
||||||
# 2、Gitalk(https://github.com/gitalk/gitalk)
|
# 自定义鼠标样式,直接替换/images/mouse.cur文件
|
||||||
gitalk:
|
mouse:
|
||||||
enable: false # true
|
enable: false
|
||||||
clientID: # GitHub Application Client ID
|
path: /images/mouse.cur
|
||||||
clientSecret: # Client Secret
|
|
||||||
repo: # Repository name
|
|
||||||
owner: # GitHub ID
|
|
||||||
admin: # GitHub ID
|
|
||||||
|
|
||||||
# GitHub Ribbons(https://github.blog/2008-12-19-github-ribbons/)
|
# 鼠标点击效果:0-关闭,1-爱心,2-爆炸烟花,3-粒子烟花
|
||||||
github:
|
click_effect: 0
|
||||||
|
|
||||||
|
# 页面宽度自定义(不建议修改,可能造成布局混乱),article_width文章宽度,sidebar_width侧边栏宽度
|
||||||
|
layout:
|
||||||
|
article_width: 80rem
|
||||||
|
sidebar_width: 8rem
|
||||||
|
|
||||||
|
# GitHub Ribbons-封面右上角的forkme,换样式直接在source/images目录下替换forkme图片
|
||||||
|
github:
|
||||||
# (关闭请设置为false)
|
# (关闭请设置为false)
|
||||||
|
enable: true
|
||||||
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
||||||
|
|
||||||
# fancybox(仅用于相册展示,若需要可配置albums)
|
# 网易云音乐插件
|
||||||
fancybox: true
|
music:
|
||||||
|
enable: false
|
||||||
|
# 播放器尺寸类型(1:小尺寸、2:大尺寸)
|
||||||
|
type: 1
|
||||||
|
id: 22707008 # 网易云分享的音乐ID(更换音乐请更改此配置项)
|
||||||
|
autoPlay: true # 是否开启自动播放
|
||||||
|
|
||||||
# 访问量统计(不蒜子)
|
# 访问量统计(不蒜子)
|
||||||
busuanzi:
|
busuanzi:
|
||||||
@@ -106,15 +143,107 @@ cnzz:
|
|||||||
url: https://s9.cnzz.com/z_stat.php?id=1278069914&web_id=1278069914
|
url: https://s9.cnzz.com/z_stat.php?id=1278069914&web_id=1278069914
|
||||||
|
|
||||||
# Google Analytics
|
# Google Analytics
|
||||||
google_analytics: ''
|
google_analytics: ""
|
||||||
# 百度统计
|
# 百度统计
|
||||||
baidu_analytics: ''
|
baidu_analytics: ""
|
||||||
|
|
||||||
# 数学公式
|
# Mathjax数学公式
|
||||||
mathjax: false
|
mathjax: false
|
||||||
|
|
||||||
|
# Katex数学公式(allpost设置为false时只有头部设置math:true的文章才开启)
|
||||||
|
# 需要更换hexo渲染器,npm un hexo-renderer-marked -S && npm i hexo-renderer-markdown-it-katex -S
|
||||||
|
katex:
|
||||||
|
enable: false # true
|
||||||
|
allpost: true
|
||||||
|
copy_tex: false
|
||||||
|
|
||||||
# 网站成立年份(默认为 2019,若填入年份小于当前年份,则显示为 2018-2019 类似的格式)
|
# 网站成立年份(默认为 2019,若填入年份小于当前年份,则显示为 2018-2019 类似的格式)
|
||||||
since: 2015
|
since: 2015
|
||||||
|
|
||||||
#是否显示页脚信息(建议保留,有助于本主题的推广)
|
# 是否显示页脚信息(建议保留)
|
||||||
pageFooter: true
|
pageFooter: true
|
||||||
|
|
||||||
|
# ICP备案信息尾部显示
|
||||||
|
icp:
|
||||||
|
enable: false
|
||||||
|
url: "http://www.beian.miit.gov.cn/" # 备案链接
|
||||||
|
text: "浙ICP备88888888" # 备案信息
|
||||||
|
# 公安备案信息尾部显示
|
||||||
|
gongan:
|
||||||
|
enable: false
|
||||||
|
img: /images/beian.png #公安备案图片
|
||||||
|
url: "http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=01234567890123" #公安备案链接
|
||||||
|
text: "浙公网安备01234567890123号" #公安备案信息
|
||||||
|
|
||||||
|
# 友情链接
|
||||||
|
friends_link:
|
||||||
|
Ayer主题: #网站名称
|
||||||
|
#网站地址
|
||||||
|
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
||||||
|
#网站图片(可忽略不写)
|
||||||
|
img: /images/ayer.png
|
||||||
|
GitHub:
|
||||||
|
url: https://github.com/Shen-Yu
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/github.png
|
||||||
|
码云:
|
||||||
|
url: https://gitee.com/shen-yu
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/gitee.png
|
||||||
|
Hexo官网:
|
||||||
|
url: https://hexo.io
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/hexo.png
|
||||||
|
Hexo图表插件:
|
||||||
|
url: https://github.com/Shen-Yu/hexo-tag-chart
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/hexo-tag-chart.png
|
||||||
|
|
||||||
|
# 评论:1、Valine(推荐);2、Gitalk;3、Twikoo; 4.MiniValine
|
||||||
|
|
||||||
|
# 1、Valine[一款快速、简洁且高效的无后端评论系统](https://github.com/xCss/Valine)
|
||||||
|
# 启用Valine必须先创建leancloud应用, 获取 id|key 填入即可
|
||||||
|
leancloud:
|
||||||
|
enable: true
|
||||||
|
app_id: #
|
||||||
|
app_key: #
|
||||||
|
# Valine配置
|
||||||
|
valine:
|
||||||
|
enable: true # 是否启用
|
||||||
|
avatar: monsterid # 头像样式(https://valine.js.org/avatar.html)
|
||||||
|
placeholder: 给我的文章加点评论吧~ # placeholder
|
||||||
|
|
||||||
|
# 2、Gitalk(https://github.com/gitalk/gitalk)
|
||||||
|
gitalk:
|
||||||
|
enable: false # true
|
||||||
|
clientID: # GitHub Application Client ID
|
||||||
|
clientSecret: # Client Secret
|
||||||
|
repo: # Repository name
|
||||||
|
owner: # GitHub ID
|
||||||
|
admin: # GitHub ID
|
||||||
|
|
||||||
|
# 3、Twikoo(https://github.com/imaegoo/twikoo)
|
||||||
|
twikoo:
|
||||||
|
enable: false
|
||||||
|
envId: #
|
||||||
|
|
||||||
|
# 4、MiniValine
|
||||||
|
# See: https://github.com/MiniValine/MiniValine
|
||||||
|
minivaline:
|
||||||
|
enable: false
|
||||||
|
md: true
|
||||||
|
# 更多选项 https://minivaline.js.org/docs/cn/#/Options 按照yml格式继续填写即可 (除了 [el] 选项)
|
||||||
|
# emoticonUrl 等列表选项 可参考 https://github.com/MiniValine/hexo-next-minivaline
|
||||||
|
# 下面是一个例子:
|
||||||
|
backend: waline
|
||||||
|
serverURL: https://waline.vercel.app
|
||||||
|
|
||||||
|
# 首页广告配置
|
||||||
|
# 可以根据需要自行增加ad_3,ad_4...,留空则不显示,建议图片和url不要带ad等关键词,否则可能会被adblock等插件屏蔽
|
||||||
|
ads:
|
||||||
|
ad_1:
|
||||||
|
title: 腾讯云限时秒杀
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/ten_1.jpg
|
||||||
|
url: https://curl.qcloud.com/ezctH6FU
|
||||||
|
width: 300
|
||||||
|
ad_2:
|
||||||
|
title: 云服务器全球购低至2折
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/ten_2.jpg
|
||||||
|
url: https://curl.qcloud.com/kvO7hb43
|
||||||
|
width: 300
|
2
index.js
Normal file
2
index.js
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
// 这个文件用来防止 hexo 5.0.0以上 使用 "hexo clean" 命令报错。
|
||||||
|
// This file is used to prevent hexo above 5.0.0 from using "hexo clean" command error.
|
@@ -13,7 +13,20 @@ recent_posts: letzter Beitrag
|
|||||||
newer: Neuer
|
newer: Neuer
|
||||||
older: Älter
|
older: Älter
|
||||||
share: Teilen
|
share: Teilen
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: Kategorie
|
category: Kategorie
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Freunde
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Wortzahl
|
||||||
|
read_time: Lesezeit
|
||||||
|
minutes: Minuten
|
||||||
|
reward: Belohnung
|
||||||
|
sticky: Oben
|
||||||
|
copyright_title: Copyright-Hinweis
|
||||||
|
copyright_content: Sofern nicht anders angegeben, liegt das Urheberrecht aller Artikel in diesem Blog beim Autor. Nachdruck bitte Quelle angeben!
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: Recent Posts
|
|||||||
newer: Newer
|
newer: Newer
|
||||||
older: Older
|
older: Older
|
||||||
share: Share
|
share: Share
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: Category
|
category: Category
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Friends
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Word count
|
||||||
|
read_time: Reading time
|
||||||
|
minutes: min
|
||||||
|
reward: Donate
|
||||||
|
sticky: Sticky
|
||||||
|
copyright_title: Copyright
|
||||||
|
copyright_content: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
|
||||||
|
32
languages/en.yml
Normal file
32
languages/en.yml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
categories: Categories
|
||||||
|
search: Search
|
||||||
|
tags: Tags
|
||||||
|
tagcloud: Tag Cloud
|
||||||
|
tweets: Tweets
|
||||||
|
prev: Prev
|
||||||
|
next: Next
|
||||||
|
comment: Comments
|
||||||
|
archive_a: Archives
|
||||||
|
archive_b: "Archives: %s"
|
||||||
|
page: Page %d
|
||||||
|
recent_posts: Recent Posts
|
||||||
|
newer: Newer
|
||||||
|
older: Older
|
||||||
|
share: Share
|
||||||
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
|
rss_feed: RSS Feed
|
||||||
|
category: Category
|
||||||
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Friends
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Word count
|
||||||
|
read_time: Reading time
|
||||||
|
minutes: min
|
||||||
|
reward: Donate
|
||||||
|
sticky: Sticky
|
||||||
|
copyright_title: Copyright
|
||||||
|
copyright_content: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
|
@@ -13,7 +13,20 @@ recent_posts: Posts recientes
|
|||||||
newer: Nuevo
|
newer: Nuevo
|
||||||
older: Viejo
|
older: Viejo
|
||||||
share: Compartir
|
share: Compartir
|
||||||
powered_by: Construido por
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS
|
rss_feed: RSS
|
||||||
category: Categoría
|
category: Categoría
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Amigos
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: El recuento de palabras
|
||||||
|
read_time: Tiempo de lectura
|
||||||
|
minutes: minutos
|
||||||
|
reward: Recompensa
|
||||||
|
sticky: Arriba
|
||||||
|
copyright_title: Derechos de autor
|
||||||
|
copyright_content: Los derechos de autor son propiedad del autor. Para reimpresiones comerciales, comuníquese con el autor para obtener autorización. Para reimpresiones no comerciales, indique la fuente.
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: Articles récents
|
|||||||
newer: Récent
|
newer: Récent
|
||||||
older: Ancien
|
older: Ancien
|
||||||
share: Partager
|
share: Partager
|
||||||
powered_by: Propulsé par
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: Flux RSS
|
rss_feed: Flux RSS
|
||||||
category: Catégorie
|
category: Catégorie
|
||||||
tag: Mot-clé
|
tag: Mot-clé
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Mes amis
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Nombre de mots
|
||||||
|
read_time: Temps de lecture
|
||||||
|
minutes: min
|
||||||
|
reward: Récompense
|
||||||
|
sticky: Haut
|
||||||
|
copyright_title: Avis de copyright
|
||||||
|
copyright_content: Le droit d'auteur appartient à l'auteur. Pour les réimpressions commerciales, veuillez contacter l'auteur pour autorisation. Pour les réimpressions non commerciales, veuillez indiquer la source.
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: 最近の投稿
|
|||||||
newer: 次の記事
|
newer: 次の記事
|
||||||
older: 前の記事
|
older: 前の記事
|
||||||
share: 共有
|
share: 共有
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSSフィード
|
rss_feed: RSSフィード
|
||||||
category: カテゴリ
|
category: カテゴリ
|
||||||
tag: タグ
|
tag: タグ
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: 友達
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: 単語数
|
||||||
|
read_time: 読書の時間
|
||||||
|
minutes: 分
|
||||||
|
reward: 報酬
|
||||||
|
sticky: 上へ
|
||||||
|
copyright_title: 著作権表示
|
||||||
|
copyright_content: 著作権は著者が所有しています。商業版の複製については、承認について著者に連絡してください。非商業版の複製については、出典を明記してください。
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: 최근 포스트
|
|||||||
newer: 최신
|
newer: 최신
|
||||||
older: 이전
|
older: 이전
|
||||||
share: 공유
|
share: 공유
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: 카테고리
|
category: 카테고리
|
||||||
tag: 태그
|
tag: 태그
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: 친구 들
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: 단어 수
|
||||||
|
read_time: 독서 시간
|
||||||
|
minutes: 분
|
||||||
|
reward: 보상
|
||||||
|
sticky: 톱
|
||||||
|
copyright_title: 저작권 고지
|
||||||
|
copyright_content: 저작권은 저자가 소유합니다. 상업용 재 인쇄의 경우 승인을 위해 저자에게 문의하십시오. 비상업적 재 인쇄의 경우 출처를 명시하십시오.
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
categories: Categorieën
|
categories: Categorieën
|
||||||
search: Zoeken
|
search: Zoeken
|
||||||
tags: Labels
|
tags: Labels
|
||||||
@@ -14,7 +13,20 @@ recent_posts: Recente berichten
|
|||||||
newer: Nieuwer
|
newer: Nieuwer
|
||||||
older: Ouder
|
older: Ouder
|
||||||
share: Delen
|
share: Delen
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: Categorie
|
category: Categorie
|
||||||
tag: Label
|
tag: Label
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Vrienden
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Aantal woorden in artikel
|
||||||
|
read_time: Leestijd
|
||||||
|
minutes: min
|
||||||
|
reward: Doneer
|
||||||
|
sticky: Sticky
|
||||||
|
copyright_title: Copyright melding
|
||||||
|
copyright_content: Copyright is eigendom van de auteur. Neem voor commerciële herdrukken contact op met de auteur voor autorisatie. Geef de bron aan voor niet-commerciële herdrukken.
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: Siste innlegg
|
|||||||
newer: Newer
|
newer: Newer
|
||||||
older: Older
|
older: Older
|
||||||
share: Share
|
share: Share
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: Category
|
category: Category
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Venner
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Ordtelling
|
||||||
|
read_time: Lesetid
|
||||||
|
minutes: min
|
||||||
|
reward: Donere
|
||||||
|
sticky: Sticky
|
||||||
|
copyright_title: Opphavsrett
|
||||||
|
copyright_content: Opphavsrett eies av forfatteren. For kommersielle opptrykk, vennligst kontakt forfatteren for godkjenning. For ikke-kommersiell uttrykk, vennligst oppgi kilden.
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: Postagens Recentes
|
|||||||
newer: Mais Recente
|
newer: Mais Recente
|
||||||
older: Mais Antigo
|
older: Mais Antigo
|
||||||
share: Compartilhar
|
share: Compartilhar
|
||||||
powered_by: Desenvolvido por
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: Feed RSS
|
rss_feed: Feed RSS
|
||||||
category: Categoria
|
category: Categoria
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Amigos
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Word count
|
||||||
|
read_time: Reading time
|
||||||
|
minutes: min
|
||||||
|
reward: Donate
|
||||||
|
sticky: Sticky
|
||||||
|
copyright_title: direito autoral
|
||||||
|
copyright_content: Os direitos autorais são de propriedade do autor. Para reimpressões comerciais, entre em contato com o autor para obter autorização. Para reimpressões não comerciais, indique a fonte.
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: Недавние записи
|
|||||||
newer: Следующий
|
newer: Следующий
|
||||||
older: Предыдущий
|
older: Предыдущий
|
||||||
share: Поделиться
|
share: Поделиться
|
||||||
powered_by: Создано с помощью
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS-каналы
|
rss_feed: RSS-каналы
|
||||||
category: Категория
|
category: Категория
|
||||||
tag: Метка
|
tag: Метка
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: друзья
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Количество слов
|
||||||
|
read_time: Время чтения
|
||||||
|
minutes: минут
|
||||||
|
reward: вознаграждение
|
||||||
|
sticky: липкий
|
||||||
|
copyright_title: Авторские права
|
||||||
|
copyright_content: Авторские права принадлежат автору. Для коммерческих перепечаток, пожалуйста, свяжитесь с автором для авторизации. Для некоммерческих перепечаток, пожалуйста, укажите источник.
|
||||||
|
32
languages/vi.yml
Normal file
32
languages/vi.yml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
categories: Thể loại
|
||||||
|
search: Tìm Kiếm
|
||||||
|
tags: thẻ
|
||||||
|
tagcloud: thẻ đám mây
|
||||||
|
tweets: Tweets
|
||||||
|
prev: trước
|
||||||
|
next: kế tiếp
|
||||||
|
comment: bình luận
|
||||||
|
archive_a: Archives
|
||||||
|
archive_b: "Archives: %s"
|
||||||
|
page: Page %d
|
||||||
|
recent_posts: Bài viết gần đây
|
||||||
|
newer: mới hơn
|
||||||
|
older: lớn hơn
|
||||||
|
share: chia sẻ
|
||||||
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
|
rss_feed: RSS Feed
|
||||||
|
category: Thể loại
|
||||||
|
tag: thẻ
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: Bạn
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: Đếm từ
|
||||||
|
read_time: Thời gian đọc
|
||||||
|
minutes: min
|
||||||
|
reward: tặng
|
||||||
|
sticky: dính
|
||||||
|
copyright_title: Bản quyền
|
||||||
|
copyright_content: Bản quyền thuộc sở hữu của tác giả. Đối với tái bản thương mại, xin vui lòng liên hệ với tác giả cho phép. Đối với tái bản phi thương mại, xin vui lòng cho biết nguồn.
|
@@ -13,7 +13,20 @@ recent_posts: 最新文章
|
|||||||
newer: Newer
|
newer: Newer
|
||||||
older: Older
|
older: Older
|
||||||
share: 分享
|
share: 分享
|
||||||
powered_by: Powered by
|
powered_by: 由 %s 强力驱动
|
||||||
|
theme: 主题 - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: Category
|
category: Category
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: 访问人数
|
||||||
|
page_views: 浏览次数
|
||||||
|
friends: 友情链接
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: 字数统计
|
||||||
|
read_time: 阅读时长
|
||||||
|
minutes: 分钟
|
||||||
|
reward: 打赏
|
||||||
|
sticky: 置顶
|
||||||
|
copyright_title: 版权声明
|
||||||
|
copyright_content: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
|
||||||
|
@@ -13,7 +13,20 @@ recent_posts: 最新文章
|
|||||||
newer: Newer
|
newer: Newer
|
||||||
older: Older
|
older: Older
|
||||||
share: Share
|
share: Share
|
||||||
powered_by: Powered by
|
powered_by: Powered by %s
|
||||||
|
theme: Theme - %s
|
||||||
rss_feed: RSS Feed
|
rss_feed: RSS Feed
|
||||||
category: Category
|
category: Category
|
||||||
tag: Tag
|
tag: Tag
|
||||||
|
site_visitors: Visitors
|
||||||
|
page_views: Views
|
||||||
|
friends: 友情鏈接
|
||||||
|
|
||||||
|
post:
|
||||||
|
word_count: 字數統計
|
||||||
|
read_time: 閱讀時長
|
||||||
|
minutes: 分鐘
|
||||||
|
reward: 打賞
|
||||||
|
sticky: 置頂
|
||||||
|
copyright_title: 版權聲明
|
||||||
|
copyright_content: 本博客所有文章除特別聲明外,著作權歸作者所有。轉載請註明出處!
|
||||||
|
9
layout/_partial/ads.ejs
Normal file
9
layout/_partial/ads.ejs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<ul class="ads">
|
||||||
|
<% for (var i in theme.ads){ %>
|
||||||
|
<li>
|
||||||
|
<a href="<%= theme.ads[i].url %>">
|
||||||
|
<img src="<%= theme.ads[i].img %>" width="<%= theme.ads[i].width %>" alt="<%=theme.ads[i].title %>">
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<% } %>
|
||||||
|
</ul>
|
@@ -1,49 +1,66 @@
|
|||||||
<%- js('/js/jquery-2.0.3.min') %>
|
<%- js('/js/jquery-2.0.3.min') %>
|
||||||
<%- js('/js/jquery.justifiedGallery.min') %>
|
|
||||||
<%- js('/js/lazyload.min') %>
|
<%- js('/js/lazyload.min') %>
|
||||||
<%- js('/js/busuanzi-2.3.pure.min') %>
|
<!-- Tocbot -->
|
||||||
<% if (theme.fancybox){ %>
|
<% if (theme.toc && is_post() && !page.no_toc){ %>
|
||||||
<%- js('fancybox/jquery.fancybox.min') %>
|
|
||||||
<% } %>
|
|
||||||
|
|
||||||
<% if (theme.toc && is_post()){ %>
|
|
||||||
<%- js('/js/tocbot.min') %>
|
<%- js('/js/tocbot.min') %>
|
||||||
<script>
|
<script>
|
||||||
// Tocbot_v4.7.0 http://tscanlin.github.io/tocbot/
|
|
||||||
tocbot.init({
|
tocbot.init({
|
||||||
tocSelector: '.tocbot',
|
tocSelector: '.tocbot',
|
||||||
contentSelector: '.article-entry',
|
contentSelector: '.article-entry',
|
||||||
headingSelector: 'h1, h2, h3, h4, h5, h6',
|
headingSelector: 'h1, h2, h3, h4, h5, h6',
|
||||||
hasInnerContainers: true,
|
hasInnerContainers: true,
|
||||||
scrollSmooth: true,
|
scrollSmooth: true,
|
||||||
|
scrollContainer: 'main',
|
||||||
positionFixedSelector: '.tocbot',
|
positionFixedSelector: '.tocbot',
|
||||||
positionFixedClass: 'is-position-fixed',
|
positionFixedClass: 'is-position-fixed',
|
||||||
fixedSidebarOffset: 'auto',
|
fixedSidebarOffset: 'auto'
|
||||||
onClick: (e) => {
|
|
||||||
document.getElementById(e.target.innerText).scrollIntoView()
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
<script>
|
|
||||||
var ayerConfig = {
|
|
||||||
mathjax: <%=theme.mathjax %>
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<%- js('js/ayer') %>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/jquery-modal@0.9.2/jquery.modal.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/jquery-modal@0.9.2/jquery.modal.min.js"></script>
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jquery-modal@0.9.2/jquery.modal.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jquery-modal@0.9.2/jquery.modal.min.css">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/justifiedGallery@3.7.0/dist/js/jquery.justifiedGallery.min.js"></script>
|
||||||
|
<%- js('dist/main') %>
|
||||||
|
<!-- ImageViewer -->
|
||||||
<% if (theme.image_viewer){ %>
|
<% if (theme.image_viewer){ %>
|
||||||
<%- partial('viewer') %>
|
<%- partial('viewer') %>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
<!-- MathJax -->
|
||||||
<% if (theme.mathjax){ %>
|
<% if (theme.mathjax){ %>
|
||||||
<%- partial('mathjax') %>
|
<%- partial('mathjax') %>
|
||||||
|
<script>
|
||||||
|
var ayerConfig = {
|
||||||
|
mathjax: true
|
||||||
|
}
|
||||||
|
</script>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
<!-- Katex -->
|
||||||
<script type="text/javascript" src="https://js.users.51.la/20544303.js"></script>
|
<% if (theme.katex.enable){ %>
|
||||||
|
<%- partial('katex') %>
|
||||||
|
<% } %>
|
||||||
|
<!-- busuanzi -->
|
||||||
|
<% if (theme.busuanzi && theme.busuanzi.enable){ %>
|
||||||
|
<%- js('/js/busuanzi-2.3.pure.min') %>
|
||||||
|
<% } %>
|
||||||
|
<!-- ClickLove -->
|
||||||
|
<% if (theme.click_effect===1){ %>
|
||||||
|
<%- js('/js/clickLove') %>
|
||||||
|
<% } %>
|
||||||
|
<!-- ClickBoom1 -->
|
||||||
|
<% if (theme.click_effect===2){ %>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/animejs@latest/anime.min.js"></script>
|
||||||
|
<%- js('/js/clickBoom1') %>
|
||||||
|
<% } %>
|
||||||
|
<!-- ClickBoom2 -->
|
||||||
|
<% if (theme.click_effect===3){ %>
|
||||||
|
<%- js('/js/clickBoom2') %>
|
||||||
|
<% } %>
|
||||||
|
<!-- CodeCopy -->
|
||||||
|
<% if (theme.copy_btn == true) { %>
|
||||||
|
<%- css('/css/clipboard') %>
|
||||||
|
<%- partial('post/clipboard') %>
|
||||||
|
<% } %>
|
||||||
|
<!-- CanvasBackground -->
|
||||||
|
<% if (theme.canvas_bg == 1) { %>
|
||||||
|
<%- js('/js/dz') %>
|
||||||
|
<% } %>
|
@@ -1,4 +1,10 @@
|
|||||||
<section class="outer">
|
<section class="outer">
|
||||||
|
<% if (theme.ads && theme.ads.length != 0){ %>
|
||||||
|
<%- partial('ads') %>
|
||||||
|
<% } %>
|
||||||
|
<% if (theme.broadcast.enable && pagination == 2){ %>
|
||||||
|
<%- partial('_partial/broadcast') %>
|
||||||
|
<% } %>
|
||||||
<article class="articles">
|
<article class="articles">
|
||||||
<%
|
<%
|
||||||
var title = '';
|
var title = '';
|
||||||
|
@@ -1,67 +1,71 @@
|
|||||||
<article id="<%= post.layout %>-<%= post.slug %>" class="article article-type-<%= post.layout %>" itemscope
|
<article
|
||||||
itemprop="blogPost" data-scroll-reveal>
|
id="<%= post.layout %>-<%= post.slug %>"
|
||||||
|
class="article article-type-<%= post.layout %>"
|
||||||
|
itemscope
|
||||||
|
itemprop="blogPost"
|
||||||
|
data-scroll-reveal
|
||||||
|
>
|
||||||
<div class="article-inner">
|
<div class="article-inner">
|
||||||
<% if (post.link || post.title){ %>
|
<% if (post.link || post.title){ %>
|
||||||
<header class="article-header">
|
<header class="article-header">
|
||||||
<%- partial('post/title', {class_name: 'article-title'}) %>
|
<%- partial('post/title', {class_name: 'article-title'}) %>
|
||||||
</header>
|
</header>
|
||||||
<% } %>
|
<% } %> <% if (index || is_post()) { %>
|
||||||
|
|
||||||
<% if (index || is_post()) { %>
|
|
||||||
<div class="article-meta">
|
<div class="article-meta">
|
||||||
<%- partial('post/date', {class_name: 'article-date', date_format: null}) %>
|
<%- partial('post/date', {class_name: 'article-date', date_format: null})
|
||||||
<%- partial('post/category') %>
|
%> <%- partial('post/category') %> <% if(theme.word_count &&
|
||||||
<% if(theme.word_count && theme.word_count.enable && !post.no_word_count){%>
|
theme.word_count.enable && !post.no_word_count){%> <%-
|
||||||
<%- partial('post/word') %>
|
partial('post/word') %> <% } %>
|
||||||
<% } %>
|
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %> <% if (theme.toc && is_post()){ %> <%- partial('post/tocbot') %> <%
|
||||||
|
} %> <% if (theme.excerpt_all&&index){ %> <% }else{ %>
|
||||||
<% if (theme.toc && is_post()){ %>
|
|
||||||
<%- partial('post/tocbot') %>
|
|
||||||
<% } %>
|
|
||||||
|
|
||||||
<div class="article-entry" itemprop="articleBody">
|
<div class="article-entry" itemprop="articleBody">
|
||||||
<%- partial('post/justifiedGallery') %>
|
<%- partial('post/justifiedGallery') %> <%- partial('post/gallery') %> <%
|
||||||
<%- partial('post/gallery') %>
|
if (post.excerpt && index){ %> <%- post.excerpt %> <% if
|
||||||
<% if (post.excerpt && index){ %>
|
(theme.excerpt_link){ %>
|
||||||
<%- post.excerpt %>
|
<a class="article-more-link" href="<%- url_for(post.path) %>"
|
||||||
<% if (theme.excerpt_link){ %>
|
><%= theme.excerpt_link %></a
|
||||||
<a class="article-more-link" href="<%- url_for(post.path) %>"><%= theme.excerpt_link %></a>
|
>
|
||||||
<% } %>
|
<% } %> <% } else { %> <%- post.content %> <% } %>
|
||||||
<% } else { %>
|
<!-- reward -->
|
||||||
<%- post.content %>
|
<% if ((theme.reward_type === 2 || (theme.reward_type === 1 &&
|
||||||
<% } %>
|
post.reward)) && !index && !post.no_reward){ %>
|
||||||
<!-- 打赏 -->
|
<div id="reword-out">
|
||||||
<% if ((theme.reward_type === 2 || (theme.reward_type === 1 && post.reward)) && !index && !post.no_reward){ %>
|
<div id="reward-btn">
|
||||||
<div id="reward-btn">
|
<%= __('post.reward') %>
|
||||||
打赏
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
<footer class="article-footer">
|
<% } %>
|
||||||
<a data-url="<%- post.permalink %>" data-id="<%= post._id %>"
|
|
||||||
class="article-share-link"><%- theme.share_text %></a>
|
|
||||||
<%- partial('post/tag') %>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
|
<!-- copyright -->
|
||||||
|
<% if (((theme.copyright_type === 2) || (theme.copyright_type === 1 &&
|
||||||
|
post.copyright)) && !index){ %>
|
||||||
|
<div class="declare">
|
||||||
|
<ul class="post-copyright">
|
||||||
|
<li>
|
||||||
|
<i class="ri-copyright-line"></i>
|
||||||
|
<strong><%= __('post.copyright_title') %>: </strong>
|
||||||
|
<% if (post.copyright_content) { %>
|
||||||
|
<%= post.copyright_content %>
|
||||||
|
<% } else { %>
|
||||||
|
<%= __('post.copyright_content') %>
|
||||||
|
<% } %>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<footer class="article-footer">
|
||||||
|
<% if (!index && theme.share_enable){ %> <%- partial('post/share') %> <% }
|
||||||
|
%> <%- partial('post/tag') %>
|
||||||
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<% if (!index){ %>
|
<% if (!index){ %> <%- partial('post/nav') %> <% } %> <% if (theme.valine &&
|
||||||
<%- partial('post/nav') %>
|
theme.valine.enable && !post.no_valine){ %> <%- partial('post/valine', { key:
|
||||||
<% } %>
|
post.slug, title: post.title, url: config.url+url_for(post.path) }) %> <% } %>
|
||||||
|
<% if (is_post()) { %> <%- partial('post/gitalk') %> <% } %> <% if
|
||||||
<% if (theme.valine && theme.valine.enable && !post.no_valine){ %>
|
(theme.minivaline && theme.minivaline.enable && !post.no_minivaline){ %> <%-
|
||||||
<%- partial('post/valine', {
|
partial('post/minivaline') %> <% } %> <% if (is_post()) { %> <%- partial('post/twikoo') %> <% } %>
|
||||||
key: post.slug,
|
</article>
|
||||||
title: post.title,
|
|
||||||
url: config.url+url_for(post.path)
|
|
||||||
}) %>
|
|
||||||
<% } %>
|
|
||||||
|
|
||||||
<% if (is_post()) { %>
|
|
||||||
<%- partial('post/gitalk') %>
|
|
||||||
<% } %>
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<% if (theme.cover.enable) { %>
|
<% if (theme.cover.enable) { %>
|
||||||
<section class="cover">
|
<section class="cover">
|
||||||
<% if (theme.github && theme.github.url){ %>
|
<% if (theme.github.enable && theme.github.url){ %>
|
||||||
<%# "GitHub Ribbons" %>
|
<%# "GitHub Ribbons" %>
|
||||||
<a class="forkMe" href="<%=theme.github.url%>"
|
<a class="forkMe" href="<%=theme.github.url%>"
|
||||||
target="_blank"><img width="149" height="149" src="<%- url_for('images/forkme.png') %>"
|
target="_blank"><img width="149" height="149" src="<%- url_for('images/forkme.png') %>"
|
||||||
@@ -12,7 +12,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="cover-inner text-center text-white">
|
<div class="cover-inner text-center text-white">
|
||||||
<h1><a href="<%- url_for() %>"><%= config.title %></a></h1>
|
<h1><a href="<%- url_for() %>"><%= config.title %></a></h1>
|
||||||
<h2><%= config.subtitle %></h2>
|
<div id="subtitle-box">
|
||||||
|
<% if (theme.subtitle.enable) { %>
|
||||||
|
<span id="subtitle"></span>
|
||||||
|
<% }else{ %>
|
||||||
|
<span id="subtitle"><%= theme.subtitle.text %></span>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<% if (theme.cover.logo) { %>
|
<% if (theme.cover.logo) { %>
|
||||||
<img
|
<img
|
||||||
@@ -28,4 +34,26 @@
|
|||||||
<a href="javascript:void(0)" class="anchor"><i class="ri-arrow-down-line"></i></a>
|
<a href="javascript:void(0)" class="anchor"><i class="ri-arrow-down-line"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
|
<% if (theme.subtitle.enable){ %>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/typed.js@2.0.11/lib/typed.min.js"></script>
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<!-- Subtitle -->
|
||||||
|
<% if (theme.subtitle.enable){ %>
|
||||||
|
<script>
|
||||||
|
try {
|
||||||
|
var typed = new Typed("#subtitle", {
|
||||||
|
strings: ['<%= theme.subtitle.text %>', '<%= theme.subtitle.text2 %>', '<%= theme.subtitle.text3 %>'],
|
||||||
|
startDelay: <%= theme.subtitle.startDelay %>,
|
||||||
|
typeSpeed: <%= theme.subtitle.typeSpeed %>,
|
||||||
|
loop: <%= theme.subtitle.loop %>,
|
||||||
|
backSpeed: <%= theme.subtitle.backSpeed %>,
|
||||||
|
showCursor: <%= theme.subtitle.showCursor %>
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<% } %>
|
46
layout/_partial/broadcast.ejs
Normal file
46
layout/_partial/broadcast.ejs
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<% if (theme.broadcast.type===1 && theme.broadcast.text){ %>
|
||||||
|
<div class="notice" style="margin-top:50px">
|
||||||
|
<i class="ri-heart-fill"></i>
|
||||||
|
<div class="notice-content"><%= theme.broadcast.text %></div>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<% if (theme.broadcast.type===2){ %>
|
||||||
|
<div class="notice" style="margin-top:50px">
|
||||||
|
<i class="ri-heart-fill"></i>
|
||||||
|
<div class="notice-content" id="broad"></div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
fetch('https://v1.hitokoto.cn')
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
document.getElementById("broad").innerHTML = data.hitokoto;
|
||||||
|
})
|
||||||
|
.catch(console.error)
|
||||||
|
</script>
|
||||||
|
<% } %>
|
||||||
|
<style>
|
||||||
|
.notice {
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px dashed #e6e6e6;
|
||||||
|
color: #969696;
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
background: #fbfbfb50;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice i {
|
||||||
|
float: left;
|
||||||
|
color: #999;
|
||||||
|
font-size: 16px;
|
||||||
|
padding-right: 10px;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notice-content {
|
||||||
|
display: initial;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
@@ -1,27 +1,47 @@
|
|||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<div class="outer">
|
<div class="outer">
|
||||||
<ul class="list-inline">
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
©
|
Copyrights ©
|
||||||
<% if (theme.since && !isNaN(theme.since) && theme.since < date(new Date(), 'YYYY')) { %><%- theme.since%>-<% } %><%= date(new Date(), 'YYYY') %>
|
<% if (theme.since && !isNaN(theme.since) && theme.since < date(new Date(), 'YYYY')) { %><%- theme.since%>-<% } %><%= date(new Date(), 'YYYY') %>
|
||||||
<%= config.author || config.title %>
|
<i class="ri-heart-fill heart_icon"></i> <%= config.author || config.title %>
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<% if (theme.pageFooter){ %>
|
<% if (theme.pageFooter){ %>
|
||||||
Powered by
|
|
||||||
<% var hexoLink = '<a href="https://hexo.io" target="_blank">Hexo</a>'; %>
|
<% var hexoLink = '<a href="https://hexo.io" target="_blank">Hexo</a>'; %>
|
||||||
<% var themeLink = '<a href="https://github.com/Shen-Yu/hexo-theme-ayer" target="_blank">Ayer</a>'; %>
|
<% var themeLink = '<a href="https://github.com/Shen-Yu/hexo-theme-ayer" target="_blank">Ayer</a>'; %>
|
||||||
<%- hexoLink %> Theme <%- themeLink %>
|
<%- __('powered_by', hexoLink) %>
|
||||||
|
<span class="division">|</span>
|
||||||
|
<%- __('theme', themeLink) %>
|
||||||
<% } %>
|
<% } %>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="list-inline">
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<% if (theme.busuanzi && theme.busuanzi.enable){ %>
|
<% if (theme.busuanzi && theme.busuanzi.enable){ %>
|
||||||
<%# "不蒜子统计" %>
|
<%# "不蒜子统计" %>
|
||||||
<%- partial('post/busuanzi') %>
|
<%- partial('post/busuanzi') %>
|
||||||
<% } %>
|
<% } %>
|
||||||
</li>
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<% if (theme.icp&&theme.icp.enable){ %>
|
||||||
|
<li>
|
||||||
|
<a href="<%= theme.icp.url %>" target="_black" rel="nofollow"><%= theme.icp.text %></a>
|
||||||
|
</li>
|
||||||
|
<% } %>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<% if (theme.gongan&&theme.gongan.enable){ %>
|
||||||
|
<li>
|
||||||
|
<img src="<%= theme.gongan.img %>"></img>
|
||||||
|
<a href="<%= theme.gongan.url %>" target="_black" rel="nofollow"><%= theme.gongan.text %></a>
|
||||||
|
</li>
|
||||||
|
<% } %>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<!-- cnzz统计 -->
|
<!-- cnzz统计 -->
|
||||||
<% if (theme.cnzz&&theme.cnzz.enable){ %>
|
<% if (theme.cnzz&&theme.cnzz.enable){ %>
|
||||||
|
@@ -1,12 +1,17 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<% if (config.language){ %>
|
||||||
|
<html lang="<%= config.language %>">
|
||||||
|
<% } else { %>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
<% }%>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<% var title = page.title; if (is_archive()) { title = __('archive_a'); if
|
<% var title = page.title; if (is_archive()) { title = __('archive_a'); if
|
||||||
(is_month()) { title += ': ' + page.year + '/' + page.month; } else if
|
(is_month()) { title += ': ' + page.year + '/' + page.month; } else if
|
||||||
(is_year()) { title += ': ' + page.year; } } else if (is_category()) { title
|
(is_year()) { title += ': ' + page.year; } } else if (is_category()) { title
|
||||||
= __('categories.ejs') + ': ' + page.categories; } else if (is_tag()) {
|
= page.category; } else if (is_tag()) {
|
||||||
title = __('tag') + ': ' + page.tag; } %> <% if (page.keywords){ %>
|
title = __('tag') + ': ' + page.tag; } %> <% if (page.keywords){ %>
|
||||||
<meta name="keywords" content="<%= page.keywords %>,<%= config.keywords %>" />
|
<meta name="keywords" content="<%= page.keywords %>,<%= config.keywords %>" />
|
||||||
<% } else if (config.keywords){ %>
|
<% } else if (config.keywords){ %>
|
||||||
@@ -23,9 +28,12 @@
|
|||||||
<% if (theme.favicon){ %>
|
<% if (theme.favicon){ %>
|
||||||
<link rel="shortcut icon" href="<%- theme.favicon %>" />
|
<link rel="shortcut icon" href="<%- theme.favicon %>" />
|
||||||
<% } %>
|
<% } %>
|
||||||
<%- css('css/style') %>
|
<%- css('dist/main') %>
|
||||||
<%- js('/js/pace.min.js') %>
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/css/remixicon.min.css">
|
||||||
|
<%- css('css/custom') %>
|
||||||
|
<% if (theme.progressBar){ %>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/pace-js@1.0.2/pace.min.js"></script>
|
||||||
|
<% } %>
|
||||||
<%- partial('google-analytics') %>
|
<%- partial('google-analytics') %>
|
||||||
<%- partial('baidu-analytics') %>
|
<%- partial('baidu-analytics') %>
|
||||||
</head>
|
</head>
|
||||||
|
11
layout/_partial/katex.ejs
Normal file
11
layout/_partial/katex.ejs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<% if ( theme.katex.enable ) { %>
|
||||||
|
<% if( theme.katex.allpost || page.math ) { %>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css">
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js"></script>
|
||||||
|
<% if ( theme.katex.copy_tex ) { %>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/copy-tex.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/copy-tex.min.css">
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
16
layout/_partial/music.ejs
Normal file
16
layout/_partial/music.ejs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<div id="music">
|
||||||
|
<%# "bottom:120px; left:auto;position:fixed; width:85%" %>
|
||||||
|
<% var defaultHeight = theme.music.type == 1 ? '32' : '66'; %>
|
||||||
|
<% var defaultIframeHeight = theme.music.type == 1 ? '52' : '86'; %>
|
||||||
|
<iframe frameborder="no" border="1" marginwidth="0" marginheight="0" width="200" height="<%=defaultIframeHeight%>"
|
||||||
|
src="//music.163.com/outchain/player?type=2&id=<%=theme.music.id||22707008%>&auto=<%=theme.music.autoPlay?1:0%>&height=<%=defaultHeight%>"></iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#music {
|
||||||
|
position: fixed;
|
||||||
|
right: 15px;
|
||||||
|
bottom: 0;
|
||||||
|
z-index: 998;
|
||||||
|
}
|
||||||
|
</style>
|
@@ -1,18 +1,17 @@
|
|||||||
<% if (post.albums && post.albums.length){ %>
|
<% if (post.albums && post.albums.length){ %>
|
||||||
<div class="article-albums">
|
<div class="article-albums">
|
||||||
<ul class="article-albums-photos" id="basicExample">
|
<ul class="article-albums-photos" id="basicExample">
|
||||||
<% post.albums.forEach(function(photo){ %>
|
<% post.albums.forEach(function(photo){ %>
|
||||||
|
|
||||||
<li class="article-albums-item" data-scroll-reveal>
|
<li class="article-albums-item" data-scroll-reveal>
|
||||||
<a class="article-albums-img fancybox" data-fancybox="images" data-caption="<%- photo[1] %>" href="<%- url_for(photo[0]) %>" rel="gallery_<%= post._id %>" title="<%- photo[1] %>">
|
<img class="lazy" data-original="<%- url_for(photo[0]) %>" itemprop="image" alt="<%- photo[1] %>"
|
||||||
<img class="lazy" data-original="<%- url_for(photo[0]) %>" itemprop="image" alt="<%- photo[1] %>">
|
style="cursor: pointer;">
|
||||||
</a>
|
<% if (photo && photo.length > 1){ %>
|
||||||
<% if (photo && photo.length > 1){ %>
|
<span class="article-albums-caption"> <%- photo[1] %> </span>
|
||||||
<span class="article-albums-caption"> <%- photo[1] %> </span>
|
<% } %>
|
||||||
<% } %>
|
</li>
|
||||||
</li>
|
|
||||||
|
|
||||||
<% }) %>
|
<% }) %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
@@ -1,4 +1,5 @@
|
|||||||
<ul class="list-inline">
|
<span>
|
||||||
<li>PV:<span id="busuanzi_value_page_pv"></span></li>
|
<span><i class="ri-user-3-fill"></i><%- __('site_visitors') %>:<span id="busuanzi_value_site_uv"></span></s>
|
||||||
<li>UV:<span id="busuanzi_value_site_uv"></span></li>
|
<span class="division">|</span>
|
||||||
</ul>
|
<span><i class="ri-eye-fill"></i><%- __('page_views') %>:<span id="busuanzi_value_page_pv"></span></span>
|
||||||
|
</span>
|
54
layout/_partial/post/clipboard.ejs
Normal file
54
layout/_partial/post/clipboard.ejs
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
|
||||||
|
<script>
|
||||||
|
function wait(callback, seconds) {
|
||||||
|
var timelag = null;
|
||||||
|
timelag = window.setTimeout(callback, seconds);
|
||||||
|
}
|
||||||
|
!function (e, t, a) {
|
||||||
|
var initCopyCode = function(){
|
||||||
|
var copyHtml = '';
|
||||||
|
copyHtml += '<button class="btn-copy" data-clipboard-snippet="">';
|
||||||
|
copyHtml += '<i class="ri-file-copy-2-line"></i><span>COPY</span>';
|
||||||
|
copyHtml += '</button>';
|
||||||
|
$(".highlight .code pre").before(copyHtml);
|
||||||
|
$(".article pre code").before(copyHtml);
|
||||||
|
var clipboard = new ClipboardJS('.btn-copy', {
|
||||||
|
target: function(trigger) {
|
||||||
|
return trigger.nextElementSibling;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
clipboard.on('success', function(e) {
|
||||||
|
let $btn = $(e.trigger);
|
||||||
|
$btn.addClass('copied');
|
||||||
|
let $icon = $($btn.find('i'));
|
||||||
|
$icon.removeClass('ri-file-copy-2-line');
|
||||||
|
$icon.addClass('ri-checkbox-circle-line');
|
||||||
|
let $span = $($btn.find('span'));
|
||||||
|
$span[0].innerText = 'COPIED';
|
||||||
|
|
||||||
|
wait(function () { // 等待两秒钟后恢复
|
||||||
|
$icon.removeClass('ri-checkbox-circle-line');
|
||||||
|
$icon.addClass('ri-file-copy-2-line');
|
||||||
|
$span[0].innerText = 'COPY';
|
||||||
|
}, 2000);
|
||||||
|
});
|
||||||
|
clipboard.on('error', function(e) {
|
||||||
|
e.clearSelection();
|
||||||
|
let $btn = $(e.trigger);
|
||||||
|
$btn.addClass('copy-failed');
|
||||||
|
let $icon = $($btn.find('i'));
|
||||||
|
$icon.removeClass('ri-file-copy-2-line');
|
||||||
|
$icon.addClass('ri-time-line');
|
||||||
|
let $span = $($btn.find('span'));
|
||||||
|
$span[0].innerText = 'COPY FAILED';
|
||||||
|
|
||||||
|
wait(function () { // 等待两秒钟后恢复
|
||||||
|
$icon.removeClass('ri-time-line');
|
||||||
|
$icon.addClass('ri-file-copy-2-line');
|
||||||
|
$span[0].innerText = 'COPY';
|
||||||
|
}, 2000);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
initCopyCode();
|
||||||
|
}(window, document);
|
||||||
|
</script>
|
@@ -1,7 +1,7 @@
|
|||||||
<% if (theme.gitalk.enable) { %>
|
<% if (theme.gitalk.enable && post.comments) { %>
|
||||||
<div class="gitalk" id="gitalk-container"></div>
|
<div class="gitalk" id="gitalk-container"></div>
|
||||||
<%- css('https://cdn.jsdelivr.net/npm/gitalk@1.5.0/dist/gitalk.css') %>
|
<%- css('https://cdn.jsdelivr.net/npm/gitalk@1.6.2/dist/gitalk.css') %>
|
||||||
<%- js('https://cdn.jsdelivr.net/npm/gitalk@1.5.0/dist/gitalk.min.js') %>
|
<%- js('https://cdn.jsdelivr.net/npm/gitalk@1.6.2/dist/gitalk.min.js') %>
|
||||||
<%- js('https://cdn.jsdelivr.net/npm/blueimp-md5@2.10.0/js/md5.min.js') %>
|
<%- js('https://cdn.jsdelivr.net/npm/blueimp-md5@2.10.0/js/md5.min.js') %>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var gitalk = new Gitalk({
|
var gitalk = new Gitalk({
|
||||||
@@ -18,4 +18,4 @@
|
|||||||
|
|
||||||
gitalk.render('gitalk-container')
|
gitalk.render('gitalk-container')
|
||||||
</script>
|
</script>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
@@ -1,12 +1,9 @@
|
|||||||
<% if (post.albums && post.albums.length){ %>
|
<% if (post.albums && post.albums.length){ %>
|
||||||
<div class="justified-gallery" id="gallery">
|
<div class="justified-gallery" id="gallery">
|
||||||
<% post.albums.forEach(function(photo){ %>
|
<% post.albums.forEach(function(photo){ %>
|
||||||
<div>
|
<div>
|
||||||
<a class="fancybox" data-fancybox="images" data-caption="<%- photo[1] %>" href="<%- url_for(photo[0]) %>" rel="gallery_<%= post._id %>" title="<%- photo[1] %>">
|
<img src="<%- url_for(photo[0]) %>" itemprop="image" alt="<%- photo[1] %>" style="cursor: pointer;">
|
||||||
<img src="<%- url_for(photo[0]) %>" itemprop="image" alt="<%- photo[1] %>">
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<% }) %>
|
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
77
layout/_partial/post/minivaline.ejs
Normal file
77
layout/_partial/post/minivaline.ejs
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<% if (!index && post.comments){ %>
|
||||||
|
<!-- minivaline评论 -->
|
||||||
|
<div id="mvcomments-box">
|
||||||
|
<div id="mvcomments"></div>
|
||||||
|
</div>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/minivaline@latest"></script>
|
||||||
|
<script>
|
||||||
|
new MiniValine(Object.assign(<%- JSON.stringify(theme.minivaline) %>, {
|
||||||
|
el: '#mvcomments',
|
||||||
|
}));
|
||||||
|
const infoEle = document.querySelector('#mvcomments .info');
|
||||||
|
if (infoEle && infoEle.childNodes && infoEle.childNodes.length > 0) {
|
||||||
|
infoEle.childNodes.forEach(function (item) {
|
||||||
|
item.parentNode.removeChild(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
#mvcomments-box {
|
||||||
|
padding: 5px 30px;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
|
#mvcomments-box {
|
||||||
|
padding: 5px 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine *{
|
||||||
|
color: #f1f1f1!important;
|
||||||
|
}
|
||||||
|
.darkmode .commentTrigger{
|
||||||
|
background-color: #403e3e !important;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vpage .more{
|
||||||
|
background: #21232F
|
||||||
|
}
|
||||||
|
.darkmode img{
|
||||||
|
filter: brightness(30%)
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vlist .vcard .vcomment-body .text-wrapper .vcomment.expand:before{
|
||||||
|
background: linear-gradient(180deg, rgba(246,246,246,0), rgba(0,0,0,0.9))
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vlist .vcard .vcomment-body .text-wrapper .vcomment.expand:after{
|
||||||
|
background: rgba(0,0,0,0.9)
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vlist .vcard .vcomment-body .text-wrapper .vcomment pre{
|
||||||
|
background: #282c34
|
||||||
|
border: 1px solid #282c34
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-area .textarea-wrapper textarea{
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-area .auth-section .input-wrapper input{
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-area .vextra-area .vsmile-icons{
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-wrap{
|
||||||
|
border-color: #b2b2b5;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-wrap:hover{
|
||||||
|
border: 1px dashed #2196f3;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-area .auth-section .input-wrapper{
|
||||||
|
border-bottom: 1px dashed #b2b2b5;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vinputs-area .auth-section .input-wrapper:hover{
|
||||||
|
border-bottom: 1px dashed #2196f3;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vbtn{
|
||||||
|
background-color: transparent!important;
|
||||||
|
}
|
||||||
|
.darkmode .MiniValine .vbtn:hover{
|
||||||
|
border: 1px dashed #2196f3;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<% } %>
|
51
layout/_partial/post/share.ejs
Normal file
51
layout/_partial/post/share.ejs
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<%
|
||||||
|
var sUrl = url.replace(/index\.html$/, '');
|
||||||
|
sUrl = /^(http:|https:)\/\//.test(sUrl) ? sUrl : 'http:' + sUrl;
|
||||||
|
%>
|
||||||
|
<div class="share-btn">
|
||||||
|
<span class="share-sns share-outer">
|
||||||
|
<i class="ri-share-forward-line"></i>
|
||||||
|
<%- theme.share_text %>
|
||||||
|
</span>
|
||||||
|
<div class="share-wrap">
|
||||||
|
<i class="arrow"></i>
|
||||||
|
<div class="share-icons">
|
||||||
|
<% if( theme.share_china ){ %>
|
||||||
|
<a class="weibo share-sns" href="javascript:;" data-type="weibo">
|
||||||
|
<i class="ri-weibo-fill"></i>
|
||||||
|
</a>
|
||||||
|
<a class="weixin share-sns wxFab" href="javascript:;" data-type="weixin">
|
||||||
|
<i class="ri-wechat-fill"></i>
|
||||||
|
</a>
|
||||||
|
<a class="qq share-sns" href="javascript:;" data-type="qq">
|
||||||
|
<i class="ri-qq-fill"></i>
|
||||||
|
</a>
|
||||||
|
<a class="douban share-sns" href="javascript:;" data-type="douban">
|
||||||
|
<i class="ri-douban-line"></i>
|
||||||
|
</a>
|
||||||
|
<!-- <a class="qzone share-sns" href="javascript:;" data-type="qzone">
|
||||||
|
<i class="icon icon-qzone"></i>
|
||||||
|
</a> -->
|
||||||
|
<% } %>
|
||||||
|
<a class="facebook share-sns" href="javascript:;" data-type="facebook">
|
||||||
|
<i class="ri-facebook-circle-fill"></i>
|
||||||
|
</a>
|
||||||
|
<a class="twitter share-sns" href="javascript:;" data-type="twitter">
|
||||||
|
<i class="ri-twitter-fill"></i>
|
||||||
|
</a>
|
||||||
|
<a class="google share-sns" href="javascript:;" data-type="google">
|
||||||
|
<i class="ri-google-fill"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="wx-share-modal">
|
||||||
|
<a class="modal-close" href="javascript:;"><i class="ri-close-circle-line"></i></a>
|
||||||
|
<p>扫一扫,分享到微信</p>
|
||||||
|
<div class="wx-qrcode">
|
||||||
|
<img src="<%- 'qrcode' in locals ? qrcode(sUrl) : '//api.qrserver.com/v1/create-qr-code/?size=150x150&data=' + sUrl %>" alt="微信分享二维码">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="share-mask"></div>
|
@@ -7,11 +7,10 @@
|
|||||||
<% } else if (post.title){ %> <% if (index){ %>
|
<% } else if (post.title){ %> <% if (index){ %>
|
||||||
<h2 itemprop="name">
|
<h2 itemprop="name">
|
||||||
<a class="<%= class_name %>" href="<%- url_for(post.path) %>"
|
<a class="<%= class_name %>" href="<%- url_for(post.path) %>"
|
||||||
><%= post.title %></a
|
><%= post.title %><%- partial('topping') %></a>
|
||||||
>
|
|
||||||
</h2>
|
</h2>
|
||||||
<% } else { %>
|
<% } else { %>
|
||||||
<h1 class="<%= class_name %> sea-center" style="border-left:0" itemprop="name">
|
<h1 class="<%= class_name %> sea-center" style="border-left:0" itemprop="name">
|
||||||
<%= post.title %>
|
<%= post.title %>
|
||||||
</h1>
|
</h1>
|
||||||
<% } %> <%- partial('topping') %> <% } %>
|
<% } %> <% } %>
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
<% if (is_home() && post.top) { %>
|
<% if (is_home() && post.top) { %>
|
||||||
<div class="article-topping">
|
<i class="article-topping"><%= __('post.sticky') %></i>
|
||||||
<i class="ri-umbrella-line"></i>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
<% } %>
|
9
layout/_partial/post/twikoo.ejs
Normal file
9
layout/_partial/post/twikoo.ejs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<% if (!index && theme.twikoo && theme.twikoo.enable){ %>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js"></script>
|
||||||
|
<div id="twikoo" class="twikoo"></div>
|
||||||
|
<script>
|
||||||
|
twikoo.init({
|
||||||
|
envId: "<%- theme.twikoo.envId %>"
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<% } %>
|
@@ -1,51 +1,48 @@
|
|||||||
<% if (!index && theme.leancloud && theme.leancloud.enable){ %>
|
<% if (!index && theme.leancloud && theme.leancloud.enable && post.comments){ %>
|
||||||
<!-- valine评论 -->
|
<!-- valine评论 -->
|
||||||
<div id="vcomments-box">
|
<div id="vcomments-box">
|
||||||
<div id="vcomments">
|
<div id="vcomments"></div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
|
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
|
||||||
<script src='https://cdn.jsdelivr.net/npm/valine@1.3.10/dist/Valine.min.js'></script>
|
<script src="https://cdn.jsdelivr.net/npm/valine@1.4.14/dist/Valine.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
new Valine({
|
new Valine({
|
||||||
el: '#vcomments',
|
el: "#vcomments",
|
||||||
notify: false,
|
app_id: "<%- theme.leancloud.app_id %>",
|
||||||
verify: '<%- theme.leancloud.verify %>',
|
app_key: "<%- theme.leancloud.app_key %>",
|
||||||
app_id: '<%- theme.leancloud.app_id %>',
|
path: window.location.pathname,
|
||||||
app_key: '<%- theme.leancloud.app_key %>',
|
avatar: "<%- theme.valine.avatar %>",
|
||||||
path: window.location.pathname,
|
placeholder: "<%- theme.valine.placeholder %>",
|
||||||
avatar: '<%- theme.valine.avatar %>',
|
recordIP: true,
|
||||||
placeholder: '<%- theme.valine.placeholder %>',
|
});
|
||||||
recordIP: true
|
const infoEle = document.querySelector("#vcomments .info");
|
||||||
|
if (infoEle && infoEle.childNodes && infoEle.childNodes.length > 0) {
|
||||||
|
infoEle.childNodes.forEach(function (item) {
|
||||||
|
item.parentNode.removeChild(item);
|
||||||
});
|
});
|
||||||
const infoEle = document.querySelector('#vcomments .info');
|
}
|
||||||
if (infoEle && infoEle.childNodes && infoEle.childNodes.length > 0) {
|
|
||||||
infoEle.childNodes.forEach(function (item) {
|
|
||||||
item.parentNode.removeChild(item);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
#vcomments-box {
|
||||||
|
padding: 5px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
#vcomments-box {
|
#vcomments-box {
|
||||||
padding: 5px 30px;
|
padding: 5px 0px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 800px) {
|
#vcomments-box #vcomments {
|
||||||
#vcomments-box {
|
background-color: #fff;
|
||||||
padding: 5px 0px;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#vcomments-box #vcomments {
|
.v .vlist .vcard .vh {
|
||||||
background-color: #fff;
|
padding-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v .vlist .vcard .vh {
|
.v .vlist .vcard {
|
||||||
padding-right: 20px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v .vlist .vcard {
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
@@ -3,8 +3,8 @@
|
|||||||
<span class="post-time">
|
<span class="post-time">
|
||||||
<span class="post-meta-item-icon">
|
<span class="post-meta-item-icon">
|
||||||
<i class="ri-quill-pen-line"></i>
|
<i class="ri-quill-pen-line"></i>
|
||||||
<span class="post-meta-item-text"> 字数统计:</span>
|
<span class="post-meta-item-text"> <%= __('post.word_count') %>:</span>
|
||||||
<span class="post-count"><%= wordcount(post.content) %>字</span>
|
<span class="post-count"><%= wordcount(post.content) %></span>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
@@ -12,8 +12,8 @@
|
|||||||
|
|
|
|
||||||
<span class="post-meta-item-icon">
|
<span class="post-meta-item-icon">
|
||||||
<i class="ri-book-open-line"></i>
|
<i class="ri-book-open-line"></i>
|
||||||
<span class="post-meta-item-text"> 阅读时长≈</span>
|
<span class="post-meta-item-text"> <%= __('post.read_time') %>≈</span>
|
||||||
<span class="post-count"><%= min2read(post.content) %>分钟</span>
|
<span class="post-count"><%= min2read(post.content) %> <%= __('post.minutes') %></span>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,3 +1,8 @@
|
|||||||
<div class="totop" id="totop">
|
<div class="totop" id="totop">
|
||||||
<i class="ri-arrow-up-line"></i>
|
<i class="ri-arrow-up-line"></i>
|
||||||
</div>
|
</div>
|
||||||
|
<% if (theme.darkmode){ %>
|
||||||
|
<div class="todark" id="todark">
|
||||||
|
<i class="ri-moon-line"></i>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
@@ -66,7 +66,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.css">
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/default-skin/default-skin.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/default-skin/default-skin.min.css">
|
||||||
<script src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe-ui-default.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe-ui-default.min.js"></script>
|
||||||
|
|
||||||
|
@@ -1,17 +1,8 @@
|
|||||||
<section class="outer">
|
<section class="outer">
|
||||||
<% if (site.categories.length){ %>
|
<% if (site.categories.length){ %>
|
||||||
<h1 class="page-type-title"><%= __('categories') %></h1>
|
<h1 class="page-type-title"><%= __('categories') %></h1>
|
||||||
<!-- <%- list_categories({show_count: theme.show_count}) %> -->
|
<div class="categories-box">
|
||||||
<ul class="category-list">
|
<%- list_categories() %>
|
||||||
<% site.categories.sort('name').each(function(item){ %>
|
</div>
|
||||||
<% if(item.posts.length){ %>
|
|
||||||
<a class="category-list-link" href="<%- config.root %><%- item.path %>" title="<%= item.name %>">
|
|
||||||
<li class="category-list-item">
|
|
||||||
<%= item.name %><i><%= item.posts.length %></i>
|
|
||||||
</li>
|
|
||||||
</a>
|
|
||||||
<% } %>
|
|
||||||
<% }); %>
|
|
||||||
</ul>
|
|
||||||
<% } %>
|
<% } %>
|
||||||
</section>
|
</section>
|
20
layout/friends.ejs
Normal file
20
layout/friends.ejs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<section class="outer">
|
||||||
|
<% if(theme.friends_link && theme.friends_link.length != 0){ %>
|
||||||
|
<h1 class="page-type-title"><%= __('friends') %></h1>
|
||||||
|
<ul id="friends_link">
|
||||||
|
<% for (var i in theme.friends_link){ %>
|
||||||
|
<li class="friends_li">
|
||||||
|
<a href="<%- url_for(theme.friends_link[i].url) %>" target="_blank" class="search-title"
|
||||||
|
<% if (theme.friends_link[i].description){ %>title="<%= theme.friends_link[i].description %>" <% } %>>
|
||||||
|
<% if (theme.friends_link[i].img){ %>
|
||||||
|
<img src="<%- url_for(theme.friends_link[i].img) %>">
|
||||||
|
<% } else { %>
|
||||||
|
<i class="ri-user-fill"></i>
|
||||||
|
<% } %>
|
||||||
|
<%= i %>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<% } %>
|
||||||
|
</ul>
|
||||||
|
<%}%>
|
||||||
|
</section>
|
@@ -2,18 +2,44 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<main class="content">
|
<% if (theme.click_effect===2){ %>
|
||||||
|
<canvas class="fireworks"></canvas>
|
||||||
|
<style>
|
||||||
|
.fireworks {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: 99999;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<% } %>
|
||||||
|
<% if (theme.click_effect===3){ %>
|
||||||
|
<canvas width="1777" height="841"
|
||||||
|
style="position: fixed; left: 0px; top: 0px; z-index: 99999; pointer-events: none;"></canvas>
|
||||||
|
<% } %>
|
||||||
|
<main class="content on">
|
||||||
<%- body %>
|
<%- body %>
|
||||||
<%- partial('_partial/footer', null, {cache: !config.relative_link}) %>
|
<%- partial('_partial/footer', null, {cache: !config.relative_link}) %>
|
||||||
<div class="to_top">
|
<div class="float_btns">
|
||||||
<%- partial('_partial/totop') %>
|
<%- partial('_partial/totop') %>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<aside class="sidebar">
|
<aside class="sidebar on">
|
||||||
<%- partial('_partial/sidebar') %>
|
<%- partial('_partial/sidebar') %>
|
||||||
</aside>
|
</aside>
|
||||||
<%- partial('_partial/modal') %>
|
<script>
|
||||||
<%- partial('_partial/after-footer') %>
|
if (window.matchMedia("(max-width: 768px)").matches) {
|
||||||
|
document.querySelector('.content').classList.remove('on');
|
||||||
|
document.querySelector('.sidebar').classList.remove('on');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<%- partial('_partial/modal') %>
|
||||||
|
<%- partial('_partial/after-footer') %>
|
||||||
|
|
||||||
|
<% if (theme.music&&theme.music.enable){ %>
|
||||||
|
<%- partial('_partial/music') %>
|
||||||
|
<% } %>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
4
layout/plain-page.ejs
Normal file
4
layout/plain-page.ejs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<section class="outer">
|
||||||
|
<h1 class="page-type-title"><%= page.title %></h1>
|
||||||
|
<%- page.content %>
|
||||||
|
</section>
|
BIN
logo.png
BIN
logo.png
Binary file not shown.
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 1.7 KiB |
12
move_config.js
Normal file
12
move_config.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
|
if (fs.existsSync('../hexo/package.json')) {
|
||||||
|
const version = JSON.parse(fs.readFileSync('../hexo/package.json')).version
|
||||||
|
if (version.split('.')[0] === '5') {
|
||||||
|
const configPath = '../../_config.ayer.yml'
|
||||||
|
if (!fs.existsSync(configPath)) {
|
||||||
|
fs.writeFileSync(configPath, fs.readFileSync('./_config.yml'))
|
||||||
|
}
|
||||||
|
fs.unlinkSync('./_config.yml')
|
||||||
|
}
|
||||||
|
}
|
43
package.json
43
package.json
@@ -1,20 +1,37 @@
|
|||||||
{
|
{
|
||||||
"name": "ayer",
|
"name": "hexo-theme-ayer",
|
||||||
"version": "1.0.0",
|
"version": "1.8.15",
|
||||||
"description": "ayer 是一个轻量优雅的 Hexo 主题",
|
"description": "a clean and elegant theme for hexo.",
|
||||||
"main": "index.js",
|
|
||||||
"dependencies": {
|
|
||||||
"stylint": "^2.0.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "stylint source/css/style.styl -c .stylintrc"
|
"dev": "parcel serve source-src/main.js -d source/dist",
|
||||||
|
"build": "rimraf source/dist && parcel build source-src/main.js -d source/dist --no-source-maps",
|
||||||
|
"postinstall": "node ./move_config.js",
|
||||||
|
"test": "stylint source-src/css/style.styl -c .stylintrc"
|
||||||
|
},
|
||||||
|
"source": "source-src/main.js",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/Shen-Yu/hexo-theme-ayer.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ayer",
|
|
||||||
"hexo",
|
"hexo",
|
||||||
"light"
|
"theme",
|
||||||
|
"blog",
|
||||||
|
"ayer"
|
||||||
],
|
],
|
||||||
"author": "shenyu",
|
"author": "Shen-Yu <shenyu@hotmail.com>",
|
||||||
"license": "ISC"
|
"license": "SATA",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/Shen-Yu/hexo-theme-ayer/issues",
|
||||||
|
"email": "shenyu@hotmail.com"
|
||||||
|
},
|
||||||
|
"homepage": "https://shen-yu.gitee.io/",
|
||||||
|
"devDependencies": {
|
||||||
|
"autoprefixer": "^9.8.6",
|
||||||
|
"cssnano": "^4.1.10",
|
||||||
|
"parcel-bundler": "^1.12.4",
|
||||||
|
"parcel-plugin-bundle-visualiser": "^1.2.0",
|
||||||
|
"postcss-modules": "^1.5.0",
|
||||||
|
"stylint": "^2.0.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 241 KiB After Width: | Height: | Size: 232 KiB |
@@ -1,8 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
// 生成meta `generator`
|
// 生成meta `generator`
|
||||||
meta_generator: true
|
meta_generator: true
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@@ -9,7 +9,7 @@ function hexoMetaGeneratorInject(data) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const hexoGeneratorTag = `\n <meta name="generator" content="hexo-theme-yilia-plus">`;
|
const hexoGeneratorTag = `\n <meta name="generator" content="hexo-theme-ayer">`;
|
||||||
|
|
||||||
return data.replace('</title>', '</title>' + hexoGeneratorTag);
|
return data.replace('</title>', '</title>' + hexoGeneratorTag);
|
||||||
}
|
}
|
||||||
|
38
source-src/css/_darkmode.styl
Normal file
38
source-src/css/_darkmode.styl
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
darkmode()
|
||||||
|
background: rgba(0,0,0,.6)
|
||||||
|
*
|
||||||
|
color: #f2f2f2
|
||||||
|
.article-entry code
|
||||||
|
background: darken(#ddd,10%) !important
|
||||||
|
color: #c7254e !important
|
||||||
|
.article-header .article-title,.share-outer i,.category-list .category-list-item i,.category-list a:hover .category-list-item,.article-date, .article-category .article-category-link, .archive-year-wrap .archive-year, .archive-article-date,a.toc-link,.tag-list > .tag-list-item:before,.article-tag-list:before
|
||||||
|
color: darken(#fff,10%) !important
|
||||||
|
.share-icons a i,.float_btns i,#reward .reward-p,#reward .reward-p i,.local-search-input
|
||||||
|
color: darken(#999,20%) !important
|
||||||
|
.is-position-fixed
|
||||||
|
background-color transparent
|
||||||
|
.v *
|
||||||
|
color: #555 !important
|
||||||
|
.tag-list > .tag-list-item .tag-list-link,.article-tag-list .article-tag-list-link
|
||||||
|
background: darken(#fff,10%) !important
|
||||||
|
color: #555 !important
|
||||||
|
#vcomments-box #vcomments
|
||||||
|
background-color rgba(255,255,255,.1) !important
|
||||||
|
*
|
||||||
|
color #f1f1f1 !important
|
||||||
|
.v .vbtn
|
||||||
|
background-color: transparent !important
|
||||||
|
.v .vlist .vcard .vhead .vsys
|
||||||
|
border: 1px solid #f1f1f1 !important
|
||||||
|
background-color: transparent !important
|
||||||
|
input::-webkit-input-placeholder
|
||||||
|
color: #ccc;
|
||||||
|
input::-moz-input-placeholder
|
||||||
|
color: #ccc;
|
||||||
|
input::-ms-input-placeholder
|
||||||
|
color: #ccc;
|
||||||
|
.categories-box a
|
||||||
|
color: #f2f2f2;
|
||||||
|
#friends_link .friends_li a
|
||||||
|
background-color rgba(255,255,255,.15)
|
||||||
|
color: #fff;
|
@@ -9,7 +9,7 @@ $block
|
|||||||
|
|
||||||
$base-style
|
$base-style
|
||||||
h1, h2, h3, h4, h5, h6
|
h1, h2, h3, h4, h5, h6
|
||||||
margin 1.5rem 0
|
margin 2.5rem 0 1.5rem
|
||||||
hr
|
hr
|
||||||
height border-width
|
height border-width
|
||||||
background-color border-color
|
background-color border-color
|
||||||
@@ -48,17 +48,21 @@ $base-style
|
|||||||
border none
|
border none
|
||||||
table
|
table
|
||||||
width 100%
|
width 100%
|
||||||
|
max-width 70rem
|
||||||
|
border 1px solid #dedede
|
||||||
|
margin 15px auto
|
||||||
border-collapse collapse
|
border-collapse collapse
|
||||||
vertical-align middle
|
|
||||||
empty-cells show
|
empty-cells show
|
||||||
text-align left
|
th,td
|
||||||
th, td, &
|
border 1px solid #dedede
|
||||||
border border-width border-color solid
|
padding 5px 10px
|
||||||
th, td
|
th
|
||||||
padding 1rem 1.5rem
|
font-weight bold
|
||||||
tbody
|
text-align center !important
|
||||||
tr:nth-child(2n)
|
background rgba(158, 188, 226, .2)
|
||||||
background-color transparent
|
white-space nowrap
|
||||||
|
td:nth-child(1)
|
||||||
|
white-space nowrap
|
||||||
|
|
||||||
blockquote
|
blockquote
|
||||||
display block
|
display block
|
@@ -28,8 +28,17 @@ body
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
h1
|
h1
|
||||||
font-size 2em
|
font-size 30px
|
||||||
margin 0.67em 0
|
h2
|
||||||
|
font-size 28px
|
||||||
|
h3
|
||||||
|
font-size 26px
|
||||||
|
h4
|
||||||
|
font-size 24px
|
||||||
|
h5
|
||||||
|
font-size 21px
|
||||||
|
h6
|
||||||
|
font-size 18px
|
||||||
|
|
||||||
/* Grouping content
|
/* Grouping content
|
||||||
========================================================================== */
|
========================================================================== */
|
15
source-src/css/_partial/ads.styl
Normal file
15
source-src/css/_partial/ads.styl
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
.ads
|
||||||
|
position absolute
|
||||||
|
right 0
|
||||||
|
top 50px
|
||||||
|
z-index 2
|
||||||
|
transform translateX(110%)
|
||||||
|
ul,li
|
||||||
|
list-unstyled()
|
||||||
|
img
|
||||||
|
display block
|
||||||
|
margin-bottom 15px
|
||||||
|
|
||||||
|
@media (max-width: 768px)
|
||||||
|
.ads
|
||||||
|
display none
|
@@ -70,9 +70,10 @@
|
|||||||
|
|
||||||
.page-nav
|
.page-nav
|
||||||
clearfix()
|
clearfix()
|
||||||
margin: 3rem auto
|
margin: 3rem auto 5rem
|
||||||
text-align: center
|
text-align: center
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
|
font-size: 115%
|
||||||
a, span
|
a, span
|
||||||
padding: 1rem 1.5rem
|
padding: 1rem 1.5rem
|
||||||
line-height: 1
|
line-height: 1
|
||||||
@@ -80,8 +81,12 @@
|
|||||||
text-decoration: none
|
text-decoration: none
|
||||||
.prev
|
.prev
|
||||||
float: left
|
float: left
|
||||||
|
border-radius: 6px
|
||||||
|
border: 1px solid
|
||||||
.next
|
.next
|
||||||
float: right
|
float: right
|
||||||
|
border-radius: 6px
|
||||||
|
border: 1px solid
|
||||||
.page-number
|
.page-number
|
||||||
display: inline-block
|
display: inline-block
|
||||||
@media mq-mobile
|
@media mq-mobile
|
@@ -16,13 +16,17 @@
|
|||||||
// overflow hidden
|
// overflow hidden
|
||||||
|
|
||||||
.article-topping
|
.article-topping
|
||||||
position absolute
|
display inline-block
|
||||||
top 0
|
margin-left 10px
|
||||||
left -3rem
|
padding 0 10px
|
||||||
color: #ea434a
|
border-radius 4px
|
||||||
&>i
|
font-style normal
|
||||||
font-size 2rem
|
font-size 12px
|
||||||
line-height 1.7
|
background-color #ea434a
|
||||||
|
color #fff
|
||||||
|
height 22px
|
||||||
|
line-height 24px
|
||||||
|
transform translateY(-8px)
|
||||||
|
|
||||||
|
|
||||||
.article-meta
|
.article-meta
|
||||||
@@ -52,8 +56,9 @@
|
|||||||
margin-left 0
|
margin-left 0
|
||||||
|
|
||||||
.article-entry
|
.article-entry
|
||||||
font-size 110%
|
font-size 103%
|
||||||
margin-top .5rem
|
margin-top .5rem
|
||||||
|
line-height 1.6
|
||||||
clearfix()
|
clearfix()
|
||||||
@extend $base-style
|
@extend $base-style
|
||||||
color body-color
|
color body-color
|
||||||
@@ -94,7 +99,7 @@
|
|||||||
margin 0
|
margin 0
|
||||||
.article-title
|
.article-title
|
||||||
display block
|
display block
|
||||||
font-size 1.8em
|
font-size 34px
|
||||||
font-weight bold
|
font-weight bold
|
||||||
margin-bottom 3rem
|
margin-bottom 3rem
|
||||||
text-decoration none
|
text-decoration none
|
||||||
@@ -104,7 +109,16 @@
|
|||||||
|
|
||||||
.article-footer
|
.article-footer
|
||||||
clearfix()
|
clearfix()
|
||||||
margin-top 3rem
|
|
||||||
|
.declare
|
||||||
|
margin 0 0 1rem
|
||||||
|
padding-bottom 1rem
|
||||||
|
color #999
|
||||||
|
border-bottom 1px solid #f6f6f6
|
||||||
|
ul
|
||||||
|
list-style none
|
||||||
|
li
|
||||||
|
list-style none
|
||||||
|
|
||||||
// Tags
|
// Tags
|
||||||
.article-tag-list
|
.article-tag-list
|
||||||
@@ -151,9 +165,9 @@
|
|||||||
.article-nav
|
.article-nav
|
||||||
clearfix()
|
clearfix()
|
||||||
position relative
|
position relative
|
||||||
padding-top 3rem
|
padding-top 1.5rem
|
||||||
margin-top 5rem
|
margin 1rem 0 2rem
|
||||||
border-top border-width border-color solid
|
border-top border-width solid #eee
|
||||||
|
|
||||||
.article-nav-link
|
.article-nav-link
|
||||||
display block
|
display block
|
@@ -2,11 +2,9 @@
|
|||||||
.article
|
.article
|
||||||
padding 4.5rem 0
|
padding 4.5rem 0
|
||||||
&:not(:last-child)
|
&:not(:last-child)
|
||||||
border-bottom border-width border-color solid
|
border-bottom border-width #ddd solid
|
||||||
.article-entry, .article-footer
|
|
||||||
margin-top 0
|
|
||||||
.article-entry
|
.article-entry
|
||||||
margin 1rem 0
|
margin-top 1rem
|
||||||
padding 0 2rem 2rem
|
padding 0 2rem 2rem
|
||||||
border 1px dashed lighten(tag-color,80%)
|
border 1px dashed lighten(tag-color,80%)
|
||||||
.article-more-link
|
.article-more-link
|
||||||
@@ -18,4 +16,6 @@
|
|||||||
color white !important
|
color white !important
|
||||||
text-decoration none
|
text-decoration none
|
||||||
.article-gallery
|
.article-gallery
|
||||||
margin-top 1.5rem
|
margin-top 1.5rem
|
||||||
|
.article-footer
|
||||||
|
margin-top 1rem
|
@@ -25,10 +25,12 @@
|
|||||||
left 50%
|
left 50%
|
||||||
transform translate(-50%, -100%)
|
transform translate(-50%, -100%)
|
||||||
h1
|
h1
|
||||||
|
font-family: Titillium Web,PingFang SC,Hiragino Sans GB,"Microsoft JhengHei","Microsoft YaHei",Helvetica Neue,Helvetica,Arial,sans-serif
|
||||||
font-size 7rem
|
font-size 7rem
|
||||||
margin 0
|
margin 0
|
||||||
opacity .95
|
opacity .95
|
||||||
h2
|
#subtitle-box
|
||||||
|
font-family: Titillium Web,PingFang SC,Hiragino Sans GB,"Microsoft JhengHei","Microsoft YaHei",Helvetica Neue,Helvetica,Arial,sans-serif
|
||||||
font-size 3rem
|
font-size 3rem
|
||||||
margin .5rem 0 1.5rem
|
margin .5rem 0 1.5rem
|
||||||
a, &
|
a, &
|
||||||
@@ -53,11 +55,11 @@
|
|||||||
&:hover
|
&:hover
|
||||||
color sea
|
color sea
|
||||||
|
|
||||||
.to_top
|
.float_btns
|
||||||
position fixed
|
position fixed
|
||||||
bottom 10rem
|
bottom 10rem
|
||||||
right 50px
|
right 50px
|
||||||
z-index 9
|
z-index 9996
|
||||||
text-align center
|
text-align center
|
||||||
transform scale(1.2)
|
transform scale(1.2)
|
||||||
|
|
||||||
@@ -84,8 +86,8 @@
|
|||||||
width 100%
|
width 100%
|
||||||
h1
|
h1
|
||||||
font-size 4.5rem
|
font-size 4.5rem
|
||||||
h2
|
#subtitle-box
|
||||||
font-size 2rem
|
font-size 2rem
|
||||||
|
|
||||||
.to_top
|
.float_btns
|
||||||
right 10px
|
right 10px
|
52
source-src/css/_partial/categories.styl
Normal file
52
source-src/css/_partial/categories.styl
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
// Categories
|
||||||
|
.categories-box
|
||||||
|
max-width 320px
|
||||||
|
margin-right -.5rem
|
||||||
|
margin-left -.5rem
|
||||||
|
border-left 1px solid #eee
|
||||||
|
span
|
||||||
|
padding-left: 5px;
|
||||||
|
color: #aaa;
|
||||||
|
font-size: 14px
|
||||||
|
ul li, ol li
|
||||||
|
list-unstyled()
|
||||||
|
margin: 15px 0;
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
word-wrap: break-word;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
&:last-child
|
||||||
|
margin-bottom 0
|
||||||
|
border-bottom 0 solid #000
|
||||||
|
i
|
||||||
|
font-style normal
|
||||||
|
margin-left 10px
|
||||||
|
color: darken(water,45%)
|
||||||
|
a
|
||||||
|
display inline-block
|
||||||
|
vertical-align middle
|
||||||
|
text-decoration: none
|
||||||
|
color: body-color
|
||||||
|
&:hover
|
||||||
|
opacity .8
|
||||||
|
&:before
|
||||||
|
content "\efde"
|
||||||
|
font-family remixicon
|
||||||
|
margin-right .5rem
|
||||||
|
display inline-block
|
||||||
|
vertical-align middle
|
||||||
|
ul ul,ol ul,ul ol,ol ol
|
||||||
|
list-unstyled()
|
||||||
|
margin 0 20px
|
||||||
|
ul ul li,ol ul li,ul ol li,ol ol li
|
||||||
|
list-unstyled()
|
||||||
|
border: none;
|
||||||
|
padding-bottom: 0;
|
||||||
|
.category-list-count:before, .tag-list-count:before, .archive-list-count:before
|
||||||
|
content: "(";
|
||||||
|
.category-list-count:after, .tag-list-count:after, .archive-list-count:after
|
||||||
|
content: ")";
|
||||||
|
|
||||||
|
|
50
source-src/css/_partial/footer.styl
Normal file
50
source-src/css/_partial/footer.styl
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
@keyframes footerHeartBeat
|
||||||
|
0%
|
||||||
|
transform: scale(1)
|
||||||
|
50%
|
||||||
|
transform: scale(1.2)
|
||||||
|
100%
|
||||||
|
transform: scale(1)
|
||||||
|
|
||||||
|
.footer
|
||||||
|
border-top 2px solid #f6f6f6
|
||||||
|
padding 3rem 0
|
||||||
|
font-size 115%
|
||||||
|
.outer
|
||||||
|
&>ul
|
||||||
|
position relative
|
||||||
|
display flex
|
||||||
|
justify-content center
|
||||||
|
li
|
||||||
|
display inline-block
|
||||||
|
padding .3rem 0
|
||||||
|
a
|
||||||
|
text-decoration none
|
||||||
|
.division
|
||||||
|
display inline
|
||||||
|
margin 0 5px
|
||||||
|
i
|
||||||
|
margin 0 2px
|
||||||
|
font-style normal
|
||||||
|
transform translateY(2px)
|
||||||
|
span
|
||||||
|
margin-right 6px
|
||||||
|
|
||||||
|
.heart_icon
|
||||||
|
display: inline-block;
|
||||||
|
margin: 0 0.4rem;
|
||||||
|
font-size: 1em;
|
||||||
|
color: #f00;
|
||||||
|
-webkit-animation: footerHeartBeat 1.2s infinite;
|
||||||
|
-moz-animation: footerHeartBeat 1.2s infinite;
|
||||||
|
-o-animation: footerHeartBeat 1.2s infinite;
|
||||||
|
-ms-animation: footerHeartBeat 1.2s infinite;
|
||||||
|
animation: footerHeartBeat 1.2s infinite;
|
||||||
|
animation-duration: 1.2s;
|
||||||
|
animation-timing-function: ease;
|
||||||
|
animation-delay: 0s;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: normal;
|
||||||
|
animation-fill-mode: none;
|
||||||
|
animation-play-state: running;
|
||||||
|
animation-name: footerHeartBeat;
|
29
source-src/css/_partial/friends.styl
Normal file
29
source-src/css/_partial/friends.styl
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
// friends
|
||||||
|
#friends_link
|
||||||
|
.friends_li
|
||||||
|
list-style none
|
||||||
|
float left
|
||||||
|
a
|
||||||
|
padding 15px 25px
|
||||||
|
display flex
|
||||||
|
align-items center
|
||||||
|
justify-content space-between
|
||||||
|
font-size 17px
|
||||||
|
text-decoration none
|
||||||
|
background-color rgba(6,129,208,.1)
|
||||||
|
color #000
|
||||||
|
border-radius 6px
|
||||||
|
margin-right 20px
|
||||||
|
margin-bottom 20px
|
||||||
|
img
|
||||||
|
display inline-block
|
||||||
|
width 40px
|
||||||
|
height 40px
|
||||||
|
border-radius 50%
|
||||||
|
margin-right 10px
|
||||||
|
i
|
||||||
|
font-size 25px
|
||||||
|
width 40px
|
||||||
|
height 40px
|
||||||
|
&:hover
|
||||||
|
background-color rgba(6,129,208,.15)
|
260
source-src/css/_partial/highlight.styl
Normal file
260
source-src/css/_partial/highlight.styl
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
highlight-background = #2d2d2d
|
||||||
|
highlight-code = #f2f2f2
|
||||||
|
highlight-code-color = #c7254e
|
||||||
|
highlight-current-line = grey
|
||||||
|
highlight-selection = #000
|
||||||
|
highlight-foreground = #dedede
|
||||||
|
highlight-comment = #8e908c
|
||||||
|
highlight-red = #f2777a
|
||||||
|
highlight-orange = #f99157
|
||||||
|
highlight-yellow = #ffcc66
|
||||||
|
highlight-green = #99cc99
|
||||||
|
highlight-aqua = #66cccc
|
||||||
|
highlight-blue = #6699cc
|
||||||
|
highlight-purple = #cc99cc
|
||||||
|
|
||||||
|
.article-entry pre,
|
||||||
|
.article-entry .highlight {
|
||||||
|
background: highlight-background;
|
||||||
|
margin: 10px 0;
|
||||||
|
padding: 10px 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-x: auto;
|
||||||
|
color: highlight-foreground;
|
||||||
|
font-size: 0.9em;
|
||||||
|
line-height: 1.5;
|
||||||
|
|
||||||
|
/** 滚动条整体部分 */
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
height: 10px;
|
||||||
|
width: 7px;
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
/* 高宽分别对应横竖滚动条的尺寸 */
|
||||||
|
/* width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
background: #ccc;
|
||||||
|
border-radius: 0; */
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-scrollbar:hover {
|
||||||
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 滚动条里面小方块 */
|
||||||
|
&::-webkit-scrollbar-thumb {
|
||||||
|
background: rgba(0, 0, 0, 0.3);
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
-ms-border-radius: 6px;
|
||||||
|
-o-border-radius: 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-scrollbar-thumb:hover {
|
||||||
|
-webkit-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
/* Webkit browsers */
|
||||||
|
-moz-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
/* Firefox */
|
||||||
|
-ms-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
/* IE9 */
|
||||||
|
-o-box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
/* Opera(Old) */
|
||||||
|
box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.25);
|
||||||
|
/* IE9+, News */
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 滚动条里面的轨道 */
|
||||||
|
&::-webkit-scrollbar-track {
|
||||||
|
/* box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); */
|
||||||
|
background: #ededed;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight .gutter pre,
|
||||||
|
.article-entry .highlight .gutter pre .line,
|
||||||
|
.article-entry .gist .gist-file .gist-data .line-numbers {
|
||||||
|
/* color: #666; */
|
||||||
|
color: highlight-current-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry pre,
|
||||||
|
.article-entry code {
|
||||||
|
font-family: Consolas,Monaco,"Andale Mono","Ubuntu Mono",monospace
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry code {
|
||||||
|
background: #eee;
|
||||||
|
color: highlight-code-color;
|
||||||
|
padding: 0 0.3em;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry pre code {
|
||||||
|
background: none;
|
||||||
|
text-shadow: none;
|
||||||
|
padding: 0;
|
||||||
|
color: highlight-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight {
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight pre {
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight table {
|
||||||
|
margin: 0;
|
||||||
|
width: auto;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight td {
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight figcaption {
|
||||||
|
color: highlight-comment;
|
||||||
|
line-height: 1em;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight figcaption:before,
|
||||||
|
.article-entry .highlight figcaption:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight figcaption:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight figcaption a {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight .gutter pre {
|
||||||
|
text-align: right;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight .gutter pre .line {
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .highlight .line {
|
||||||
|
color: highlight-foreground;
|
||||||
|
min-height: 19px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist {
|
||||||
|
margin: 0 -20px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #ddd;
|
||||||
|
border-width: 1px 0;
|
||||||
|
background: #272822;
|
||||||
|
padding: 15px 20px 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file {
|
||||||
|
border: none;
|
||||||
|
font-family: "Source Code Pro", Consolas, Monaco, Menlo, Consolas, monospace;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .gist-data {
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .gist-data .line-numbers {
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
padding: 0 20px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .gist-data .line-data {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .highlight {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .gist-meta {
|
||||||
|
background: #272822;
|
||||||
|
color: highlight-comment;
|
||||||
|
font: 0.85em "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
text-shadow: 0 0;
|
||||||
|
padding: 0;
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .gist-meta a {
|
||||||
|
color: #258fb8;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-entry .gist .gist-file .gist-meta a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .comment {
|
||||||
|
/* color: #75715e; */
|
||||||
|
color: highlight-green
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .keyword,
|
||||||
|
pre .function .keyword,
|
||||||
|
pre .class .params {
|
||||||
|
color: #66d9ef;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .tag,
|
||||||
|
pre .doctype,
|
||||||
|
pre .params,
|
||||||
|
pre .function,
|
||||||
|
pre .css .value {
|
||||||
|
color: highlight-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .css~* .tag,
|
||||||
|
pre .title,
|
||||||
|
pre .at_rule,
|
||||||
|
pre .at_rule .keyword,
|
||||||
|
pre .preprocessor,
|
||||||
|
pre .preprocessor .keyword {
|
||||||
|
color: #f92672;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .attribute,
|
||||||
|
pre .built_in,
|
||||||
|
pre .class,
|
||||||
|
pre .css~* .class,
|
||||||
|
pre .function .title {
|
||||||
|
color: #a6e22e;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .value,
|
||||||
|
pre .string {
|
||||||
|
color: highlight-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .number {
|
||||||
|
color: highlight-purple
|
||||||
|
}
|
||||||
|
|
||||||
|
pre .id,
|
||||||
|
pre .css~* .id {
|
||||||
|
color: #fd971f;
|
||||||
|
}
|
@@ -14,8 +14,7 @@
|
|||||||
display inline-block
|
display inline-block
|
||||||
overflow hidden
|
overflow hidden
|
||||||
background gray /* To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */
|
background gray /* To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */
|
||||||
filter "alpha(opacity=10)"
|
opacity 1
|
||||||
opacity 0.1
|
|
||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
> img, > a > img, > svg, > a > svg
|
> img, > a > img, > svg, > a > svg
|
||||||
@@ -25,8 +24,7 @@
|
|||||||
margin 0
|
margin 0
|
||||||
padding 0
|
padding 0
|
||||||
border none
|
border none
|
||||||
filter "alpha(opacity=0)"
|
opacity 1
|
||||||
opacity 0
|
|
||||||
> .caption
|
> .caption
|
||||||
display none
|
display none
|
||||||
position absolute
|
position absolute
|
||||||
@@ -40,11 +38,9 @@
|
|||||||
&.caption-visible
|
&.caption-visible
|
||||||
display initial
|
display initial
|
||||||
> .jg-entry-visible
|
> .jg-entry-visible
|
||||||
filter "alpha(opacity=100)"
|
|
||||||
opacity 1
|
opacity 1
|
||||||
background none
|
background none
|
||||||
> img, > a > img, > svg, > a > svg
|
> img, > a > img, > svg, > a > svg
|
||||||
filter "alpha(opacity=100)"
|
|
||||||
opacity 1
|
opacity 1
|
||||||
-webkit-transition opacity 500ms ease-in
|
-webkit-transition opacity 500ms ease-in
|
||||||
-moz-transition opacity 500ms ease-in
|
-moz-transition opacity 500ms ease-in
|
||||||
@@ -58,13 +54,11 @@
|
|||||||
margin-left -24px
|
margin-left -24px
|
||||||
padding 10px 0 10px 0
|
padding 10px 0 10px 0
|
||||||
left 50%
|
left 50%
|
||||||
filter "alpha(opacity=100)"
|
|
||||||
opacity 1
|
opacity 1
|
||||||
overflow initial
|
overflow initial
|
||||||
> span
|
> span
|
||||||
display inline-block
|
display inline-block
|
||||||
filter "alpha(opacity=0)"
|
opacity 1
|
||||||
opacity 0
|
|
||||||
width 8px
|
width 8px
|
||||||
height 8px
|
height 8px
|
||||||
margin 0 4px 0 4px
|
margin 0 4px 0 4px
|
@@ -17,7 +17,8 @@
|
|||||||
right 0
|
right 0
|
||||||
|
|
||||||
.content, .sidebar
|
.content, .sidebar
|
||||||
transition(transition-base)
|
&.anim
|
||||||
|
transition(transition-base)
|
||||||
|
|
||||||
.content
|
.content
|
||||||
position relative
|
position relative
|
||||||
@@ -29,7 +30,6 @@
|
|||||||
overflow-x: hidden
|
overflow-x: hidden
|
||||||
-webkit-overflow-scrolling touch
|
-webkit-overflow-scrolling touch
|
||||||
&.on
|
&.on
|
||||||
transform translateX(aside-width)
|
|
||||||
margin-left 0 !important
|
margin-left 0 !important
|
||||||
|
|
||||||
.sidebar
|
.sidebar
|
||||||
@@ -63,17 +63,20 @@
|
|||||||
font-size larger
|
font-size larger
|
||||||
|
|
||||||
.wrap, .outer
|
.wrap, .outer
|
||||||
|
position relative
|
||||||
width 100%
|
width 100%
|
||||||
padding-right gutter-width
|
padding-right gutter-width
|
||||||
padding-left gutter-width
|
padding-left gutter-width
|
||||||
margin auto
|
margin auto
|
||||||
overflow-x hidden
|
|
||||||
min-height calc( 100% - 157px )
|
min-height calc( 100% - 157px )
|
||||||
clearfix()
|
clearfix()
|
||||||
|
|
||||||
.local-search
|
.local-search
|
||||||
width 100%
|
width 100%
|
||||||
|
|
||||||
|
#main
|
||||||
|
position relative
|
||||||
|
|
||||||
|
|
||||||
// Media Query
|
// Media Query
|
||||||
@media (min-width: 768px)
|
@media (min-width: 768px)
|
@@ -1,9 +1,13 @@
|
|||||||
|
#reward-out
|
||||||
|
position: relative
|
||||||
|
width: 100%
|
||||||
|
|
||||||
#reward-btn
|
#reward-btn
|
||||||
position relative
|
position relative
|
||||||
display inline-block
|
display inline-block
|
||||||
height 36px
|
height 36px
|
||||||
line-height 36px
|
line-height 36px
|
||||||
margin-top 3rem
|
margin 60px 0
|
||||||
padding 0 20px
|
padding 0 20px
|
||||||
font-size 18px
|
font-size 18px
|
||||||
color #fff
|
color #fff
|
||||||
@@ -13,8 +17,7 @@
|
|||||||
margin-left 50%
|
margin-left 50%
|
||||||
transform translateX(-50%)
|
transform translateX(-50%)
|
||||||
box-shadow 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12)
|
box-shadow 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12)
|
||||||
-webkit-transition .4s ease-in-out
|
transition(.4s ease-in-out)
|
||||||
transition .4s ease-in-out
|
|
||||||
cursor pointer
|
cursor pointer
|
||||||
&:hover,
|
&:hover,
|
||||||
&:active
|
&:active
|
||||||
@@ -30,6 +33,18 @@
|
|||||||
padding 0px 20px 20px
|
padding 0px 20px 20px
|
||||||
background-color lighten(water,30%)
|
background-color lighten(water,30%)
|
||||||
display none
|
display none
|
||||||
|
&.ready {
|
||||||
|
visibility: hidden;
|
||||||
|
display: block;
|
||||||
|
transform: translate(-50%, -100%);
|
||||||
|
transition: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.in {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
}
|
||||||
.close
|
.close
|
||||||
height 28px
|
height 28px
|
||||||
line-height 28px
|
line-height 28px
|
161
source-src/css/_partial/share.styl
Normal file
161
source-src/css/_partial/share.styl
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
.share-wrap {
|
||||||
|
min-height: 20px;
|
||||||
|
display: none;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 250px;
|
||||||
|
background-color #f5f5f5;
|
||||||
|
border-radius: 2px;
|
||||||
|
.arrow {
|
||||||
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
|
top: -3px;
|
||||||
|
right:20px;
|
||||||
|
display: block;
|
||||||
|
width 10px;
|
||||||
|
height 10px;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
background-color #f5f5f5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.share-btn {
|
||||||
|
float: right;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.share-outer {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
border: none;
|
||||||
|
text-shadow: none;
|
||||||
|
text-decoration: none;
|
||||||
|
width auto;
|
||||||
|
color: link-color;
|
||||||
|
height: 28px;
|
||||||
|
line-height: 26px;
|
||||||
|
i{
|
||||||
|
font-size: 18px;
|
||||||
|
margin-right 5px;
|
||||||
|
color lighten(link-color,30%)
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
transform: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.share-icons {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
zoom: 1;
|
||||||
|
margin: 3px;
|
||||||
|
transition: 0.3s;
|
||||||
|
text-align: center;
|
||||||
|
color: main-color;
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
line-height: 26px;
|
||||||
|
font-size: 13px;
|
||||||
|
i {
|
||||||
|
font-size: 24px
|
||||||
|
}
|
||||||
|
&.weibo {
|
||||||
|
color weibo-color
|
||||||
|
}
|
||||||
|
&.weixin {
|
||||||
|
color wechat-color
|
||||||
|
}
|
||||||
|
&.qq {
|
||||||
|
color qq-color
|
||||||
|
}
|
||||||
|
&.douban {
|
||||||
|
color douban-color
|
||||||
|
}
|
||||||
|
&.twitter {
|
||||||
|
color twitter-color
|
||||||
|
}
|
||||||
|
&.facebook {
|
||||||
|
color facebook-color
|
||||||
|
}
|
||||||
|
&.google {
|
||||||
|
color google-color
|
||||||
|
}
|
||||||
|
&:active {
|
||||||
|
color: ocean;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
transform: scale(1.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wx-share-modal {
|
||||||
|
position: fixed;
|
||||||
|
top: 24%;
|
||||||
|
left: 50%;
|
||||||
|
z-index: 9999;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: center;
|
||||||
|
color: #727272;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
|
||||||
|
opacity: 0;
|
||||||
|
transform: translate(-50%, -200%);
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ready {
|
||||||
|
visibility: 0;
|
||||||
|
display: block;
|
||||||
|
transform: translate(-50%, -100%);
|
||||||
|
transition: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.in {
|
||||||
|
display: block;
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
transform: translate(-50%, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-close {
|
||||||
|
position: absolute;
|
||||||
|
right: 15px;
|
||||||
|
top: 15px;
|
||||||
|
color: rgba(0, 0, 0, .2);
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 20px;
|
||||||
|
i{
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:active {
|
||||||
|
color: rgba(0, 0, 0, .4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#share-mask{
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
background-color rgba(0,0,0,.6);
|
||||||
|
z-index: 999;
|
||||||
|
display: none;
|
||||||
|
}
|
@@ -1,10 +1,13 @@
|
|||||||
|
|
||||||
.tocbot
|
.tocbot
|
||||||
position fixed
|
padding 20px
|
||||||
|
position absolute
|
||||||
|
right -28rem
|
||||||
top 14rem
|
top 14rem
|
||||||
left calc((100vw - 70rem) / 2 + 70rem)
|
|
||||||
font-size 80%
|
font-size 80%
|
||||||
opacity .8
|
opacity .95
|
||||||
|
max-width 255px
|
||||||
|
border-radius 8px
|
||||||
> .toc-list
|
> .toc-list
|
||||||
position relative
|
position relative
|
||||||
overflow hidden
|
overflow hidden
|
||||||
@@ -35,7 +38,9 @@ a.toc-link
|
|||||||
.is-position-fixed
|
.is-position-fixed
|
||||||
position fixed !important
|
position fixed !important
|
||||||
top 0
|
top 0
|
||||||
right aside-width
|
right 6rem
|
||||||
|
background-color #fff
|
||||||
|
z-index 996
|
||||||
|
|
||||||
// Left line before pseudo element.
|
// Left line before pseudo element.
|
||||||
.toc-link::before
|
.toc-link::before
|
||||||
@@ -47,3 +52,9 @@ a.toc-link
|
|||||||
margin-top -1px
|
margin-top -1px
|
||||||
position absolute
|
position absolute
|
||||||
width 2px
|
width 2px
|
||||||
|
|
||||||
|
.is-active-link::before
|
||||||
|
background-color sea-blue
|
||||||
|
|
||||||
|
.is-active-link
|
||||||
|
font-weight 700
|
@@ -18,14 +18,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.totop
|
.totop,.todark
|
||||||
position relative
|
position relative
|
||||||
display inline-block
|
display block
|
||||||
overflow hidden
|
overflow hidden
|
||||||
cursor pointer
|
cursor pointer
|
||||||
rounded-circle(3.2rem)
|
rounded-circle(3.2rem)
|
||||||
background-color froth-light
|
background-color darken(froth-light,2%)
|
||||||
line-height 3rem
|
line-height 3rem
|
||||||
|
opacity .6
|
||||||
|
transition(opacity 1s ease)
|
||||||
|
&:hover
|
||||||
|
opacity 1
|
||||||
|
|
||||||
|
.totop
|
||||||
|
margin-bottom .8rem
|
||||||
&:hover > i {
|
&:hover > i {
|
||||||
animation rocket .3s ease-in-out
|
animation rocket .3s ease-in-out
|
||||||
}
|
}
|
31
source-src/css/_remixicon.styl
Normal file
31
source-src/css/_remixicon.styl
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Remix Icon v2.1.0
|
||||||
|
* https://remixicon.com
|
||||||
|
* https://github.com/Remix-Design/RemixIcon
|
||||||
|
*
|
||||||
|
* Copyright RemixIcon.com
|
||||||
|
* Released under the Apache License Version 2.0
|
||||||
|
*
|
||||||
|
* Date: 2019-11-03
|
||||||
|
*/
|
||||||
|
|
||||||
|
// variables
|
||||||
|
remixicon-font-path = 'https://cdn.jsdelivr.net/npm/remixicon@2.1.0/fonts/' !default;
|
||||||
|
|
||||||
|
@font-face
|
||||||
|
font-family: remixicon;
|
||||||
|
src: url(remixicon-font-path +'remixicon.eot'); /* IE9*/
|
||||||
|
src: url(remixicon-font-path +'remixicon.eot#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||||
|
url(remixicon-font-path +'remixicon.woff2') format("woff2"),
|
||||||
|
url(remixicon-font-path +'remixicon.woff') format("woff"),
|
||||||
|
url(remixicon-font-path +'remixicon.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
|
||||||
|
url(remixicon-font-path +'remixicon.svg#remixicon') format('svg'); /* iOS 4.1- */
|
||||||
|
font-display: swap;
|
||||||
|
|
||||||
|
|
||||||
|
[class^="ri-"], [class*=" ri-"]
|
||||||
|
display inline-block;
|
||||||
|
font-family: 'remixicon' !important;
|
||||||
|
font-style: normal;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
@@ -28,13 +28,17 @@ sand-gray = #bbb
|
|||||||
red = #ea434a
|
red = #ea434a
|
||||||
|
|
||||||
// Share Colors
|
// Share Colors
|
||||||
|
weibo-color = #d81e06
|
||||||
|
wechat-color = #51c332
|
||||||
|
qq-color = #4cafe9
|
||||||
|
douban-color = #05b711
|
||||||
twitter-color = #00aced
|
twitter-color = #00aced
|
||||||
facebook-color = #3b5998
|
facebook-color = #3b5998
|
||||||
pinterest-color = #cb2027
|
pinterest-color = #cb2027
|
||||||
google-color = #dd4b39
|
google-color = #dd4b39
|
||||||
|
|
||||||
// Link Colors
|
// Link Colors
|
||||||
link-color = darken(water,20%)
|
link-color = #0681d0
|
||||||
link-hover-color = lighten(link-color, 20%)
|
link-hover-color = lighten(link-color, 20%)
|
||||||
link-active-color = darken(link-color, 5%)
|
link-active-color = darken(link-color, 5%)
|
||||||
disabled-color = gray
|
disabled-color = gray
|
@@ -2,6 +2,7 @@
|
|||||||
@import "_mixins"
|
@import "_mixins"
|
||||||
@import "_remixicon"
|
@import "_remixicon"
|
||||||
@import "_normalize"
|
@import "_normalize"
|
||||||
|
@import "_darkmode"
|
||||||
|
|
||||||
*,
|
*,
|
||||||
*::before
|
*::before
|
||||||
@@ -28,10 +29,11 @@ body
|
|||||||
padding 0
|
padding 0
|
||||||
margin 0
|
margin 0
|
||||||
overflow-x hidden
|
overflow-x hidden
|
||||||
text-size-adjust: 100%
|
text-size-adjust 100%
|
||||||
::selection
|
//Dark Mode
|
||||||
background sea-lighter
|
&.darkmode
|
||||||
color froth
|
darkmode()
|
||||||
|
|
||||||
a
|
a
|
||||||
color link-color
|
color link-color
|
||||||
&:hover
|
&:hover
|
||||||
@@ -47,7 +49,7 @@ img
|
|||||||
max-width 100%
|
max-width 100%
|
||||||
|
|
||||||
button
|
button
|
||||||
outline: none
|
outline: 0
|
||||||
cursor pointer
|
cursor pointer
|
||||||
|
|
||||||
@import "_extend"
|
@import "_extend"
|
||||||
@@ -68,11 +70,14 @@ button
|
|||||||
@import "_partial/gitalk"
|
@import "_partial/gitalk"
|
||||||
@import "_partial/apple"
|
@import "_partial/apple"
|
||||||
@import "_partial/reward"
|
@import "_partial/reward"
|
||||||
|
@import "_partial/share"
|
||||||
|
@import "_partial/friends"
|
||||||
|
@import "_partial/ads"
|
||||||
|
|
||||||
if sidebar
|
if sidebar
|
||||||
@import "_partial/sidebar"
|
@import "_partial/sidebar"
|
||||||
|
|
||||||
// Media Query
|
//Media Query
|
||||||
@media (max-width: 768px)
|
@media (max-width: 768px)
|
||||||
html
|
html
|
||||||
font-size: 60%
|
font-size: 60%
|
177
source-src/js/ayer.js
Normal file
177
source-src/js/ayer.js
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
(function ($) {
|
||||||
|
// Search
|
||||||
|
let $searchWrap = $('.search-form-wrap'),
|
||||||
|
isSearchAnim = false,
|
||||||
|
searchAnimDuration = 200;
|
||||||
|
|
||||||
|
const startSearchAnim = () => {
|
||||||
|
isSearchAnim = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
const stopSearchAnim = (callback) => {
|
||||||
|
setTimeout(function () {
|
||||||
|
isSearchAnim = false;
|
||||||
|
callback && callback();
|
||||||
|
}, searchAnimDuration);
|
||||||
|
};
|
||||||
|
|
||||||
|
$('.nav-item-search').click(() => {
|
||||||
|
if (isSearchAnim) return;
|
||||||
|
startSearchAnim();
|
||||||
|
$searchWrap.addClass('on');
|
||||||
|
stopSearchAnim(function () {
|
||||||
|
$('.local-search-input').focus();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).mouseup((e) => {
|
||||||
|
const _con = $('.local-search');
|
||||||
|
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
|
||||||
|
$searchWrap.removeClass('on');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 建议在移动端不初始化,其实 /search.xml 文件还挺大的,
|
||||||
|
if ($('.local-search').size()) {
|
||||||
|
$.getScript('/js/search.js', function () {
|
||||||
|
searchFunc("/search.xml", 'local-search-input', 'local-search-result');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mobile Detect
|
||||||
|
const isMobile = {
|
||||||
|
Android: function () {
|
||||||
|
return navigator.userAgent.match(/Android/i);
|
||||||
|
},
|
||||||
|
BlackBerry: function () {
|
||||||
|
return navigator.userAgent.match(/BlackBerry/i);
|
||||||
|
},
|
||||||
|
iOS: function () {
|
||||||
|
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
|
||||||
|
},
|
||||||
|
Opera: function () {
|
||||||
|
return navigator.userAgent.match(/Opera Mini/i);
|
||||||
|
},
|
||||||
|
Windows: function () {
|
||||||
|
return navigator.userAgent.match(/IEMobile/i);
|
||||||
|
},
|
||||||
|
any: function () {
|
||||||
|
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Share
|
||||||
|
$('.share-outer').click(() => $('.share-wrap').fadeToggle())
|
||||||
|
|
||||||
|
// Lazyload
|
||||||
|
$("img.lazy").lazyload({
|
||||||
|
effect: "fadeIn"
|
||||||
|
});
|
||||||
|
|
||||||
|
// JustifiedGallery
|
||||||
|
$('#gallery').justifiedGallery({
|
||||||
|
rowHeight: 200,
|
||||||
|
margins: 5
|
||||||
|
});
|
||||||
|
|
||||||
|
// ScrollDown
|
||||||
|
$(document).ready(function ($) {
|
||||||
|
$('.anchor').click(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
$('main').animate({ scrollTop: $('.cover').height() }, 'smooth');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// To Top
|
||||||
|
(() => {
|
||||||
|
// When to show the scroll link
|
||||||
|
// higher number = scroll link appears further down the page
|
||||||
|
const upperLimit = 1000;
|
||||||
|
|
||||||
|
// Our scroll link element
|
||||||
|
const scrollElem = $('#totop');
|
||||||
|
|
||||||
|
// Scroll to top speed
|
||||||
|
const scrollSpeed = 1000;
|
||||||
|
|
||||||
|
// Show and hide the scroll to top link based on scroll position
|
||||||
|
scrollElem.hide();
|
||||||
|
$('.content').scroll(function () {
|
||||||
|
const scrollTop = $('.content').scrollTop();
|
||||||
|
if (scrollTop > upperLimit) {
|
||||||
|
$(scrollElem).stop().fadeTo(200, .6); // fade back in
|
||||||
|
} else {
|
||||||
|
$(scrollElem).stop().fadeTo(200, 0); // fade out
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Scroll to top animation on click
|
||||||
|
$(scrollElem).click(function () {
|
||||||
|
$('.content').animate({ scrollTop: 0 }, scrollSpeed); return false;
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Mobile Nav
|
||||||
|
const $content = $('.content'),
|
||||||
|
$sidebar = $('.sidebar');
|
||||||
|
|
||||||
|
$('.navbar-toggle').on('click', function () {
|
||||||
|
$('.content,.sidebar').addClass('anim')
|
||||||
|
$content.toggleClass('on');
|
||||||
|
$sidebar.toggleClass('on');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Reward
|
||||||
|
$('#reward-btn').click(() => {
|
||||||
|
$('#reward').fadeIn(150)
|
||||||
|
$('#mask').fadeIn(150)
|
||||||
|
});
|
||||||
|
$('#reward .close, #mask').click(() => {
|
||||||
|
$('#mask').fadeOut(100)
|
||||||
|
$('#reward').fadeOut(100)
|
||||||
|
})
|
||||||
|
|
||||||
|
// DarkMode
|
||||||
|
if (sessionStorage.getItem('darkmode') == 1) {
|
||||||
|
$('body').addClass('darkmode')
|
||||||
|
$('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line')
|
||||||
|
} else {
|
||||||
|
$('body').removeClass('darkmode')
|
||||||
|
$('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line')
|
||||||
|
}
|
||||||
|
$('#todark').click(() => {
|
||||||
|
if (sessionStorage.getItem('darkmode') == 1) {
|
||||||
|
$('body').removeClass('darkmode')
|
||||||
|
$('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line')
|
||||||
|
sessionStorage.removeItem('darkmode')
|
||||||
|
} else {
|
||||||
|
$('body').addClass('darkmode')
|
||||||
|
$('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line')
|
||||||
|
sessionStorage.setItem('darkmode', 1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// showThemeInConsole
|
||||||
|
const ayerInfo = '主题不错?⭐star 支持一下 ->';
|
||||||
|
const ayerURL = 'https://github.com/Shen-Yu/hexo-theme-ayer';
|
||||||
|
const ayerNameStr =
|
||||||
|
'\n\n _ __ _______ _____ \n / \\ \\ \\ / / ____| _ \\ \n / _ \\ \\ V /| _| | |_) | \n / ___ \\ \| | | |___| _ < \n /_/ \\_\\ _| |_____|_| \\__\\ \n';
|
||||||
|
const ayerInfoStyle =
|
||||||
|
'background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;';
|
||||||
|
const ayerURLStyle =
|
||||||
|
'background-color: #ffbca2; padding: 8px; font-size: 14px;';
|
||||||
|
const ayerNameStyle = 'background-color: #eaf8ff;';
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
'%c%s%c%s%c%s',
|
||||||
|
ayerInfoStyle,
|
||||||
|
ayerInfo,
|
||||||
|
ayerURLStyle,
|
||||||
|
ayerURL,
|
||||||
|
ayerNameStyle,
|
||||||
|
ayerNameStr
|
||||||
|
);
|
||||||
|
document.write('<script type="text/javascript" src="https://js.users.51.la/20544303.js"></script>');
|
||||||
|
})(jQuery);
|
||||||
|
|
||||||
|
|
66
source-src/js/share.js
Normal file
66
source-src/js/share.js
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
|
||||||
|
function generate(url, opts) {
|
||||||
|
var url = url.replace(/<%-sUrl%>/g, encodeURIComponent(opts.sUrl))
|
||||||
|
.replace(/<%-sTitle%>/g, encodeURIComponent(opts.sTitle))
|
||||||
|
.replace(/<%-sDesc%>/g, encodeURIComponent(opts.sDesc))
|
||||||
|
.replace(/<%-sPic%>/g, encodeURIComponent(opts.sPic));
|
||||||
|
window.open(url);
|
||||||
|
}
|
||||||
|
|
||||||
|
function showWX() {
|
||||||
|
$('.wx-share-modal').addClass('in ready')
|
||||||
|
$('#share-mask').show()
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideWX() {
|
||||||
|
$('.wx-share-modal').removeClass('in ready')
|
||||||
|
$('#share-mask').hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleClick(type, opts) {
|
||||||
|
if (type === 'weibo') {
|
||||||
|
generate('http://service.weibo.com/share/share.php?url=<%-sUrl%>&title=<%-sTitle%>&pic=<%-sPic%>', opts)
|
||||||
|
} else if (type === 'qq') {
|
||||||
|
generate('http://connect.qq.com/widget/shareqq/index.html?url=<%-sUrl%>&title=<%-sTitle%>&source=<%-sDesc%>', opts)
|
||||||
|
} else if (type === 'douban') {
|
||||||
|
generate('https://www.douban.com/share/service?image=<%-sPic%>&href=<%-sUrl%>&name=<%-sTitle%>&text=<%-sDesc%>', opts)
|
||||||
|
} else if (type === 'qzone') {
|
||||||
|
generate('http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=<%-sUrl%>&title=<%-sTitle%>&pics=<%-sPic%>&summary=<%-sDesc%>', opts)
|
||||||
|
} else if (type === 'facebook') {
|
||||||
|
generate('https://www.facebook.com/sharer/sharer.php?u=<%-sUrl%>', opts)
|
||||||
|
} else if (type === 'twitter') {
|
||||||
|
generate('https://twitter.com/intent/tweet?text=<%-sTitle%>&url=<%-sUrl%>', opts)
|
||||||
|
} else if (type === 'google') {
|
||||||
|
generate('https://plus.google.com/share?url=<%-sUrl%>', opts)
|
||||||
|
} else if (type === 'weixin') {
|
||||||
|
showWX();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const share_init = () => {
|
||||||
|
let $sns = document.querySelectorAll('.share-sns');
|
||||||
|
if (!$sns || $sns.length === 0) return;
|
||||||
|
let sUrl = window.location.href;
|
||||||
|
let sTitle = document.querySelector('title').innerHTML;
|
||||||
|
let $img = document.querySelectorAll('.article-entry img');
|
||||||
|
let sPic = $img.length ? document.querySelector('.article-entry img').getAttribute('src') : '';
|
||||||
|
if ((sPic !== '') && !/^(http:|https:)?\/\//.test(sPic)) {
|
||||||
|
sPic = window.location.origin + sPic
|
||||||
|
}
|
||||||
|
$sns.forEach(($em) => {
|
||||||
|
$em.onclick = (e) => {
|
||||||
|
let type = $em.getAttribute('data-type')
|
||||||
|
handleClick(type, {
|
||||||
|
sUrl: sUrl,
|
||||||
|
sPic: sPic,
|
||||||
|
sTitle: sTitle,
|
||||||
|
sDesc: sTitle
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
document.querySelector('#mask').onclick = hideWX
|
||||||
|
document.querySelector('.modal-close').onclick = hideWX
|
||||||
|
}
|
||||||
|
|
||||||
|
share_init()
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user