Compare commits
118 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8229b7436f | ||
|
c24db5e371 | ||
|
8b6074fef4 | ||
|
3d4a4fcc7e | ||
|
a842da9697 | ||
|
72c4fd9761 | ||
|
f1c3083f09 | ||
|
a29108efdc | ||
|
c679fd6256 | ||
|
49dfb78503 | ||
|
809d54eae2 | ||
|
e76f208516 | ||
|
aad79d1baa | ||
|
221c637409 | ||
|
5a4edd6483 | ||
|
0163b6bfe5 | ||
|
3fa2e339c5 | ||
|
1c857a0c5f | ||
|
302c6080fd | ||
|
ec47bd254a | ||
|
42a6eb0c33 | ||
|
0c0ea3312c | ||
|
1e0275d757 | ||
|
c5f8d5d058 | ||
|
38e99de4fb | ||
|
24be666717 | ||
|
4991ad5085 | ||
|
ed96a4ac21 | ||
|
c61cbb4803 | ||
|
2e7b792039 | ||
|
76096640f4 | ||
|
343b1435c1 | ||
|
6270c15b76 | ||
|
1292dbff48 | ||
|
651ccc266c | ||
|
61ddfbf724 | ||
|
826a654766 | ||
|
6a407dc892 | ||
|
cb4eba81c7 | ||
|
24a5b177ac | ||
|
49cf370803 | ||
|
4dc27165b9 | ||
|
77caffdbfa | ||
|
9767e1fa3f | ||
|
83572e499b | ||
|
ea8711e0ca | ||
|
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 |
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
|
8
.github/FUNDING.yml
vendored
8
.github/FUNDING.yml
vendored
@@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
patreon: # Replace with a single Patreon username
|
patreon: # Replace with a single Patreon username
|
||||||
open_collective: # Replace with a single Open Collective username
|
open_collective: ayer # Replace with a single Open Collective username
|
||||||
ko_fi: # Replace with a single Ko-fi username
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
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:
|
||||||
|
[
|
||||||
|
"https://shen-yu.gitee.io/images/wechat.jpg",
|
||||||
|
"https://shen-yu.gitee.io/images/alipay.jpg",
|
||||||
|
]
|
||||||
|
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
@@ -6,6 +6,5 @@ yarn.lock
|
|||||||
package-lock.json
|
package-lock.json
|
||||||
node_modules/
|
node_modules/
|
||||||
.cache
|
.cache
|
||||||
|
.history
|
||||||
# Setting
|
_bak.yml
|
||||||
_config.yml
|
|
||||||
|
4
.npmignore
Normal file
4
.npmignore
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
.cache/
|
||||||
|
.history/
|
||||||
|
.github/
|
||||||
|
_bak.yml
|
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"plugins": {
|
|
||||||
"autoprefixer": true
|
|
||||||
}
|
|
||||||
}
|
|
@@ -6,3 +6,5 @@ cache:
|
|||||||
npm: true
|
npm: true
|
||||||
|
|
||||||
install: npm install
|
install: npm install
|
||||||
|
|
||||||
|
script: npm run test
|
289
README.md
289
README.md
@@ -10,29 +10,33 @@
|
|||||||
<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>
|
<br>
|
||||||
<a href="https://hubble.js.org?owner=Shen-Yu&repo=hexo-theme-ayer&start"><img src="https://img.shields.io/badge/since-2019-409eff.svg" alt="Hubble"></a>
|
<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">
|
<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-e68db8.svg">
|
<img alt="platform" src="https://img.shields.io/badge/platform-PC--ios--android-ff69b4.svg">
|
||||||
</a>
|
</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 tag (latest by date)" src="https://img.shields.io/github/v/tag/Shen-Yu/hexo-theme-ayer?color=blue">
|
<img alt="npm version" src="https://img.shields.io/npm/v/hexo-theme-ayer">
|
||||||
</a>
|
</a>
|
||||||
<img alt="language" src="https://img.shields.io/badge/language-ejs--stylus-green.svg">
|
<img alt="language" src="https://img.shields.io/badge/language-ejs--stylus-green.svg">
|
||||||
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/Shen-Yu/hexo-theme-ayer?color=%23af8ddc">
|
<a href="https://github.com/Shen-Yu/hexo-theme-ayer/releases" target="_blank" rel="noopener noreferrer">
|
||||||
<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-efa96e">
|
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/Shen-Yu/hexo-theme-ayer?color=b37feb">
|
||||||
|
</a>
|
||||||
|
<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-6ccab8">
|
||||||
</a>
|
</a>
|
||||||
</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! shenyu@hotmail.com
|
: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>
|
<b>如果你想给主题添砖加瓦,可以点右上角 Fork,然后给此仓库提交 PR</b>
|
||||||
|
|
||||||
### [Preview 预览](https://shen-yu.gitee.io)
|
### [Preview 预览](https://shen-yu.gitee.io)
|
||||||
|
|
||||||
@@ -42,37 +46,49 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Install
|
## Install
|
||||||
|
|
||||||
``` bash
|
### For hexo >= 5.0
|
||||||
$ git clone https://github.com/Shen-Yu/hexo-theme-ayer.git themes/ayer
|
|
||||||
|
```shell
|
||||||
|
npm i hexo-theme-ayer -S
|
||||||
```
|
```
|
||||||
|
|
||||||
### Enable
|
- 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`.
|
||||||
|
|
||||||
|
### For hexo < 5.0
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git clone https://github.com/Shen-Yu/hexo-theme-ayer.git themes/ayer
|
||||||
|
```
|
||||||
|
|
||||||
|
## Enable
|
||||||
|
|
||||||
Modify `theme` setting in `_config.yml` to `ayer`
|
Modify `theme` setting in `_config.yml` to `ayer`
|
||||||
|
|
||||||
``` yml
|
```yml
|
||||||
theme: ayer
|
theme: ayer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Update
|
## Update
|
||||||
|
|
||||||
``` bash
|
```bash
|
||||||
cd themes/ayer
|
cd themes/ayer
|
||||||
git pull
|
git pull
|
||||||
```
|
```
|
||||||
|
|
||||||
### Multi Language Support
|
## 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.
|
zh-CN(中文简体) en(English) zh-TW(中文繁体) ja(日本語) es(Español) de(Deutsch) fr(Français) ru(Русский) ko(한국어) vi(Tiếng Việt) nl(Nederlands) no(norsk) pt(Português)
|
||||||
|
|
||||||
### Configuration
|
English is default languge, if you want to change, modify `language` option in `_config.yml` file in your Hexo blog's root folder.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
let me know if you have any questions.
|
let me know if you have any questions.
|
||||||
|
|
||||||
``` yml
|
```yml
|
||||||
# Menu-Sidebar
|
# Menu-Sidebar
|
||||||
menu:
|
menu:
|
||||||
Home: /
|
Home: /
|
||||||
@@ -89,7 +105,7 @@ subtitle:
|
|||||||
enable: true
|
enable: true
|
||||||
text: A clean and elegant theme
|
text: A clean and elegant theme
|
||||||
text2: It's perfect for your hexo blog
|
text2: It's perfect for your hexo blog
|
||||||
text3: Have fun! #Supports up to three lines of text
|
text3: Have fun! #Supports up to three lines of text
|
||||||
startDelay: 0
|
startDelay: 0
|
||||||
typeSpeed: 200
|
typeSpeed: 200
|
||||||
loop: true
|
loop: true
|
||||||
@@ -104,12 +120,18 @@ logo: /images/ayer-side.svg
|
|||||||
# enable: [true|false];path: [background-image];logo: [cover-logo-image]
|
# enable: [true|false];path: [background-image];logo: [cover-logo-image]
|
||||||
cover:
|
cover:
|
||||||
enable: true
|
enable: true
|
||||||
path: /images/cover1.jpg # there are some beautiful cover images in Ayer's directory: /source/images, choose your favorite image to replace it.
|
path: /images/cover1.jpg # there are some beautiful cover images in Ayer's directory: /source/images, choose your favorite image to replace it.
|
||||||
logo: /images/ayer.svg
|
logo: /images/ayer.svg
|
||||||
|
|
||||||
# ProgressBar
|
# ProgressBar
|
||||||
progressBar: true
|
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...
|
||||||
@@ -148,7 +170,7 @@ word_count:
|
|||||||
# type:0-close reward; 1-only open in article which you have configured reward:true; 2-open in all articles
|
# type:0-close reward; 1-only open in article which you have configured reward:true; 2-open in all articles
|
||||||
reward_type: 2
|
reward_type: 2
|
||||||
# reward word
|
# reward word
|
||||||
reward_wording: 'Buy me a cup of coffee~'
|
reward_wording: "Buy me a cup of coffee~"
|
||||||
# qrcode image path
|
# qrcode image path
|
||||||
alipay: /images/alipay.jpg
|
alipay: /images/alipay.jpg
|
||||||
# qrcode image path
|
# qrcode image path
|
||||||
@@ -185,33 +207,10 @@ layout:
|
|||||||
article_width: 80rem
|
article_width: 80rem
|
||||||
sidebar_width: 8rem
|
sidebar_width: 8rem
|
||||||
|
|
||||||
# Comment:1、Valine (recommended);2、Gitalk
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
leancloud:
|
|
||||||
enable: true
|
|
||||||
app_id: #
|
|
||||||
app_key: #
|
|
||||||
# Valine Setting
|
|
||||||
valine:
|
|
||||||
enable: true
|
|
||||||
verify: false # comment verify
|
|
||||||
avatar: mp # (https://valine.js.org/avatar.html)
|
|
||||||
placeholder: Add some comments to my article~ # 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
|
|
||||||
|
|
||||||
# GitHub Ribbons(https://github.blog/2008-12-19-github-ribbons/)
|
# GitHub Ribbons(https://github.blog/2008-12-19-github-ribbons/)
|
||||||
github:
|
github:
|
||||||
# (Set false if you don't need)
|
# (Set false if you don't need)
|
||||||
|
enable: false
|
||||||
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
url: https://github.com/Shen-Yu/hexo-theme-ayer
|
||||||
|
|
||||||
# pv&uv statistics
|
# pv&uv statistics
|
||||||
@@ -224,9 +223,9 @@ cnzz:
|
|||||||
url: #
|
url: #
|
||||||
|
|
||||||
# Google Analytics
|
# Google Analytics
|
||||||
google_analytics: ''
|
google_analytics: ""
|
||||||
# Baidu Analytics
|
# Baidu Analytics
|
||||||
baidu_analytics: ''
|
baidu_analytics: ""
|
||||||
|
|
||||||
# Mathjax Support
|
# Mathjax Support
|
||||||
mathjax: true
|
mathjax: true
|
||||||
@@ -241,17 +240,102 @@ katex:
|
|||||||
# since year
|
# since year
|
||||||
since: 2019
|
since: 2019
|
||||||
|
|
||||||
# pageFooter (Set true can let more people know this theme, Thanks!)
|
# only for chinese website
|
||||||
pageFooter: true
|
# 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)
|
||||||
|
# You need create leancloud account first (https://console.leancloud.app), then put the id|key in below.
|
||||||
|
leancloud:
|
||||||
|
enable: true
|
||||||
|
app_id: #
|
||||||
|
app_key: #
|
||||||
|
# Valine Setting
|
||||||
|
valine:
|
||||||
|
enable: true
|
||||||
|
avatar: mp # (https://valine.js.org/avatar.html)
|
||||||
|
placeholder: Add some comments to my article~ # 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
|
||||||
|
serverURL: https://minivaline.your-domain.com
|
||||||
|
|
||||||
|
# advertisement
|
||||||
|
# if there is an "ad" word in photo or url,it may blocked by adblock or any other browser extensions
|
||||||
|
ads:
|
||||||
|
ad_1:
|
||||||
|
title: vultr优惠vps
|
||||||
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/vultr.png
|
||||||
|
url: https://www.vultr.com/?ref=8630075
|
||||||
|
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
|
||||||
|
|
||||||
|
# encrypt settings
|
||||||
|
lock:
|
||||||
|
enable: false
|
||||||
|
password: 123456
|
||||||
```
|
```
|
||||||
|
|
||||||
### 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)
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
$ npm install hexo-generator-searchdb --save
|
$ npm install hexo-generator-searchdb --save
|
||||||
```
|
```
|
||||||
|
|
||||||
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
|
||||||
@@ -262,7 +346,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
|
||||||
@@ -282,18 +366,22 @@ pageFooter: true
|
|||||||
order_by: -date
|
order_by: -date
|
||||||
```
|
```
|
||||||
|
|
||||||
+ [hexo-generator-index-pin-top](https://github.com/netcan/hexo-generator-index-pin-top) (for Sticky Post)
|
- [hexo-generator-index-pin-top](https://github.com/netcan/hexo-generator-index-pin-top) (for Sticky Post)
|
||||||
|
|
||||||
``` bash
|
```bash
|
||||||
$ 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
|
|
||||||
``` bash
|
## Categories
|
||||||
|
|
||||||
|
```bash
|
||||||
hexo new page categories
|
hexo new page categories
|
||||||
```
|
```
|
||||||
|
|
||||||
Then paste following codes to file: /source/categories/index.md
|
Then paste following codes to file: /source/categories/index.md
|
||||||
``` md
|
|
||||||
|
```md
|
||||||
---
|
---
|
||||||
title: categories
|
title: categories
|
||||||
type: categories
|
type: categories
|
||||||
@@ -301,44 +389,85 @@ layout: "categories"
|
|||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
### Tags
|
## Tags
|
||||||
|
|
||||||
Same as categories.
|
Same as categories.
|
||||||
|
|
||||||
### Gallery
|
## Friend Links
|
||||||
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
|
```bash
|
||||||
|
hexo new page friends
|
||||||
|
```
|
||||||
|
|
||||||
|
Then paste following codes to file: /source/friends/index.md
|
||||||
|
|
||||||
|
```md
|
||||||
---
|
---
|
||||||
title: Gallery
|
title: friends
|
||||||
|
type: friends
|
||||||
albums: [
|
layout: "friends"
|
||||||
["img_url","img_caption"],
|
|
||||||
["img_url","img_caption"]
|
|
||||||
]
|
|
||||||
---
|
---
|
||||||
```
|
```
|
||||||
|
|
||||||
### Toc
|
Then edit `friends_link` in `_config.yml`
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
```md
|
||||||
|
---
|
||||||
|
title: Gallery
|
||||||
|
|
||||||
|
albums: [["img_url", "img_caption"], ["img_url", "img_caption"]]
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
+ ayer/_config.yml
|
- ayer/\_config.yml
|
||||||
|
|
||||||
``` bash
|
```bash
|
||||||
# Toc
|
# Toc
|
||||||
toc: true
|
toc: true
|
||||||
```
|
```
|
||||||
+ If Toc is turned on in ayer/_config.yml, then Tocbot will generate a Toc article directory in the title tag of each blog parsing content, but not all blogs require Toc, so in the Front-matter section of markdown Can be closed:
|
|
||||||
|
|
||||||
``` md
|
- If Toc is turned on in ayer/\_config.yml, then Tocbot will generate a Toc article directory in the title tag of each blog parsing content, but not all blogs require Toc, so in the Front-matter section of markdown Can be closed:
|
||||||
---
|
|
||||||
|
```md
|
||||||
|
---
|
||||||
no_toc: true
|
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://github.com/Shen-Yu/hexo-theme-ayer/blob/master/LICENSE">SATA-License</a>.
|
|
||||||
|
## Code Contributors
|
||||||
|
|
||||||
|
This project exists thanks to all the people who contribute.
|
||||||
|
|
||||||
|
<a href="https://github.com/Shen-Yu/hexo-theme-ayer/graphs/contributors"><img src="https://opencollective.com/ayer/contributors.svg?width=890&button=false" /></a>
|
||||||
|
|
||||||
|
## Stargazers over time
|
||||||
|
|
||||||
|
[](https://starchart.cc/Shen-Yu/hexo-theme-ayer)
|
||||||
|
|
||||||
|
## 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!
|
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 或者提一些建设性的意见
|
||||||
|
- 告诉你的朋友们这是一个多棒的开源项目
|
||||||
|
- 当然,你也可以只是在心里默默的感激,不用让全世界都知道
|
||||||
|
111
_config.yml
111
_config.yml
@@ -6,6 +6,7 @@ menu:
|
|||||||
标签: /tags
|
标签: /tags
|
||||||
旅行: /tags/旅行/
|
旅行: /tags/旅行/
|
||||||
摄影: http://shenyu-vip.lofter.com
|
摄影: http://shenyu-vip.lofter.com
|
||||||
|
友链: /friends
|
||||||
关于我: /2019/about
|
关于我: /2019/about
|
||||||
|
|
||||||
# 站点次标题和打字动效
|
# 站点次标题和打字动效
|
||||||
@@ -35,6 +36,12 @@ cover:
|
|||||||
# 页面顶部进度条
|
# 页面顶部进度条
|
||||||
progressBar: true
|
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: 阅读更多...
|
||||||
@@ -150,19 +157,48 @@ katex:
|
|||||||
allpost: true
|
allpost: true
|
||||||
copy_tex: false
|
copy_tex: false
|
||||||
|
|
||||||
|
# mermaid流程图 三个选项缺一不可(https://mermaid-js.github.io/mermaid/)
|
||||||
|
mermaid:
|
||||||
|
enable: false
|
||||||
|
cdn: https://cdn.jsdelivr.net/npm/mermaid@8.9.2/dist/mermaid.min.js
|
||||||
|
theme: forest
|
||||||
|
|
||||||
# 网站成立年份(默认为 2019,若填入年份小于当前年份,则显示为 2018-2019 类似的格式)
|
# 网站成立年份(默认为 2019,若填入年份小于当前年份,则显示为 2018-2019 类似的格式)
|
||||||
since: 2015
|
since: 2015
|
||||||
|
|
||||||
# 是否显示页脚信息(建议保留)
|
# ICP备案信息尾部显示
|
||||||
pageFooter: true
|
|
||||||
|
|
||||||
#ICP备案信息尾部显示
|
|
||||||
icp:
|
icp:
|
||||||
enable: false
|
enable: false
|
||||||
url: "http://www.beian.miit.gov.cn/" # 备案链接
|
url: "http://www.beian.miit.gov.cn/" # 备案链接
|
||||||
text: "浙ICP备88888888" # 备案信息
|
text: "浙ICP备88888888" # 备案信息
|
||||||
|
# 公安备案信息尾部显示
|
||||||
|
gongan:
|
||||||
|
enable: false
|
||||||
|
img: /images/beian.png #公安备案图片
|
||||||
|
url: "http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=01234567890123" #公安备案链接
|
||||||
|
text: "浙公网安备01234567890123号" #公安备案信息
|
||||||
|
|
||||||
# 评论:1、Valine(推荐);2、Gitalk;3、MiniValine
|
# 友情链接
|
||||||
|
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)
|
# 1、Valine[一款快速、简洁且高效的无后端评论系统](https://github.com/xCss/Valine)
|
||||||
# 启用Valine必须先创建leancloud应用, 获取 id|key 填入即可
|
# 启用Valine必须先创建leancloud应用, 获取 id|key 填入即可
|
||||||
@@ -185,42 +221,35 @@ gitalk:
|
|||||||
owner: # GitHub ID
|
owner: # GitHub ID
|
||||||
admin: # GitHub ID
|
admin: # GitHub ID
|
||||||
|
|
||||||
# 3、MiniValine
|
# 3、Twikoo(https://github.com/imaegoo/twikoo)
|
||||||
|
twikoo:
|
||||||
|
enable: false
|
||||||
|
envId: #
|
||||||
|
|
||||||
|
# 4、MiniValine
|
||||||
# See: https://github.com/MiniValine/MiniValine
|
# See: https://github.com/MiniValine/MiniValine
|
||||||
minivaline:
|
minivaline:
|
||||||
enable: false
|
enable: false
|
||||||
mode: DesertsP # DesertsP or xCss
|
# 更多选项 https://minivaline.js.org/docs/cn/#/Options 按照yml格式继续填写即可 (除了 [el] 选项)
|
||||||
placeholder: Write a Comment # Comment box placeholder
|
# emoticonUrl 等列表选项 可参考 https://github.com/MiniValine/hexo-next-minivaline
|
||||||
math: true # Support MathJax.
|
# 下面是一个例子:
|
||||||
md: true # Support Markdown.
|
serverURL: https://minivaline.your-domain.com
|
||||||
enableQQ: false # Enable QQ avatar API.
|
|
||||||
NoRecordIP: false # Do not record commenter IP.
|
# 首页广告配置
|
||||||
visitor: true # Article reading statistics.
|
# 可以根据需要自行增加ad_3,ad_4...,留空则不显示,建议图片和url不要带ad等关键词,否则可能会被adblock等插件屏蔽
|
||||||
maxNest: 6 # Sub-comment maximum nesting depth.
|
ads:
|
||||||
pageSize: 6 # Pagination size.
|
ad_1:
|
||||||
adminEmailMd5: de8a7aa53d07e6b6bceb45c64027763d # The MD5 of Admin Email to show Admin Flag.[Just Only DesertsP Style mode]
|
title: 云服务器限时秒杀
|
||||||
tagMeta: # The String Array of Words to show Flag.[Just Only xCss Style mode]
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/ten_1.jpg
|
||||||
- 管理员
|
url: https://curl.qcloud.com/kvO7hb43
|
||||||
- 小伙伴
|
width: 300
|
||||||
- 访客
|
ad_2:
|
||||||
master: # The MD5 String Array of master Email to show master Flag.[Just Only xCss Style mode]
|
title: vultr优惠vps
|
||||||
- de8a7aa53d07e6b6bceb45c64027763d
|
img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/vultr.png
|
||||||
friends: # The MD5 String Array of friends Email to show friends Flag.[Just Only xCss Style mode]
|
url: https://www.vultr.com/?ref=8630075
|
||||||
- b5bd5d836c7a0091aa8473e79ed4c25e
|
width: 300
|
||||||
- adb7d1cd192658a55c0ad22a3309cecf
|
|
||||||
- 3ce1e6c77b4910f1871106cb30dc62b0
|
# 网站开启加密访问,密码可设置任何字符
|
||||||
- cfce8dc43725cc14ffcd9fb4892d5bfc
|
lock:
|
||||||
# MiniValine's display language depends on user's browser or system environment
|
enable: false
|
||||||
# If you want everyone visiting your site to see a uniform language, you can set a force language value
|
password: 123456
|
||||||
# Available values: en | zh-CN | (and many more)
|
|
||||||
# More i18n info: https://github.com/MiniValine/minivaline-i18n
|
|
||||||
lang:
|
|
||||||
# Expression Url.
|
|
||||||
# https://github.com/MiniValine/MiniValine/blob/master/.github/FAQ.md#how-to-customize-emoticons
|
|
||||||
emoticonUrl:
|
|
||||||
- https://cdn.jsdelivr.net/npm/alus@latest
|
|
||||||
- https://cdn.jsdelivr.net/gh/MiniValine/qq@latest
|
|
||||||
- https://cdn.jsdelivr.net/gh/MiniValine/Bilibilis@latest
|
|
||||||
- https://cdn.jsdelivr.net/gh/MiniValine/tieba@latest
|
|
||||||
- https://cdn.jsdelivr.net/gh/MiniValine/twemoji@latest
|
|
||||||
- https://cdn.jsdelivr.net/gh/MiniValine/weibo@latest
|
|
||||||
|
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.
|
@@ -20,6 +20,7 @@ category: Kategorie
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Freunde
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Wortzahl
|
word_count: Wortzahl
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Oben
|
sticky: Oben
|
||||||
copyright_title: Copyright-Hinweis
|
copyright_title: Copyright-Hinweis
|
||||||
copyright_content: Sofern nicht anders angegeben, liegt das Urheberrecht aller Artikel in diesem Blog beim Autor. Nachdruck bitte Quelle angeben!
|
copyright_content: Sofern nicht anders angegeben, liegt das Urheberrecht aller Artikel in diesem Blog beim Autor. Nachdruck bitte Quelle angeben!
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Category
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Friends
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Word count
|
word_count: Word count
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Sticky
|
sticky: Sticky
|
||||||
copyright_title: Copyright
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Category
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Friends
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Word count
|
word_count: Word count
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Sticky
|
sticky: Sticky
|
||||||
copyright_title: Copyright
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Categoría
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Amigos
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: El recuento de palabras
|
word_count: El recuento de palabras
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Arriba
|
sticky: Arriba
|
||||||
copyright_title: Derechos de autor
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Catégorie
|
|||||||
tag: Mot-clé
|
tag: Mot-clé
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Mes amis
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Nombre de mots
|
word_count: Nombre de mots
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Haut
|
sticky: Haut
|
||||||
copyright_title: Avis de copyright
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: カテゴリ
|
|||||||
tag: タグ
|
tag: タグ
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: 友達
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: 単語数
|
word_count: 単語数
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: 上へ
|
sticky: 上へ
|
||||||
copyright_title: 著作権表示
|
copyright_title: 著作権表示
|
||||||
copyright_content: 著作権は著者が所有しています。商業版の複製については、承認について著者に連絡してください。非商業版の複製については、出典を明記してください。
|
copyright_content: 著作権は著者が所有しています。商業版の複製については、承認について著者に連絡してください。非商業版の複製については、出典を明記してください。
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: 카테고리
|
|||||||
tag: 태그
|
tag: 태그
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: 친구 들
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: 단어 수
|
word_count: 단어 수
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: 톱
|
sticky: 톱
|
||||||
copyright_title: 저작권 고지
|
copyright_title: 저작권 고지
|
||||||
copyright_content: 저작권은 저자가 소유합니다. 상업용 재 인쇄의 경우 승인을 위해 저자에게 문의하십시오. 비상업적 재 인쇄의 경우 출처를 명시하십시오.
|
copyright_content: 저작권은 저자가 소유합니다. 상업용 재 인쇄의 경우 승인을 위해 저자에게 문의하십시오. 비상업적 재 인쇄의 경우 출처를 명시하십시오.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Categorie
|
|||||||
tag: Label
|
tag: Label
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Vrienden
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Aantal woorden in artikel
|
word_count: Aantal woorden in artikel
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Sticky
|
sticky: Sticky
|
||||||
copyright_title: Copyright melding
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Category
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Venner
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Ordtelling
|
word_count: Ordtelling
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Sticky
|
sticky: Sticky
|
||||||
copyright_title: Opphavsrett
|
copyright_title: Opphavsrett
|
||||||
copyright_content: Opphavsrett eies av forfatteren. For kommersielle opptrykk, vennligst kontakt forfatteren for godkjenning. For ikke-kommersiell uttrykk, vennligst oppgi kilden.
|
copyright_content: Opphavsrett eies av forfatteren. For kommersielle opptrykk, vennligst kontakt forfatteren for godkjenning. For ikke-kommersiell uttrykk, vennligst oppgi kilden.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Categoria
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Amigos
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Word count
|
word_count: Word count
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: Sticky
|
sticky: Sticky
|
||||||
copyright_title: direito autoral
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Категория
|
|||||||
tag: Метка
|
tag: Метка
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: друзья
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Количество слов
|
word_count: Количество слов
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: липкий
|
sticky: липкий
|
||||||
copyright_title: Авторские права
|
copyright_title: Авторские права
|
||||||
copyright_content: Авторские права принадлежат автору. Для коммерческих перепечаток, пожалуйста, свяжитесь с автором для авторизации. Для некоммерческих перепечаток, пожалуйста, укажите источник.
|
copyright_content: Авторские права принадлежат автору. Для коммерческих перепечаток, пожалуйста, свяжитесь с автором для авторизации. Для некоммерческих перепечаток, пожалуйста, укажите источник.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Thể loại
|
|||||||
tag: thẻ
|
tag: thẻ
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: Bạn
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: Đếm từ
|
word_count: Đếm từ
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: dính
|
sticky: dính
|
||||||
copyright_title: Bản quyền
|
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.
|
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.
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: Please enter password
|
||||||
|
lock_error: Incorrect password, please try again
|
||||||
|
confirm_text: Ok
|
||||||
|
cancel_text: Cancel
|
||||||
|
@@ -20,6 +20,7 @@ category: Category
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: 访问人数
|
site_visitors: 访问人数
|
||||||
page_views: 浏览次数
|
page_views: 浏览次数
|
||||||
|
friends: 友情链接
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: 字数统计
|
word_count: 字数统计
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: 置顶
|
sticky: 置顶
|
||||||
copyright_title: 版权声明
|
copyright_title: 版权声明
|
||||||
copyright_content: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
|
copyright_content: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: 请输入访问密码
|
||||||
|
lock_error: 密码错误,请重试
|
||||||
|
confirm_text: 确定
|
||||||
|
cancel_text: 取消
|
||||||
|
@@ -20,6 +20,7 @@ category: Category
|
|||||||
tag: Tag
|
tag: Tag
|
||||||
site_visitors: Visitors
|
site_visitors: Visitors
|
||||||
page_views: Views
|
page_views: Views
|
||||||
|
friends: 友情鏈接
|
||||||
|
|
||||||
post:
|
post:
|
||||||
word_count: 字數統計
|
word_count: 字數統計
|
||||||
@@ -29,3 +30,9 @@ post:
|
|||||||
sticky: 置頂
|
sticky: 置頂
|
||||||
copyright_title: 版權聲明
|
copyright_title: 版權聲明
|
||||||
copyright_content: 本博客所有文章除特別聲明外,著作權歸作者所有。轉載請註明出處!
|
copyright_content: 本博客所有文章除特別聲明外,著作權歸作者所有。轉載請註明出處!
|
||||||
|
|
||||||
|
lock:
|
||||||
|
lock_info: 請輸入訪問密碼
|
||||||
|
lock_error: 密碼錯誤,請重試
|
||||||
|
confirm_text: 確定
|
||||||
|
cancel_text: 取消
|
||||||
|
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,66 +1,57 @@
|
|||||||
<%- js('/js/jquery-2.0.3.min') %>
|
<%- js('/js/jquery-2.0.3.min') %> <%- js('/js/lazyload.min') %>
|
||||||
<%- js('/js/lazyload.min') %>
|
|
||||||
<!-- Tocbot -->
|
<!-- Tocbot -->
|
||||||
<% if (theme.toc && is_post() && !page.no_toc){ %>
|
<% if (theme.toc && is_post() && !page.no_toc){ %> <%- js('/js/tocbot.min') %>
|
||||||
<%- js('/js/tocbot.min') %>
|
|
||||||
<script>
|
<script>
|
||||||
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',
|
scrollContainer: "main",
|
||||||
positionFixedSelector: '.tocbot',
|
positionFixedSelector: ".tocbot",
|
||||||
positionFixedClass: 'is-position-fixed',
|
positionFixedClass: "is-position-fixed",
|
||||||
fixedSidebarOffset: 'auto'
|
fixedSidebarOffset: "auto",
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<% } %>
|
<% } %>
|
||||||
<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>
|
<script src="https://cdn.jsdelivr.net/npm/justifiedGallery@3.7.0/dist/js/jquery.justifiedGallery.min.js"></script>
|
||||||
<%- js('dist/main') %>
|
<%- js('dist/main') %>
|
||||||
<!-- ImageViewer -->
|
<!-- ImageViewer -->
|
||||||
<% if (theme.image_viewer){ %>
|
<% if (theme.image_viewer){ %> <%- partial('viewer') %> <% } %>
|
||||||
<%- partial('viewer') %>
|
|
||||||
<% } %>
|
|
||||||
<!-- MathJax -->
|
<!-- MathJax -->
|
||||||
<% if (theme.mathjax){ %>
|
<% if (theme.mathjax){ %> <%- partial('mathjax') %>
|
||||||
<%- partial('mathjax') %>
|
|
||||||
<script>
|
<script>
|
||||||
var ayerConfig = {
|
var ayerConfig = {
|
||||||
mathjax: true
|
mathjax: true,
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
<% } %>
|
<% } %>
|
||||||
<!-- Katex -->
|
<!-- Katex -->
|
||||||
<% if (theme.katex.enable){ %>
|
<% if (theme.katex.enable){ %> <%- partial('katex') %> <% } %>
|
||||||
<%- partial('katex') %>
|
|
||||||
<% } %>
|
|
||||||
<!-- busuanzi -->
|
<!-- busuanzi -->
|
||||||
<% if (theme.busuanzi && theme.busuanzi.enable){ %>
|
<% if (theme.busuanzi && theme.busuanzi.enable){ %> <%-
|
||||||
<%- js('/js/busuanzi-2.3.pure.min') %>
|
js('/js/busuanzi-2.3.pure.min') %> <% } %>
|
||||||
<% } %>
|
|
||||||
<!-- ClickLove -->
|
<!-- ClickLove -->
|
||||||
<% if (theme.click_effect===1){ %>
|
<% if (theme.click_effect===1){ %> <%- js('/js/clickLove') %> <% } %>
|
||||||
<%- js('/js/clickLove') %>
|
|
||||||
<% } %>
|
|
||||||
<!-- ClickBoom1 -->
|
<!-- ClickBoom1 -->
|
||||||
<% if (theme.click_effect===2){ %>
|
<% if (theme.click_effect===2){ %>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/animejs@latest/anime.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/animejs@latest/anime.min.js"></script>
|
||||||
<%- js('/js/clickBoom1') %>
|
<%- js('/js/clickBoom1') %> <% } %>
|
||||||
<% } %>
|
|
||||||
<!-- ClickBoom2 -->
|
<!-- ClickBoom2 -->
|
||||||
<% if (theme.click_effect===3){ %>
|
<% if (theme.click_effect===3){ %> <%- js('/js/clickBoom2') %> <% } %>
|
||||||
<%- js('/js/clickBoom2') %>
|
|
||||||
<% } %>
|
|
||||||
<!-- CodeCopy -->
|
<!-- CodeCopy -->
|
||||||
<% if (theme.copy_btn == true) { %>
|
<% if (theme.copy_btn == true) { %> <%- css('/css/clipboard') %> <%-
|
||||||
<%- css('/css/clipboard') %>
|
partial('post/clipboard') %> <% } %>
|
||||||
<%- partial('post/clipboard') %>
|
|
||||||
<% } %>
|
|
||||||
<!-- CanvasBackground -->
|
<!-- CanvasBackground -->
|
||||||
<% if (theme.canvas_bg == 1) { %>
|
<% if (theme.canvas_bg == 1) { %> <%- js('/js/dz') %> <% } %>
|
||||||
<%- js('/js/dz') %>
|
<script>
|
||||||
<% } %>
|
if (window.mermaid) {
|
||||||
|
mermaid.initialize({ theme: "<%= theme.mermaid.theme %>" });
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@@ -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 = '';
|
||||||
|
@@ -9,6 +9,7 @@
|
|||||||
<% 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'}) %>
|
||||||
|
<%- partial('post/author', {class_name: 'article-author'}) %>
|
||||||
</header>
|
</header>
|
||||||
<% } %> <% if (index || is_post()) { %>
|
<% } %> <% if (index || is_post()) { %>
|
||||||
<div class="article-meta">
|
<div class="article-meta">
|
||||||
@@ -47,7 +48,11 @@
|
|||||||
<li>
|
<li>
|
||||||
<i class="ri-copyright-line"></i>
|
<i class="ri-copyright-line"></i>
|
||||||
<strong><%= __('post.copyright_title') %>: </strong>
|
<strong><%= __('post.copyright_title') %>: </strong>
|
||||||
|
<% if (post.copyright_content) { %>
|
||||||
|
<%= post.copyright_content %>
|
||||||
|
<% } else { %>
|
||||||
<%= __('post.copyright_content') %>
|
<%= __('post.copyright_content') %>
|
||||||
|
<% } %>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,5 +68,5 @@
|
|||||||
post.slug, title: post.title, url: config.url+url_for(post.path) }) %> <% } %>
|
post.slug, title: post.title, url: config.url+url_for(post.path) }) %> <% } %>
|
||||||
<% if (is_post()) { %> <%- partial('post/gitalk') %> <% } %> <% if
|
<% if (is_post()) { %> <%- partial('post/gitalk') %> <% } %> <% if
|
||||||
(theme.minivaline && theme.minivaline.enable && !post.no_minivaline){ %> <%-
|
(theme.minivaline && theme.minivaline.enable && !post.no_minivaline){ %> <%-
|
||||||
partial('post/minivaline') %> <% } %>
|
partial('post/minivaline') %> <% } %> <% if (is_post()) { %> <%- partial('post/twikoo') %> <% } %>
|
||||||
</article>
|
</article>
|
||||||
|
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>
|
@@ -29,10 +29,18 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<% if (theme.icp&&theme.icp.enable){ %>
|
<% if (theme.icp&&theme.icp.enable){ %>
|
||||||
<li>
|
<li>
|
||||||
<a href="<%= theme.icp.url %>" target="_black"><%= theme.icp.text %></a>
|
<a href="<%= theme.icp.url %>" target="_black" rel="nofollow"><%= theme.icp.text %></a>
|
||||||
</li>
|
</li>
|
||||||
<% } %>
|
<% } %>
|
||||||
</ul>
|
</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>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<!-- cnzz统计 -->
|
<!-- cnzz统计 -->
|
||||||
|
@@ -2,40 +2,59 @@
|
|||||||
|
|
||||||
<% if (config.language){ %>
|
<% if (config.language){ %>
|
||||||
<html lang="<%= config.language %>">
|
<html lang="<%= config.language %>">
|
||||||
<% } else { %>
|
<% } 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()) {
|
||||||
= page.category; } else if (is_tag()) {
|
title = page.category; } else if (is_tag()) { title = __('tag') + ': ' +
|
||||||
title = __('tag') + ': ' + page.tag; } %> <% if (page.keywords){ %>
|
page.tag; } %> <% if (page.keywords){ %>
|
||||||
<meta name="keywords" content="<%= page.keywords %>,<%= config.keywords %>" />
|
<meta
|
||||||
<% } else if (config.keywords){ %>
|
name="keywords"
|
||||||
<meta name="keywords" content="<%= config.keywords %>" />
|
content="<%= page.keywords %>,<%= config.keywords %>"
|
||||||
<% } %> <% if (page.description){ %>
|
/>
|
||||||
<meta name="description" content="<%= page.description %>" />
|
<% } else if (config.keywords){ %>
|
||||||
<% } else if (config.description){ %>
|
<meta name="keywords" content="<%= config.keywords %>" />
|
||||||
<meta name="description" content="<%= config.description %>" />
|
<% } %> <% if (page.description){ %>
|
||||||
<% } %>
|
<meta name="description" content="<%= page.description %>" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
<% } else if (config.description){ %>
|
||||||
<title>
|
<meta name="description" content="<%= config.description %>" />
|
||||||
<% if (title){ %><%= title %> | <% } %> <%= config.description %>
|
<% } %>
|
||||||
</title>
|
<meta
|
||||||
<% if (theme.favicon){ %>
|
name="viewport"
|
||||||
<link rel="shortcut icon" href="<%- theme.favicon %>" />
|
content="width=device-width, initial-scale=1, maximum-scale=1"
|
||||||
<% } %>
|
/>
|
||||||
<%- css('dist/main') %>
|
<title><% if (title){ %><%= title %> | <% } %> <%= config.title %></title>
|
||||||
<%- css('https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/css/remixicon.min') %>
|
<% if (theme.favicon){ %>
|
||||||
<%- css('css/custom') %>
|
<link rel="shortcut icon" href="<%- theme.favicon %>" />
|
||||||
<% if (theme.progressBar){ %>
|
<% } %> <%- css('dist/main') %>
|
||||||
<%- js('https://cdn.jsdelivr.net/npm/pace-js@1.0.2/pace.min') %>
|
<link
|
||||||
<% } %>
|
rel="stylesheet"
|
||||||
<%- partial('google-analytics') %>
|
href="https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/css/remixicon.min.css"
|
||||||
<%- partial('baidu-analytics') %>
|
/>
|
||||||
</head>
|
<%- 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('baidu-analytics')
|
||||||
|
%>
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://cdn.jsdelivr.net/npm/@sweetalert2/theme-bulma@5.0.1/bulma.min.css"
|
||||||
|
/>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.19/dist/sweetalert2.min.js"></script>
|
||||||
|
|
||||||
|
<!-- mermaid -->
|
||||||
|
<% if (theme.mermaid.enable) { %>
|
||||||
|
<script src="<%= theme.mermaid.cdn %>"></script>
|
||||||
|
<% } %>
|
||||||
|
<style>
|
||||||
|
.swal2-styled.swal2-confirm {
|
||||||
|
font-size: 1.6rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
</html>
|
||||||
</html>
|
</html>
|
37
layout/_partial/lock.ejs
Normal file
37
layout/_partial/lock.ejs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<% if (theme.lock.enable){ %>
|
||||||
|
<script>
|
||||||
|
const password = "<%= theme.lock.password %>";
|
||||||
|
const lock_password = window.sessionStorage.getItem("lock_password");
|
||||||
|
console.log(password, lock_password);
|
||||||
|
if (lock_password !== password) {
|
||||||
|
Swal.fire({
|
||||||
|
title: "<%= __('lock.lock_info') %>",
|
||||||
|
input: "text",
|
||||||
|
inputAttributes: {
|
||||||
|
autocapitalize: "off",
|
||||||
|
},
|
||||||
|
showCancelButton: false,
|
||||||
|
showLoaderOnConfirm: true,
|
||||||
|
allowOutsideClick: false,
|
||||||
|
confirmButtonText: "<%= __('lock.confirm_text') %>",
|
||||||
|
}).then((result) => {
|
||||||
|
console.log(result);
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
console.log(password);
|
||||||
|
if (result.value === password) {
|
||||||
|
window.sessionStorage.setItem("lock_password", result.value);
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
icon: "error",
|
||||||
|
title: "<%= __('lock.lock_error') %>",
|
||||||
|
confirmButtonText: "<%= __('lock.confirm_text') %>",
|
||||||
|
allowOutsideClick: false,
|
||||||
|
}).then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<% } %>
|
8
layout/_partial/post/author.ejs
Normal file
8
layout/_partial/post/author.ejs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<% if (post.authors && post.authors.length){ %>
|
||||||
|
<div class="<%= class_name %>" <% if (!index){ %> style="text-align: center" <% }%>>
|
||||||
|
作者:<% for (var i = 0; i < post.authors.length - 1; i++) { %>
|
||||||
|
<%= post.authors[i]%> ,
|
||||||
|
<% }%> <%= post.authors[post.authors.length - 1] %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% } %>
|
@@ -1,5 +1,5 @@
|
|||||||
<span>
|
<span>
|
||||||
<span><i class="ri-user-3-fill"></i><%- __('site_visitors') %>:<span id="busuanzi_value_site_uv"></span></s>
|
<span><i class="ri-user-3-fill"></i><%- __('site_visitors') %>:<span id="busuanzi_value_site_uv"></span></span>
|
||||||
<span class="division">|</span>
|
<span class="division">|</span>
|
||||||
<span><i class="ri-eye-fill"></i><%- __('page_views') %>:<span id="busuanzi_value_page_pv"></span></span>
|
<span><i class="ri-eye-fill"></i><%- __('page_views') %>:<span id="busuanzi_value_page_pv"></span></span>
|
||||||
</span>
|
</span>
|
@@ -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.6.2/dist/gitalk.css') %>
|
<%- css('https://cdn.jsdelivr.net/npm/gitalk@1.7.2/dist/gitalk.css') %>
|
||||||
<%- js('https://cdn.jsdelivr.net/npm/gitalk@1.6.2/dist/gitalk.min.js') %>
|
<%- js('https://cdn.jsdelivr.net/npm/gitalk@1.7.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({
|
||||||
|
@@ -1,88 +1,47 @@
|
|||||||
<% if (!index && theme.leancloud && theme.leancloud.enable){ %>
|
<% if (!index && post.comments){ %>
|
||||||
<!-- minivaline评论 -->
|
<!-- minivaline评论 -->
|
||||||
<div id="mvcomments-box">
|
<div id="mvcomments-box">
|
||||||
<div id="mvcomments"></div>
|
<div id="mvcomments"></div>
|
||||||
</div>
|
</div>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/minivaline@2/dist/MiniValine.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/minivaline@6"></script>
|
||||||
<script>
|
<script>
|
||||||
new MiniValine({
|
new MiniValine(Object.assign(<%- JSON.stringify(theme.minivaline) %>, {
|
||||||
el: '#mvcomments',
|
el: '#mvcomments',
|
||||||
appId: '<%- theme.leancloud.app_id %>',
|
}));
|
||||||
appKey: '<%- theme.leancloud.app_key %>',
|
|
||||||
mode: '<%- theme.minivaline.mode %>',
|
|
||||||
placeholder: '<%- theme.minivaline.placeholder %>',
|
|
||||||
pathname: window.location.pathname,
|
|
||||||
lang: '<%- theme.minivaline.lang %>',
|
|
||||||
adminEmailMd5: '<%- theme.minivaline.adminEmailMd5 %>',
|
|
||||||
tagMeta: <%- '["' + theme.minivaline.tagMeta.join('", "') + '"]' %>,
|
|
||||||
master: <%- '["' + theme.minivaline.master.join('", "') + '"]' %>,
|
|
||||||
friends: <%- '["' + theme.minivaline.friends.join('", "') + '"]' %>,
|
|
||||||
math: <%- theme.minivaline.math %>,
|
|
||||||
md: <%- theme.minivaline.md %>,
|
|
||||||
enableQQ: <%- theme.minivaline.enableQQ %>,
|
|
||||||
NoRecordIP: <%- theme.minivaline.NoRecordIP %>,
|
|
||||||
visitor: <%- theme.minivaline.visitor %>,
|
|
||||||
maxNest: <%- theme.minivaline.maxNest %>,
|
|
||||||
pageSize: <%- theme.minivaline.pageSize %>,
|
|
||||||
serverURLs: '<%- theme.minivaline.serverURLs %>',
|
|
||||||
emoticonUrl: <%- '["' + theme.minivaline.emoticonUrl.join('", "') + '"]' %>,
|
|
||||||
});
|
|
||||||
const infoEle = document.querySelector('#mvcomments .info');
|
const infoEle = document.querySelector('#mvcomments .info');
|
||||||
if (infoEle && infoEle.childNodes && infoEle.childNodes.length > 0) {
|
if (infoEle && infoEle.childNodes && infoEle.childNodes.length > 0) {
|
||||||
infoEle.childNodes.forEach(function (item) {
|
infoEle.childNodes.forEach(function (item) {
|
||||||
item.parentNode.removeChild(item);
|
item.parentNode.removeChild(item);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
#mvcomments-box {
|
#mvcomments-box {
|
||||||
padding: 5px 30px;
|
padding: 5px 30px;
|
||||||
}
|
}
|
||||||
|
@media screen and (max-width: 800px) {
|
||||||
@media screen and (max-width: 800px) {
|
#mvcomments-box {
|
||||||
#mvcomments-box {
|
padding: 5px 0px;
|
||||||
padding: 5px 0px;
|
}
|
||||||
}
|
}
|
||||||
}
|
:root .darkmode {
|
||||||
|
--ohhho-color-p: #bbb;
|
||||||
.v .vlist .vcard .vh {
|
--ohhho-color-text: #fff;
|
||||||
padding-right: 20px;
|
--ohhho-color-card: #252d38;
|
||||||
}
|
--ohhho-color-block: rgba(68, 68, 68, 0.65);
|
||||||
|
--ohhho-expand-before-background: linear-gradient(
|
||||||
.v .vlist .vcard {
|
180deg,
|
||||||
padding-left: 10px;
|
rgba(246, 246, 246, 0),
|
||||||
}
|
rgba(0, 0, 0, 0.9)
|
||||||
|
);
|
||||||
.darkmode .commentTrigger{
|
--ohhho-expand-after-background: rgba(0, 0, 0, 0.9);
|
||||||
background-color: #403e3e !important;
|
}
|
||||||
}
|
.darkmode .ohhho pre {
|
||||||
.darkmode .MiniValine .vpage .more{
|
background: #888;
|
||||||
background: #21232F
|
border: 1px solid var(--ohhho-color-block);
|
||||||
}
|
}
|
||||||
.darkmode img{
|
.darkmode .ohhho .vlist .vcard .vcomment-body .vhead {
|
||||||
filter: brightness(30%)
|
filter: brightness(85%);
|
||||||
}
|
}
|
||||||
.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 .info .col .count{
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.darkmode .MiniValine .vinputs-area .vextra-area .vsmile-icons{
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
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,4 +1,4 @@
|
|||||||
<% 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>
|
<div id="vcomments"></div>
|
||||||
|
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>
|
@@ -28,18 +28,13 @@
|
|||||||
<aside class="sidebar on">
|
<aside class="sidebar on">
|
||||||
<%- partial('_partial/sidebar') %>
|
<%- partial('_partial/sidebar') %>
|
||||||
</aside>
|
</aside>
|
||||||
<script>
|
|
||||||
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/modal') %>
|
||||||
<%- partial('_partial/after-footer') %>
|
<%- partial('_partial/after-footer') %>
|
||||||
|
|
||||||
<% if (theme.music&&theme.music.enable){ %>
|
<% if (theme.music&&theme.music.enable){ %>
|
||||||
<%- partial('_partial/music') %>
|
<%- partial('_partial/music') %>
|
||||||
<% } %>
|
<% } %>
|
||||||
|
<%- partial('_partial/lock') %>
|
||||||
</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>
|
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')
|
||||||
|
}
|
||||||
|
}
|
28
package.json
28
package.json
@@ -1,10 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ayer",
|
"name": "hexo-theme-ayer",
|
||||||
"version": "1.8.0",
|
"version": "1.9.2",
|
||||||
"description": "a clean and elegant theme for hexo.",
|
"description": "a clean and elegant theme for hexo.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "parcel serve source-src/main.js -d source/dist",
|
"dev": "rollup -c -w",
|
||||||
"build": "rimraf source/dist && parcel build source-src/main.js -d source/dist --no-source-maps"
|
"build": "rollup -c",
|
||||||
|
"postinstall": "node ./move_config.js",
|
||||||
|
"test": "stylint source-src/css/style.styl -c .stylintrc"
|
||||||
},
|
},
|
||||||
"source": "source-src/main.js",
|
"source": "source-src/main.js",
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -17,16 +19,18 @@
|
|||||||
"blog",
|
"blog",
|
||||||
"ayer"
|
"ayer"
|
||||||
],
|
],
|
||||||
"author": "Shen-Yu",
|
"author": "Shen-Yu <shenyu@hotmail.com>",
|
||||||
"license": "SATA",
|
"license": "SATA",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/Shen-Yu/hexo-theme-ayer/issues"
|
"url": "https://github.com/Shen-Yu/hexo-theme-ayer/issues",
|
||||||
|
"email": "shenyu@hotmail.com"
|
||||||
},
|
},
|
||||||
"homepage": ".",
|
"homepage": "https://shen-yu.gitee.io/",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "^9.7.4",
|
"autoprefixer": "^9.8.6",
|
||||||
"parcel-bundler": "^1.12.4",
|
"rollup": "^2.50.2",
|
||||||
"postcss-modules": "^1.5.0"
|
"rollup-plugin-styles": "^3.14.1",
|
||||||
},
|
"rollup-plugin-terser": "^7.0.2",
|
||||||
"dependencies": {}
|
"stylint": "^2.0.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
16
rollup.config.js
Normal file
16
rollup.config.js
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
import autoprefixer from "autoprefixer";
|
||||||
|
import styles from "rollup-plugin-styles";
|
||||||
|
import { terser } from "rollup-plugin-terser";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
input: "source-src/main.js",
|
||||||
|
output: {
|
||||||
|
dir: "source/dist",
|
||||||
|
format: "iife",
|
||||||
|
assetFileNames: "[name][extname]",
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
styles({ mode: "extract", minimize: true, plugins: [autoprefixer()] }),
|
||||||
|
terser(),
|
||||||
|
],
|
||||||
|
};
|
11
scripts/events/index.js
Normal file
11
scripts/events/index.js
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/* global hexo */
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
hexo.on("generateBefore", () => {
|
||||||
|
require("./lib/merge-configs")(hexo);
|
||||||
|
});
|
||||||
|
|
||||||
|
hexo.on("generateAfter", () => {
|
||||||
|
require("./lib/hello")(hexo);
|
||||||
|
});
|
38
scripts/events/lib/hello.js
Normal file
38
scripts/events/lib/hello.js
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
module.exports = (hexo) => {
|
||||||
|
const isZh = hexo.theme.i18n.languages[0].search(/zh-CN/i) !== -1;
|
||||||
|
if (isZh) {
|
||||||
|
hexo.log.info(`
|
||||||
|
------------------------------------------------
|
||||||
|
| |
|
||||||
|
| __ ________ _____ |
|
||||||
|
| /\\\\ \\ / / ____| __ \\ |
|
||||||
|
| / \\\\ \\_/ /| |__ | |__) | |
|
||||||
|
| / /\\ \\\\ / | __| | _ / |
|
||||||
|
| / ____ \\| | | |____| | \\ \\ |
|
||||||
|
| /_/ \\_\\_| |______|_| \\_\\ |
|
||||||
|
| |
|
||||||
|
| 感谢使用 Ayer 主题 ! |
|
||||||
|
| 文档: https://shen-yu.gitee.io/2019/ayer/ |
|
||||||
|
| |
|
||||||
|
------------------------------------------------
|
||||||
|
`);
|
||||||
|
} else {
|
||||||
|
hexo.log.info(`
|
||||||
|
----------------------------------------------------
|
||||||
|
| |
|
||||||
|
| __ ________ _____ |
|
||||||
|
| /\\\\ \\ / / ____| __ \\ |
|
||||||
|
| / \\\\ \\_/ /| |__ | |__) | |
|
||||||
|
| / /\\ \\\\ / | __| | _ / |
|
||||||
|
| / ____ \\| | | |____| | \\ \\ |
|
||||||
|
| /_/ \\_\\_| |______|_| \\_\\ |
|
||||||
|
| |
|
||||||
|
| Thank you for using Ayer theme ! |
|
||||||
|
| Docs: https://github.com/Shen-Yu/hexo-theme-ayer |
|
||||||
|
| |
|
||||||
|
----------------------------------------------------
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
};
|
28
scripts/events/lib/merge-configs.js
Normal file
28
scripts/events/lib/merge-configs.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const objUtil = require("../../utils/object");
|
||||||
|
const { isNotEmptyObject } = require("../../utils/object");
|
||||||
|
|
||||||
|
module.exports = (hexo) => {
|
||||||
|
const isZh = hexo.theme.i18n.languages[0].search(/zh-CN/i) !== -1;
|
||||||
|
|
||||||
|
if (isNotEmptyObject(hexo.config.theme_config)) {
|
||||||
|
hexo.theme.config = objUtil.merge(
|
||||||
|
{},
|
||||||
|
hexo.theme.config,
|
||||||
|
hexo.config.theme_config
|
||||||
|
);
|
||||||
|
if (isZh) {
|
||||||
|
hexo.log.info("[Ayer] 读取 _config.yml 中 theme_config 配置项覆盖配置");
|
||||||
|
} else {
|
||||||
|
hexo.log.info(
|
||||||
|
"[Ayer] Merge theme config from theme_config in _config.yml"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hexo.log.debug(
|
||||||
|
"[Ayer] Output theme config:\n",
|
||||||
|
JSON.stringify(hexo.theme.config, undefined, 2)
|
||||||
|
);
|
||||||
|
};
|
12
scripts/utils/join-path.js
Normal file
12
scripts/utils/join-path.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const joinPath = function(base, relative) {
|
||||||
|
if (relative && /^https*:\/\//.test(relative)) {
|
||||||
|
return relative;
|
||||||
|
}
|
||||||
|
return relative
|
||||||
|
? base.replace(/\/+$/, '') + '/' + relative.replace(/^\/+/, '')
|
||||||
|
: base;
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = joinPath;
|
31
scripts/utils/object.js
Normal file
31
scripts/utils/object.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const isObject = (obj) => {
|
||||||
|
return obj && typeof obj === 'object' && !Array.isArray(obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
const isNotEmptyObject = (obj) => {
|
||||||
|
return obj && typeof obj === 'object' && Object.getOwnPropertyNames(obj).length !== 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
const merge = (target, ...sources) => {
|
||||||
|
for (const source of sources) {
|
||||||
|
for (const key in source) {
|
||||||
|
if (!Object.prototype.hasOwnProperty.call(source, key)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (isObject(target[key]) && isObject(source[key])) {
|
||||||
|
merge(target[key], source[key]);
|
||||||
|
} else {
|
||||||
|
target[key] = source[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return target;
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
isObject,
|
||||||
|
isNotEmptyObject,
|
||||||
|
merge
|
||||||
|
};
|
@@ -31,3 +31,8 @@ darkmode()
|
|||||||
color: #ccc;
|
color: #ccc;
|
||||||
input::-ms-input-placeholder
|
input::-ms-input-placeholder
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
|
.categories-box a
|
||||||
|
color: #f2f2f2;
|
||||||
|
#friends_link .friends_li a
|
||||||
|
background-color rgba(255,255,255,.15)
|
||||||
|
color: #fff;
|
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
|
@@ -73,7 +73,7 @@
|
|||||||
margin-right 0.5em
|
margin-right 0.5em
|
||||||
margin-left 1em
|
margin-left 1em
|
||||||
.caption
|
.caption
|
||||||
color color-grey
|
color froth
|
||||||
display block
|
display block
|
||||||
font-size 0.9em
|
font-size 0.9em
|
||||||
margin-top 0.5em
|
margin-top 0.5em
|
||||||
@@ -106,6 +106,13 @@
|
|||||||
color body-color
|
color body-color
|
||||||
padding-left 2rem
|
padding-left 2rem
|
||||||
border-left 4px solid body-color
|
border-left 4px solid body-color
|
||||||
|
.article-author
|
||||||
|
display block
|
||||||
|
font-size 20px
|
||||||
|
margin-bottom 3rem
|
||||||
|
text-decoration none
|
||||||
|
color body-color
|
||||||
|
padding-left 2rem
|
||||||
|
|
||||||
.article-footer
|
.article-footer
|
||||||
clearfix()
|
clearfix()
|
||||||
@@ -260,6 +267,8 @@ $article-share-link
|
|||||||
background google-color
|
background google-color
|
||||||
text-shadow 0 1px darken(google-color, 20%)
|
text-shadow 0 1px darken(google-color, 20%)
|
||||||
|
|
||||||
|
.pswp__caption__center
|
||||||
|
text-align center !important
|
||||||
|
|
||||||
@import "tocbot"
|
@import "tocbot"
|
||||||
@import "gallery"
|
@import "gallery"
|
||||||
|
@@ -56,12 +56,14 @@
|
|||||||
color sea
|
color sea
|
||||||
|
|
||||||
.float_btns
|
.float_btns
|
||||||
position fixed
|
position sticky
|
||||||
bottom 10rem
|
bottom 10rem
|
||||||
right 50px
|
right 50px
|
||||||
z-index 9996
|
z-index 9996
|
||||||
text-align center
|
text-align center
|
||||||
transform scale(1.2)
|
transform scale(1.2)
|
||||||
|
width: 50px
|
||||||
|
float: right
|
||||||
|
|
||||||
#mask
|
#mask
|
||||||
position fixed
|
position fixed
|
||||||
|
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)
|
@@ -74,6 +74,9 @@
|
|||||||
.local-search
|
.local-search
|
||||||
width 100%
|
width 100%
|
||||||
|
|
||||||
|
#main
|
||||||
|
position relative
|
||||||
|
|
||||||
|
|
||||||
// Media Query
|
// Media Query
|
||||||
@media (min-width: 768px)
|
@media (min-width: 768px)
|
||||||
|
@@ -14,6 +14,13 @@
|
|||||||
opacity .8
|
opacity .8
|
||||||
background-color body-color
|
background-color body-color
|
||||||
&.nav-main
|
&.nav-main
|
||||||
|
height 60vh
|
||||||
|
overflow-y scroll
|
||||||
|
scrollbar-width none
|
||||||
|
-ms-overflow-style none
|
||||||
|
&::-webkit-scrollbar
|
||||||
|
width 0px
|
||||||
|
height 0px
|
||||||
.nav-item-link
|
.nav-item-link
|
||||||
i
|
i
|
||||||
font-size 1rem
|
font-size 1rem
|
||||||
|
@@ -8,9 +8,25 @@
|
|||||||
opacity .95
|
opacity .95
|
||||||
max-width 255px
|
max-width 255px
|
||||||
border-radius 8px
|
border-radius 8px
|
||||||
> .toc-list
|
>.toc-list
|
||||||
position relative
|
position relative
|
||||||
overflow hidden
|
overflow-x hidden
|
||||||
|
overflow-y scroll
|
||||||
|
max-height 70vh
|
||||||
|
|
||||||
|
>.toc-list::-webkit-scrollbar
|
||||||
|
width 4px
|
||||||
|
|
||||||
|
>.toc-list::-webkit-scrollbar-thumb
|
||||||
|
border-radius 10px
|
||||||
|
-webkit-box-shadow inset 0 0 5px rgba(0,0,0,0.2)
|
||||||
|
background rgba(0,0,0,0.2)
|
||||||
|
|
||||||
|
>.toc-list::-webkit-scrollbar-track
|
||||||
|
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2)
|
||||||
|
border-radius: 0
|
||||||
|
background: rgba(0,0,0,0.1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.toc-list
|
.toc-list
|
||||||
|
@@ -30,7 +30,7 @@ body
|
|||||||
margin 0
|
margin 0
|
||||||
overflow-x hidden
|
overflow-x hidden
|
||||||
text-size-adjust 100%
|
text-size-adjust 100%
|
||||||
// Dark Mode
|
//Dark Mode
|
||||||
&.darkmode
|
&.darkmode
|
||||||
darkmode()
|
darkmode()
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ img
|
|||||||
max-width 100%
|
max-width 100%
|
||||||
|
|
||||||
button
|
button
|
||||||
outline: none
|
outline: 0
|
||||||
cursor pointer
|
cursor pointer
|
||||||
|
|
||||||
@import "_extend"
|
@import "_extend"
|
||||||
@@ -71,11 +71,13 @@ button
|
|||||||
@import "_partial/apple"
|
@import "_partial/apple"
|
||||||
@import "_partial/reward"
|
@import "_partial/reward"
|
||||||
@import "_partial/share"
|
@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%
|
@@ -1,6 +1,6 @@
|
|||||||
(function ($) {
|
(function ($) {
|
||||||
// Search
|
// Search
|
||||||
let $searchWrap = $('.search-form-wrap'),
|
let $searchWrap = $(".search-form-wrap"),
|
||||||
isSearchAnim = false,
|
isSearchAnim = false,
|
||||||
searchAnimDuration = 200;
|
searchAnimDuration = 200;
|
||||||
|
|
||||||
@@ -15,26 +15,26 @@
|
|||||||
}, searchAnimDuration);
|
}, searchAnimDuration);
|
||||||
};
|
};
|
||||||
|
|
||||||
$('.nav-item-search').click(() => {
|
$(".nav-item-search").click(() => {
|
||||||
if (isSearchAnim) return;
|
if (isSearchAnim) return;
|
||||||
startSearchAnim();
|
startSearchAnim();
|
||||||
$searchWrap.addClass('on');
|
$searchWrap.addClass("on");
|
||||||
stopSearchAnim(function () {
|
stopSearchAnim(function () {
|
||||||
$('.local-search-input').focus();
|
$(".local-search-input").focus();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).mouseup((e) => {
|
$(document).mouseup((e) => {
|
||||||
const _con = $('.local-search');
|
const _con = $(".local-search");
|
||||||
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
|
if (!_con.is(e.target) && _con.has(e.target).length === 0) {
|
||||||
$searchWrap.removeClass('on');
|
$searchWrap.removeClass("on");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 建议在移动端不初始化,其实 /search.xml 文件还挺大的,
|
// Not recommended in mobile, /search.xml is actually large.
|
||||||
if ($('.local-search').size()) {
|
if ($(".local-search").size()) {
|
||||||
$.getScript('/js/search.js', function () {
|
$.getScript("/js/search.js", function () {
|
||||||
searchFunc("/search.xml", 'local-search-input', 'local-search-result');
|
searchFunc("/search.xml", "local-search-input", "local-search-result");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,29 +56,35 @@
|
|||||||
return navigator.userAgent.match(/IEMobile/i);
|
return navigator.userAgent.match(/IEMobile/i);
|
||||||
},
|
},
|
||||||
any: function () {
|
any: function () {
|
||||||
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
|
return (
|
||||||
}
|
isMobile.Android() ||
|
||||||
|
isMobile.BlackBerry() ||
|
||||||
|
isMobile.iOS() ||
|
||||||
|
isMobile.Opera() ||
|
||||||
|
isMobile.Windows()
|
||||||
|
);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Share
|
// Share
|
||||||
$('.share-outer').click(() => $('.share-wrap').fadeToggle())
|
$(".share-outer").click(() => $(".share-wrap").fadeToggle());
|
||||||
|
|
||||||
// Lazyload
|
// Lazyload
|
||||||
$("img.lazy").lazyload({
|
$("img.lazy").lazyload({
|
||||||
effect: "fadeIn"
|
effect: "fadeIn",
|
||||||
});
|
});
|
||||||
|
|
||||||
// JustifiedGallery
|
// JustifiedGallery
|
||||||
$('#gallery').justifiedGallery({
|
$("#gallery").justifiedGallery({
|
||||||
rowHeight: 200,
|
rowHeight: 200,
|
||||||
margins: 5
|
margins: 5,
|
||||||
});
|
});
|
||||||
|
|
||||||
// ScrollDown
|
// ScrollDown
|
||||||
$(document).ready(function ($) {
|
$(document).ready(function ($) {
|
||||||
$('.anchor').click(function (e) {
|
$(".anchor").click(function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
$('main').animate({ scrollTop: $('.cover').height() }, 'smooth');
|
$("main").animate({ scrollTop: $(".cover").height() }, "smooth");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -89,17 +95,17 @@
|
|||||||
const upperLimit = 1000;
|
const upperLimit = 1000;
|
||||||
|
|
||||||
// Our scroll link element
|
// Our scroll link element
|
||||||
const scrollElem = $('#totop');
|
const scrollElem = $("#totop");
|
||||||
|
|
||||||
// Scroll to top speed
|
// Scroll to top speed
|
||||||
const scrollSpeed = 1000;
|
const scrollSpeed = 1000;
|
||||||
|
|
||||||
// Show and hide the scroll to top link based on scroll position
|
// Show and hide the scroll to top link based on scroll position
|
||||||
scrollElem.hide();
|
scrollElem.hide();
|
||||||
$('.content').scroll(function () {
|
$(".content").scroll(function () {
|
||||||
const scrollTop = $('.content').scrollTop();
|
const scrollTop = $(".content").scrollTop();
|
||||||
if (scrollTop > upperLimit) {
|
if (scrollTop > upperLimit) {
|
||||||
$(scrollElem).stop().fadeTo(200, .6); // fade back in
|
$(scrollElem).stop().fadeTo(200, 0.6); // fade back in
|
||||||
} else {
|
} else {
|
||||||
$(scrollElem).stop().fadeTo(200, 0); // fade out
|
$(scrollElem).stop().fadeTo(200, 0); // fade out
|
||||||
}
|
}
|
||||||
@@ -107,63 +113,77 @@
|
|||||||
|
|
||||||
// Scroll to top animation on click
|
// Scroll to top animation on click
|
||||||
$(scrollElem).click(function () {
|
$(scrollElem).click(function () {
|
||||||
$('.content').animate({ scrollTop: 0 }, scrollSpeed); return false;
|
$(".content").animate({ scrollTop: 0 }, scrollSpeed);
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
// Mobile Nav
|
// Caption
|
||||||
const $content = $('.content'),
|
$(".article-entry").each(function (i) {
|
||||||
$sidebar = $('.sidebar');
|
$(this)
|
||||||
|
.find("img")
|
||||||
|
.each(function () {
|
||||||
|
if ($(this).parent().is("a")) return;
|
||||||
|
|
||||||
$('.navbar-toggle').on('click', function () {
|
const { alt } = this;
|
||||||
$('.content,.sidebar').addClass('anim')
|
|
||||||
$content.toggleClass('on');
|
if (alt) $(this).after('<span class="caption">' + alt + "</span>");
|
||||||
$sidebar.toggleClass('on');
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Mobile Nav
|
||||||
|
const $content = $(".content"),
|
||||||
|
$sidebar = $(".sidebar");
|
||||||
|
|
||||||
|
$(".navbar-toggle").on("click", function () {
|
||||||
|
$(".content,.sidebar").addClass("anim");
|
||||||
|
$content.toggleClass("on");
|
||||||
|
$sidebar.toggleClass("on");
|
||||||
});
|
});
|
||||||
|
|
||||||
// Reward
|
// Reward
|
||||||
$('#reward-btn').click(() => {
|
$("#reward-btn").click(() => {
|
||||||
$('#reward').fadeIn(150)
|
$("#reward").fadeIn(150);
|
||||||
$('#mask').fadeIn(150)
|
$("#mask").fadeIn(150);
|
||||||
|
});
|
||||||
|
$("#reward .close, #mask").click(() => {
|
||||||
|
$("#mask").fadeOut(100);
|
||||||
|
$("#reward").fadeOut(100);
|
||||||
});
|
});
|
||||||
$('#reward .close, #mask').click(() => {
|
|
||||||
$('#mask').fadeOut(100)
|
|
||||||
$('#reward').fadeOut(100)
|
|
||||||
})
|
|
||||||
|
|
||||||
// DarkMode
|
// DarkMode
|
||||||
if (sessionStorage.getItem('darkmode') == 1) {
|
if (sessionStorage.getItem("darkmode") == 1) {
|
||||||
$('body').addClass('darkmode')
|
$("body").addClass("darkmode");
|
||||||
$('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line')
|
$("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line");
|
||||||
} else {
|
} else {
|
||||||
$('body').removeClass('darkmode')
|
$("body").removeClass("darkmode");
|
||||||
$('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line')
|
$("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line");
|
||||||
}
|
}
|
||||||
$('#todark').click(() => {
|
$("#todark").click(() => {
|
||||||
if (sessionStorage.getItem('darkmode') == 1) {
|
if (sessionStorage.getItem("darkmode") == 1) {
|
||||||
$('body').removeClass('darkmode')
|
$("body").removeClass("darkmode");
|
||||||
$('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line')
|
$("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line");
|
||||||
sessionStorage.removeItem('darkmode')
|
sessionStorage.removeItem("darkmode");
|
||||||
} else {
|
} else {
|
||||||
$('body').addClass('darkmode')
|
$("body").addClass("darkmode");
|
||||||
$('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line')
|
$("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line");
|
||||||
sessionStorage.setItem('darkmode', 1)
|
sessionStorage.setItem("darkmode", 1);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
// showThemeInConsole
|
// ShowThemeInConsole
|
||||||
const ayerInfo = '主题不错?⭐star 支持一下 ->';
|
const ayerInfo = "主题不错?⭐star 支持一下 ->";
|
||||||
const ayerURL = 'https://github.com/Shen-Yu/hexo-theme-ayer';
|
const ayerURL = "https://github.com/Shen-Yu/hexo-theme-ayer";
|
||||||
const ayerNameStr =
|
const ayerNameStr =
|
||||||
'\n\n _ __ _______ _____ \n / \\ \\ \\ / / ____| _ \\ \n / _ \\ \\ V /| _| | |_) | \n / ___ \\ \| | | |___| _ < \n /_/ \\_\\ _| |_____|_| \\__\\ \n';
|
"\n\n _ __ _______ _____ \n / \\ \\ \\ / / ____| _ \\ \n / _ \\ \\ V /| _| | |_) | \n / ___ \\ | | | |___| _ < \n /_/ \\_\\ _| |_____|_| \\__\\ \n";
|
||||||
const ayerInfoStyle =
|
const ayerInfoStyle =
|
||||||
'background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;';
|
"background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;";
|
||||||
const ayerURLStyle =
|
const ayerURLStyle =
|
||||||
'background-color: #ffbca2; padding: 8px; font-size: 14px;';
|
"background-color: #ffbca2; padding: 8px; font-size: 14px;";
|
||||||
const ayerNameStyle = 'background-color: #eaf8ff;';
|
const ayerNameStyle = "background-color: #eaf8ff;";
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'%c%s%c%s%c%s',
|
"%c%s%c%s%c%s",
|
||||||
ayerInfoStyle,
|
ayerInfoStyle,
|
||||||
ayerInfo,
|
ayerInfo,
|
||||||
ayerURLStyle,
|
ayerURLStyle,
|
||||||
@@ -171,7 +191,31 @@
|
|||||||
ayerNameStyle,
|
ayerNameStyle,
|
||||||
ayerNameStr
|
ayerNameStr
|
||||||
);
|
);
|
||||||
document.write('<script type="text/javascript" src="https://js.users.51.la/20544303.js"></script>');
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
|
// Tracking
|
||||||
|
!(function (p) {
|
||||||
|
"use strict";
|
||||||
|
!(function (t) {
|
||||||
|
var s = window,
|
||||||
|
e = document,
|
||||||
|
i = p,
|
||||||
|
c = "".concat(
|
||||||
|
"https:" === e.location.protocol ? "https://" : "http://",
|
||||||
|
"sdk.51.la/js-sdk-pro.min.js"
|
||||||
|
),
|
||||||
|
n = e.createElement("script"),
|
||||||
|
r = e.getElementsByTagName("script")[0];
|
||||||
|
(n.type = "text/javascript"),
|
||||||
|
n.setAttribute("charset", "UTF-8"),
|
||||||
|
(n.async = !0),
|
||||||
|
(n.src = c),
|
||||||
|
(n.id = "LA_COLLECT"),
|
||||||
|
(i.d = n);
|
||||||
|
var o = function () {
|
||||||
|
s.LA.ids.push(i);
|
||||||
|
};
|
||||||
|
s.LA ? s.LA.ids && o() : ((s.LA = p), (s.LA.ids = []), o()),
|
||||||
|
r.parentNode.insertBefore(n, r);
|
||||||
|
})();
|
||||||
|
})({ id: "JGjrOr2rebvP6q2a", ck: "JGjrOr2rebvP6q2a" });
|
||||||
|
@@ -1,10 +1,9 @@
|
|||||||
|
|
||||||
function generate(url, opts) {
|
function generate(url, opts) {
|
||||||
var url = url.replace(/<%-sUrl%>/g, encodeURIComponent(opts.sUrl))
|
var url = url.replace(/<%-sUrl%>/g, encodeURIComponent(opts.sUrl))
|
||||||
.replace(/<%-sTitle%>/g, opts.sTitle)
|
.replace(/<%-sTitle%>/g, encodeURIComponent(opts.sTitle))
|
||||||
.replace(/<%-sDesc%>/g, opts.sDesc)
|
.replace(/<%-sDesc%>/g, encodeURIComponent(opts.sDesc))
|
||||||
.replace(/<%-sPic%>/g, encodeURIComponent(opts.sPic));
|
.replace(/<%-sPic%>/g, encodeURIComponent(opts.sPic));
|
||||||
|
|
||||||
window.open(url);
|
window.open(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,7 +29,7 @@ function handleClick(type, opts) {
|
|||||||
} else if (type === 'facebook') {
|
} else if (type === 'facebook') {
|
||||||
generate('https://www.facebook.com/sharer/sharer.php?u=<%-sUrl%>', opts)
|
generate('https://www.facebook.com/sharer/sharer.php?u=<%-sUrl%>', opts)
|
||||||
} else if (type === 'twitter') {
|
} else if (type === 'twitter') {
|
||||||
generate('https://twitter.com/intent/tweet?text=<%-sTitle%>&url=<%-sUrl%>&via=<%-config.url%>', opts)
|
generate('https://twitter.com/intent/tweet?text=<%-sTitle%>&url=<%-sUrl%>', opts)
|
||||||
} else if (type === 'google') {
|
} else if (type === 'google') {
|
||||||
generate('https://plus.google.com/share?url=<%-sUrl%>', opts)
|
generate('https://plus.google.com/share?url=<%-sUrl%>', opts)
|
||||||
} else if (type === 'weixin') {
|
} else if (type === 'weixin') {
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
import './css/style.styl'
|
import "./css/style.styl";
|
||||||
import './js/ayer'
|
import "./js/ayer";
|
||||||
import './js/share'
|
import "./js/share";
|
||||||
|
129
source/404.html
129
source/404.html
@@ -1,68 +1,79 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>404</title>
|
||||||
|
<meta name="keywords" content="Hexo,Ayer,404,Design" />
|
||||||
|
<meta name="description" content="hexo theme ayer page 404." />
|
||||||
|
<meta
|
||||||
|
name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1, maximum-scale=1"
|
||||||
|
/>
|
||||||
|
<style>
|
||||||
|
html,
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
<head>
|
body {
|
||||||
<meta charset="UTF-8">
|
margin: 20px;
|
||||||
<title>404</title>
|
overflow: hidden;
|
||||||
<meta name="keywords" content="Hexo,Ayer,404,Design">
|
}
|
||||||
<meta name="description" content="hexo theme ayer page 404.">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
|
||||||
<style>
|
|
||||||
html,
|
|
||||||
figure {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
h1,
|
||||||
margin: 20px;
|
h3 {
|
||||||
overflow: hidden;
|
width: 100%;
|
||||||
}
|
text-align: center;
|
||||||
|
color: #403e3e;
|
||||||
|
}
|
||||||
|
|
||||||
h1,
|
h3 a {
|
||||||
h3 {
|
color: #0681d0;
|
||||||
width: 100%;
|
}
|
||||||
text-align: center;
|
|
||||||
color: #403e3e;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 a {
|
.forrestgump img {
|
||||||
color: #0681d0;
|
width: 52rem;
|
||||||
}
|
margin-left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
border-radius: 5%;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
.forrestgump img {
|
@media screen and (max-width: 768px) {
|
||||||
width: 52rem;
|
.forrestgump img {
|
||||||
margin-left: 50%;
|
width: 100%;
|
||||||
transform: translateX(-50%);
|
}
|
||||||
border-radius: 5%;
|
}
|
||||||
opacity: .8;
|
</style>
|
||||||
}
|
</head>
|
||||||
|
|
||||||
@media screen and (max-width: 768px) {
|
|
||||||
.forrestgump img {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="notfound">
|
|
||||||
<a class="notfound-link" href="/">
|
|
||||||
<img width="40"
|
|
||||||
src="data:image/png;base64,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">
|
|
||||||
</a>
|
|
||||||
<figure class="forrestgump">
|
|
||||||
<figcaption>
|
|
||||||
<h1>404<br>Not Found!</h1>
|
|
||||||
<h3>Life was like a journey on the sea, you never know what you're going to get.</h3>
|
|
||||||
<h3>亲,获取不到该路径的页面呢,请检查一下哦,可能你还需要仔细阅读 <a href="https://hexo.io/docs/">Hexo</a> 和 <a
|
|
||||||
href="https://shen-yu.gitee.io/2019/ayer/">Ayer</a> 的说明文档~</h3>
|
|
||||||
</figcaption>
|
|
||||||
<img src="https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/404.jpg">
|
|
||||||
</figure>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="notfound">
|
||||||
|
<a class="notfound-link" href="/">
|
||||||
|
<img
|
||||||
|
width="40"
|
||||||
|
src="data:image/png;base64,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"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<figure class="forrestgump">
|
||||||
|
<figcaption>
|
||||||
|
<h1>404<br />Not Found!</h1>
|
||||||
|
<h3>
|
||||||
|
Please check it, Maybe you should read
|
||||||
|
<a href="https://hexo.io/docs/">Hexo</a> and
|
||||||
|
<a href="https://shen-yu.gitee.io/2019/ayer/">Ayer</a> Docs
|
||||||
|
carefully.
|
||||||
|
</h3>
|
||||||
|
<h3>
|
||||||
|
亲,获取不到该路径的页面呢,请检查一下哦,可能你还需要仔细阅读
|
||||||
|
<a href="https://hexo.io/docs/">Hexo</a> 和
|
||||||
|
<a href="https://shen-yu.gitee.io/2019/ayer/">Ayer</a> 的说明文档~
|
||||||
|
</h3>
|
||||||
|
</figcaption>
|
||||||
|
<img src="https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/404.jpg" />
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
</html>
|
</html>
|
@@ -25,7 +25,12 @@ if hexo-config('mouse.enable')
|
|||||||
@media(max-width: 768px)
|
@media(max-width: 768px)
|
||||||
.tocbot
|
.tocbot
|
||||||
display none !important
|
display none !important
|
||||||
.content
|
.sidebar
|
||||||
|
left 0
|
||||||
&.on
|
&.on
|
||||||
transform translateX($aside-width)
|
left - $aside-width
|
||||||
|
.content
|
||||||
|
transform translateX($aside-width)
|
||||||
|
&.on
|
||||||
|
transform translateX(0)
|
||||||
|
|
||||||
|
2
source/dist/main.css
vendored
2
source/dist/main.css
vendored
File diff suppressed because one or more lines are too long
10
source/dist/main.js
vendored
10
source/dist/main.js
vendored
@@ -1,9 +1 @@
|
|||||||
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"MiQR":[function(require,module,exports) {
|
!function(){"use strict";var e;function t(e,t){e=e.replace(/<%-sUrl%>/g,encodeURIComponent(t.sUrl)).replace(/<%-sTitle%>/g,encodeURIComponent(t.sTitle)).replace(/<%-sDesc%>/g,encodeURIComponent(t.sDesc)).replace(/<%-sPic%>/g,encodeURIComponent(t.sPic));window.open(e)}function o(){$(".wx-share-modal").removeClass("in ready"),$("#share-mask").hide()}function s(e,o){"weibo"===e?t("http://service.weibo.com/share/share.php?url=<%-sUrl%>&title=<%-sTitle%>&pic=<%-sPic%>",o):"qq"===e?t("http://connect.qq.com/widget/shareqq/index.html?url=<%-sUrl%>&title=<%-sTitle%>&source=<%-sDesc%>",o):"douban"===e?t("https://www.douban.com/share/service?image=<%-sPic%>&href=<%-sUrl%>&name=<%-sTitle%>&text=<%-sDesc%>",o):"qzone"===e?t("http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=<%-sUrl%>&title=<%-sTitle%>&pics=<%-sPic%>&summary=<%-sDesc%>",o):"facebook"===e?t("https://www.facebook.com/sharer/sharer.php?u=<%-sUrl%>",o):"twitter"===e?t("https://twitter.com/intent/tweet?text=<%-sTitle%>&url=<%-sUrl%>",o):"google"===e?t("https://plus.google.com/share?url=<%-sUrl%>",o):"weixin"===e&&($(".wx-share-modal").addClass("in ready"),$("#share-mask").show())}!function(e){let t=e(".search-form-wrap"),o=!1;e(".nav-item-search").click((()=>{var s;o||(o=!0,t.addClass("on"),s=function(){e(".local-search-input").focus()},setTimeout((function(){o=!1,s&&s()}),200))})),e(document).mouseup((o=>{const s=e(".local-search");s.is(o.target)||0!==s.has(o.target).length||t.removeClass("on")})),e(".local-search").size()&&e.getScript("/js/search.js",(function(){searchFunc("/search.xml","local-search-input","local-search-result")})),e(".share-outer").click((()=>e(".share-wrap").fadeToggle())),e("img.lazy").lazyload({effect:"fadeIn"}),e("#gallery").justifiedGallery({rowHeight:200,margins:5}),e(document).ready((function(e){e(".anchor").click((function(t){t.preventDefault(),e("main").animate({scrollTop:e(".cover").height()},"smooth")}))})),(()=>{const t=e("#totop");t.hide(),e(".content").scroll((function(){e(".content").scrollTop()>1e3?e(t).stop().fadeTo(200,.6):e(t).stop().fadeTo(200,0)})),e(t).click((function(){return e(".content").animate({scrollTop:0},1e3),!1}))})(),e(".article-entry").each((function(t){e(this).find("img").each((function(){if(e(this).parent().is("a"))return;const{alt:t}=this;t&&e(this).after('<span class="caption">'+t+"</span>")}))}));const s=e(".content"),r=e(".sidebar");e(".navbar-toggle").on("click",(function(){e(".content,.sidebar").addClass("anim"),s.toggleClass("on"),r.toggleClass("on")})),e("#reward-btn").click((()=>{e("#reward").fadeIn(150),e("#mask").fadeIn(150)})),e("#reward .close, #mask").click((()=>{e("#mask").fadeOut(100),e("#reward").fadeOut(100)})),1==sessionStorage.getItem("darkmode")?(e("body").addClass("darkmode"),e("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line")):(e("body").removeClass("darkmode"),e("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line")),e("#todark").click((()=>{1==sessionStorage.getItem("darkmode")?(e("body").removeClass("darkmode"),e("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line"),sessionStorage.removeItem("darkmode")):(e("body").addClass("darkmode"),e("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line"),sessionStorage.setItem("darkmode",1))}));console.log("%c%s%c%s%c%s","background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;","主题不错?⭐star 支持一下 ->","background-color: #ffbca2; padding: 8px; font-size: 14px;","https://github.com/Shen-Yu/hexo-theme-ayer","background-color: #eaf8ff;","\n\n _ __ _______ _____ \n / \\ \\ \\ / / ____| _ \\ \n / _ \\ \\ V /| _| | |_) | \n / ___ \\ | | | |___| _ < \n /_/ \\_\\ _| |_____|_| \\__\\ \n")}(jQuery),e={id:"JGjrOr2rebvP6q2a",ck:"JGjrOr2rebvP6q2a"},function(t){var o=window,s=document,r=e,a="".concat("https:"===s.location.protocol?"https://":"http://","sdk.51.la/js-sdk-pro.min.js"),n=s.createElement("script"),c=s.getElementsByTagName("script")[0];n.type="text/javascript",n.setAttribute("charset","UTF-8"),n.async=!0,n.src=a,n.id="LA_COLLECT",r.d=n;var i=function(){o.LA.ids.push(r)};o.LA?o.LA.ids&&i():(o.LA=e,o.LA.ids=[],i()),c.parentNode.insertBefore(n,c)}();(()=>{let e=document.querySelectorAll(".share-sns");if(!e||0===e.length)return;let t=window.location.href,r=document.querySelector("title").innerHTML,a=document.querySelectorAll(".article-entry img").length?document.querySelector(".article-entry img").getAttribute("src"):"";""===a||/^(http:|https:)?\/\//.test(a)||(a=window.location.origin+a),e.forEach((e=>{e.onclick=o=>{s(e.getAttribute("data-type"),{sUrl:t,sPic:a,sTitle:r,sDesc:r})}})),document.querySelector("#mask").onclick=o,document.querySelector(".modal-close").onclick=o})()}();
|
||||||
|
|
||||||
},{}],"jSg4":[function(require,module,exports) {
|
|
||||||
!function(e){var o=e(".search-form-wrap"),a=!1;e(".nav-item-search").click(function(){var s;a||(a=!0,o.addClass("on"),s=function(){e(".local-search-input").focus()},setTimeout(function(){a=!1,s&&s()},200))}),e(document).mouseup(function(a){var s=e(".local-search");s.is(a.target)||0!==s.has(a.target).length||o.removeClass("on")}),e(".local-search").size()&&e.getScript("/js/search.js",function(){searchFunc("/search.xml","local-search-input","local-search-result")});var s;e(".share-outer").click(function(){return e(".share-wrap").fadeToggle()}),e("img.lazy").lazyload({effect:"fadeIn"}),e("#gallery").justifiedGallery({rowHeight:200,margins:5}),e(document).ready(function(e){e(".anchor").click(function(o){o.preventDefault(),e("main").animate({scrollTop:e(".cover").height()},"smooth")})}),(s=e("#totop")).hide(),e(".content").scroll(function(){e(".content").scrollTop()>1e3?e(s).stop().fadeTo(200,.6):e(s).stop().fadeTo(200,0)}),e(s).click(function(){return e(".content").animate({scrollTop:0},1e3),!1});var n=e(".content"),r=e(".sidebar");e(".navbar-toggle").on("click",function(){e(".content,.sidebar").addClass("anim"),n.toggleClass("on"),r.toggleClass("on")}),e("#reward-btn").click(function(){e("#reward").fadeIn(150),e("#mask").fadeIn(150)}),e("#reward .close, #mask").click(function(){e("#mask").fadeOut(100),e("#reward").fadeOut(100)}),1==sessionStorage.getItem("darkmode")?(e("body").addClass("darkmode"),e("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line")):(e("body").removeClass("darkmode"),e("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line")),e("#todark").click(function(){1==sessionStorage.getItem("darkmode")?(e("body").removeClass("darkmode"),e("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line"),sessionStorage.removeItem("darkmode")):(e("body").addClass("darkmode"),e("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line"),sessionStorage.setItem("darkmode",1))});console.log("%c%s%c%s%c%s","background-color: #49b1f5; color: #fff; padding: 8px; font-size: 14px;","主题不错?⭐star 支持一下 ->","background-color: #ffbca2; padding: 8px; font-size: 14px;","https://github.com/Shen-Yu/hexo-theme-ayer","background-color: #eaf8ff;","\n\n _ __ _______ _____ \n / \\ \\ \\ / / ____| _ \\ \n / _ \\ \\ V /| _| | |_) | \n / ___ \\ | | | |___| _ < \n /_/ \\_\\ _| |_____|_| \\__\\ \n"),document.write('<script type="text/javascript" src="https://js.users.51.la/20544303.js"><\/script>')}(jQuery);
|
|
||||||
},{}],"BNiz":[function(require,module,exports) {
|
|
||||||
function e(e,t){e=e.replace(/<%-sUrl%>/g,encodeURIComponent(t.sUrl)).replace(/<%-sTitle%>/g,t.sTitle).replace(/<%-sDesc%>/g,t.sDesc).replace(/<%-sPic%>/g,encodeURIComponent(t.sPic));window.open(e)}function t(){$(".wx-share-modal").addClass("in ready"),$("#share-mask").show()}function s(){$(".wx-share-modal").removeClass("in ready"),$("#share-mask").hide()}function r(s,r){"weibo"===s?e("http://service.weibo.com/share/share.php?url=<%-sUrl%>&title=<%-sTitle%>&pic=<%-sPic%>",r):"qq"===s?e("http://connect.qq.com/widget/shareqq/index.html?url=<%-sUrl%>&title=<%-sTitle%>&source=<%-sDesc%>",r):"douban"===s?e("https://www.douban.com/share/service?image=<%-sPic%>&href=<%-sUrl%>&name=<%-sTitle%>&text=<%-sDesc%>",r):"qzone"===s?e("http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=<%-sUrl%>&title=<%-sTitle%>&pics=<%-sPic%>&summary=<%-sDesc%>",r):"facebook"===s?e("https://www.facebook.com/sharer/sharer.php?u=<%-sUrl%>",r):"twitter"===s?e("https://twitter.com/intent/tweet?text=<%-sTitle%>&url=<%-sUrl%>&via=<%-config.url%>",r):"google"===s?e("https://plus.google.com/share?url=<%-sUrl%>",r):"weixin"===s&&t()}var c=function(){var e=document.querySelectorAll(".share-sns");if(e&&0!==e.length){var t=window.location.href,c=document.querySelector("title").innerHTML,o=document.querySelectorAll(".article-entry img").length?document.querySelector(".article-entry img").getAttribute("src"):"";""===o||/^(http:|https:)?\/\//.test(o)||(o=window.location.origin+o),e.forEach(function(e){e.onclick=function(s){r(e.getAttribute("data-type"),{sUrl:t,sPic:o,sTitle:c,sDesc:c})}}),document.querySelector("#mask").onclick=s,document.querySelector(".modal-close").onclick=s}};c();
|
|
||||||
},{}],"epB2":[function(require,module,exports) {
|
|
||||||
"use strict";require("./css/style.styl"),require("./js/ayer"),require("./js/share");
|
|
||||||
},{"./css/style.styl":"MiQR","./js/ayer":"jSg4","./js/share":"BNiz"}]},{},["epB2"], null)
|
|
||||||
|
BIN
source/images/beian.png
Normal file
BIN
source/images/beian.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Reference in New Issue
Block a user