108 Commits

Author SHA1 Message Date
shenyu
809d54eae2 1.8.24 2021-05-29 10:58:17 +08:00
shenyu
e76f208516 ️ bundle assets by rollup 2021-05-29 10:57:34 +08:00
shenyu
aad79d1baa ✏️ README.md 2021-05-24 11:45:14 +08:00
shenyu
221c637409 Merge branch 'master' of https://github.com/Shen-Yu/hexo-theme-ayer 2021-05-24 11:29:54 +08:00
shenyu
5a4edd6483 1.8.23 2021-05-24 11:29:16 +08:00
shenyu
0163b6bfe5 🛠️ hexo scripts 2021-05-24 11:28:56 +08:00
Eric Shen
3fa2e339c5 Update README.md 2021-05-18 10:19:02 +08:00
shenyu
1c857a0c5f 1.8.22 2021-05-15 12:48:41 +08:00
shenyu
302c6080fd 🐛 fix: float btns 2021-05-15 12:48:29 +08:00
shenyu
ec47bd254a Merge branch 'master' of https://github.com/Shen-Yu/hexo-theme-ayer 2021-04-28 10:37:59 +08:00
shenyu
42a6eb0c33 1.8.21 2021-04-28 10:37:27 +08:00
shenyu
0c0ea3312c 💄 fix: sidebar overflow scroll 2021-04-28 10:37:17 +08:00
Eric Shen
1e0275d757 Merge pull request #116 from MHG-LAB/master
minivaline v6
2021-04-26 14:23:49 +08:00
MHuiG
c5f8d5d058 minivaline v6 dark 2021-04-19 18:54:39 +08:00
MHuiG
38e99de4fb minivaline v6 2021-04-19 18:43:10 +08:00
shenyu
24be666717 🙈 update: ignore 2021-04-14 11:52:50 +08:00
shenyu
4991ad5085 1.8.20 2021-04-14 11:26:24 +08:00
shenyu
ed96a4ac21 feat: mermaid 2021-04-14 11:26:09 +08:00
shenyu
c61cbb4803 1.8.19 2021-04-14 10:40:23 +08:00
Eric Shen
2e7b792039 Merge pull request #114 from Kiprey/master
添加 mermaid 支持;提高gitalk版本,修复 busuanzi引用span错误
2021-04-14 10:38:14 +08:00
Kiprey
76096640f4 添加 mermaid 支持,提高gitalk版本,修复 busuanzi引用span错误 2021-04-14 09:38:10 +08:00
shenyu
343b1435c1 1.8.18 2021-04-09 13:58:21 +08:00
shenyu
6270c15b76 fix: sidebar 2021-04-09 13:57:44 +08:00
shenyu
1292dbff48 💄 rebuild 2021-04-09 11:06:37 +08:00
Eric Shen
651ccc266c Merge pull request #113 from wangwei1237/master
在文章title下方为每篇文章增加作者信息
2021-04-09 10:57:18 +08:00
Wang Wei
61ddfbf724 在文章title下方为每篇文章增加作者信息 2021-04-08 19:55:08 +08:00
Wang Wei
826a654766 在文章title下方为每篇文章增加作者信息 2021-04-08 19:36:55 +08:00
shenyu
6a407dc892 update: 404 page 2021-04-02 10:56:36 +08:00
shenyu
cb4eba81c7 1.8.17 2021-04-02 10:33:11 +08:00
shenyu
24a5b177ac 📦 update: parcel-bundler & remove: parcel-plugin-bundle-visualiser 2021-04-02 10:32:00 +08:00
shenyu
49cf370803 📈 update: track 2021-04-02 10:29:31 +08:00
shenyu
4dc27165b9 1.8.16 2021-04-01 09:50:21 +08:00
shenyu
77caffdbfa 👥 update: README.md 2021-03-30 11:37:38 +08:00
shenyu
9767e1fa3f 📝 README.md 2021-03-29 15:12:09 +08:00
shenyu
83572e499b ❤️ update: FUNDING.yml 2021-03-23 15:16:29 +08:00
shenyu
ea8711e0ca 🌐 fix: languages 2021-03-22 10:06:27 +08:00
shenyu
5fc9da7249 1.8.15 2021-03-11 15:05:32 +08:00
shenyu
b7c3ce4f21 update test 2021-03-11 14:48:59 +08:00
shenyu
7af6fda960 1.8.14 2021-03-11 14:12:50 +08:00
shenyu
501ce9a842 🐛 fix: share 2021-03-11 14:12:21 +08:00
沈宇
8de56d6a6e 1.8.13 2021-01-26 11:24:10 +08:00
沈宇
acb071831b 🚑 fix: head.ejs 2021-01-26 11:23:30 +08:00
沈宇
cd0825d52a 1.8.12 2021-01-24 12:28:36 +08:00
沈宇
5fec2eb442 chore: sponsor.jpg 2021-01-24 12:26:13 +08:00
沈宇
8e8f682098 chore: sponsor 2021-01-20 10:58:24 +08:00
沈宇
0753bb9bf3 1.8.11 2021-01-04 10:47:25 +08:00
沈宇
8066ea8b5b 📝 chore: advertisement 2021-01-04 10:46:42 +08:00
沈宇
85fe5c123e 1.8.10 2020-12-31 16:11:53 +08:00
沈宇
f6be671638 1.8.9 2020-12-31 16:11:41 +08:00
沈宇
240304719d feat: advertisement 2020-12-31 16:10:38 +08:00
Eric Shen
bb87ce34fc Merge pull request #100 from MHG-LAB/master
mv dark
2020-12-27 10:48:26 +08:00
MHuiG
777fc5af56 mv dark 2020-12-25 14:56:42 +08:00
Eric Shen
c585654582 Merge pull request #99 from MHG-LAB/master
minivaline v5
2020-12-25 12:25:08 +08:00
MHuiG
948cb65243 minivaline v5 2020-12-25 10:04:38 +08:00
沈宇
106f2494eb feat: twikoo 2020-12-24 13:42:43 +08:00
沈宇
4c72c3521c Merge branch 'master' of https://github.com/Shen-Yu/hexo-theme-ayer 2020-12-24 13:37:09 +08:00
沈宇
2dd7a5408b feat: twikoo 2020-12-24 13:36:44 +08:00
Eric Shen
7b58e4541a Merge pull request #96 from hankzhangcn/front_matter—comment
Front matter—comment
2020-11-30 10:27:17 +08:00
hankzhangcn
16ce821f1f 📝 docs: README.md 2020-11-27 16:05:49 +08:00
hankzhangcn
8aaa2094c4 📝 docs: README.md 2020-11-27 15:57:01 +08:00
hankzhangcn
567584695c Update valine.ejs 2020-11-27 15:52:22 +08:00
hankzhangcn
cd6c3c6e28 Update minivaline.ejs 2020-11-27 15:51:40 +08:00
hankzhangcn
def8609767 Update gitalk.ejs 2020-11-27 15:50:58 +08:00
hankzhangcn
af0bc34076 Update minivaline.ejs 2020-11-27 15:36:02 +08:00
沈宇
1c3644ef7b Merge branch 'master' of https://github.com/Shen-Yu/hexo-theme-ayer 2020-11-26 15:58:12 +08:00
hankzhangcn
b1def36445 添加关闭gitalk评论区的front-matter
在文章头添加`comment: false`可以关闭单篇文章的gitalk评论区。
2020-11-26 15:12:08 +08:00
hankzhangcn
47d33f0b13 添加关闭valine评论区的front-matter
在文章头添加`comment: false`可以关闭单篇文章的valine评论区。
2020-11-26 15:09:33 +08:00
Eric Shen
e868170925 🙈 update: gitignore 2020-11-24 17:37:34 +08:00
沈宇
2e497bf1b5 1.8.9-2 2020-11-05 16:17:12 +08:00
沈宇
03607113d3 fix: language 2020-11-05 16:15:53 +08:00
沈宇
a31a403ec9 1.8.9-1 2020-10-26 11:26:49 +08:00
沈宇
7d0130035e 1.8.9-0 2020-10-26 11:24:42 +08:00
沈宇
e95daf0fe7 fix: meta 2020-10-26 11:13:12 +08:00
沈宇
a350cb7098 update 2020-10-21 21:16:51 +08:00
沈宇
0415b2999a 1.8.8-1 2020-10-16 16:55:05 +08:00
沈宇
e24c1c8fde 📝 docs: README.md 2020-10-15 11:23:39 +08:00
沈宇
4460828c6a 📝 docs: README.md 2020-09-30 11:01:24 +08:00
Eric Shen
3932a3d8ef Merge pull request #87 from bianyukun1213/patch-2
Rename plain-page to plain-page.ejs
2020-09-17 15:09:30 +08:00
边宇琨
1c0b980462 Rename plain-page to plain-page.ejs 2020-09-17 14:52:47 +08:00
Eric Shen
c63f8450e3 🔧 new layout: plain-page. 2020-09-10 18:14:18 +08:00
边宇琨
7548895d03 New layout: plain-page.
Added a new layout to provide a plain look which is similar to built-in pages. It has a “page-type-title” and removes advance functions such as sharing. When switching pages in the sidebar, readers will have a constant experience. To use this layout, add “layout: plain-page” to Front-matter.

添加了一种新的布局“plain-page”以提供类似内置页面(「归档」、「分类」、「标签」、「友链」等)的外观。它使用一个左对齐的标题(page-type-title)并且移除了「分享」这类高级功能。用户在侧边栏切换页面时能得到更连贯的阅读体验。在 Front-matter 中添加“layout: plain-page”来使用这种布局。
2020-09-10 17:38:12 +08:00
沈宇
b1fc783466 Merge branch 'master' of https://github.com/Shen-Yu/hexo-theme-ayer 2020-09-10 15:15:57 +08:00
沈宇
ef684cecba 📝 fix: README.md 2020-09-10 15:15:47 +08:00
Eric Shen
4027d32ce0 Merge pull request #83 from bianyukun1213/patch-2
实现版权声明内容自定义。
2020-09-10 15:13:58 +08:00
边宇琨
736a5d3876 实现版权声明内容自定义。
通过 Front-matter 实现针对特定文章的版权声明内容自定义。  
例如:  
copyright_content: 本文章遵守 CC BY-SA 4.0 协议。
2020-09-10 02:22:51 +08:00
沈宇
b9284527ec 📝 docs: license 2020-09-09 14:07:12 +08:00
沈宇
c48d95fcd9 1.8.8-0 2020-09-09 12:40:10 +08:00
沈宇
ee3908d8aa 💄 fix: darkmode 2020-09-09 12:39:01 +08:00
沈宇
14e0f01357 1.8.7 2020-09-07 18:26:46 +08:00
沈宇
e95cdd5cd8 feat: friends link 2020-09-07 18:26:26 +08:00
沈宇
3bb55b8fcb 1.8.6 2020-09-04 20:01:08 +08:00
沈宇
c18a2e681e 📝 beian 2020-09-04 20:00:13 +08:00
沈宇
7642eba4d6 📝 beian 2020-09-04 19:59:16 +08:00
Eric Shen
4d3776ea3c Merge pull request #79 from bilikxjh/master
添加公安备案信息显示/Add public security record information display
2020-09-04 19:49:15 +08:00
沈宇
9bb629ee79 1.8.5 2020-09-01 10:47:18 +08:00
沈宇
83b79e97c1 feat: boardcast 2020-09-01 10:47:02 +08:00
kaixin
b04e2838a0 Update _config.yml 2020-08-30 17:08:35 +08:00
kaixin
e3724557a3 尾部添加公安备案
尾部添加公安备案显示,备案链接添加”rel="nofollow"“属性,有利于SEO
2020-08-30 17:07:41 +08:00
shenyu
c775133f5b 1.8.4 2020-08-24 21:30:35 +08:00
shenyu
48a39f4322 📦 homepage 2020-08-24 21:29:28 +08:00
沈宇
b1f929876c 1.8.3 2020-08-24 12:20:06 +08:00
沈宇
8b0ab2c38d 🚀 npm support 2020-08-24 12:20:00 +08:00
沈宇
505f34cd3f 1.8.2 2020-08-24 11:17:18 +08:00
shenyu
7d1f337d59 1.8.1 2020-08-23 22:02:01 +08:00
shenyu
7f495adc00 👷 travis 2020-08-20 22:18:13 +08:00
shenyu
abc77cc06e 🙈 .gitignore 2020-08-20 22:09:00 +08:00
shenyu
944ae944e1 📦 bundle visualiser 2020-08-20 22:05:41 +08:00
shenyu
a19fce2fb0 🔖 badge 2020-08-15 23:42:31 +08:00
65 changed files with 983 additions and 469 deletions

3
.gitattributes vendored Normal file
View File

@@ -0,0 +1,3 @@
*.html linguist-language=javascript
*.stylus linguist-language=javascript
*.ejs linguist-language=javascript

8
.github/FUNDING.yml vendored
View File

@@ -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
View 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
View File

@@ -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
View File

@@ -0,0 +1,4 @@
.cache/
.history/
.github/
_bak.yml

View File

@@ -1,5 +0,0 @@
{
"plugins": {
"autoprefixer": true
}
}

View File

@@ -6,3 +6,5 @@ cache:
npm: true npm: true
install: npm install install: npm install
script: npm run test

272
README.md
View File

@@ -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 @@
![Screenshot](screenshots/hexo-theme-ayer.png) ![Screenshot](screenshots/hexo-theme-ayer.png)
### 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中文简体 enEnglish zh-TW中文繁体 jaJapanese esSpanish deGerman frFrench ruRussian koKorean viVietnamese nlDutch noNorwegian ptPortuguese
English is default languge, if you want to change, modify `language` option in `_config.yml` file in your blog's root folder. zh-CN中文简体 enEnglish zh-TW中文繁体 ja日本語 esEspañol deDeutsch frFrançais ruРусский ko한국어 viTiếng Việt nlNederlands nonorsk ptPortuguê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 # 1custom2hitokoto 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:
# type0-close reward 1-only open in article which you have configured reward:true 2-open in all articles # type0-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
# Comment1、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
@@ -243,15 +242,87 @@ since: 2019
# pageFooter (Set true can let more people know this theme, Thanks!) # pageFooter (Set true can let more people know this theme, Thanks!)
pageFooter: true pageFooter: true
# only for chinese website
# ICP
icp:
enable: false
url: "http://www.beian.miit.gov.cn/"
text: "浙ICP备88888888"
# gongan
gongan:
enable: false
img: /images/beian.png
url: "http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=01234567890123" #link
text: "浙公网安备01234567890123号"
# friends link
friends_link:
Ayer: #site name
# site url
url: https://github.com/Shen-Yu/hexo-theme-ayer
# site icon(optional)
img: /images/ayer.png
GitHub:
url: https://github.com/Shen-Yu
img: https://i.loli.net/2020/09/07/indb4PRYDA98EkN.png
gitee:
url: https://gitee.com/shen-yu
img: https://i.loli.net/2020/09/07/K3AqO7h6krQFlRX.png
Hexo:
url: https://hexo.io
img: https://i.loli.net/2020/09/07/UYGzjo7h68CRWny.png
hexo-tag-chart:
url: https://github.com/Shen-Yu/hexo-tag-chart
img: https://i.loli.net/2020/09/07/GIXBYE5SoylhR1r.png
# Comment1、Valine (recommended)2、Gitalk3、Twikoo4、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
md: true
# more options https://minivaline.js.org/docs/cn/#/Options
backend: waline
serverURL: https://waline.vercel.app
``` ```
### 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 +333,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 +353,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 +376,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
[![Stargazers over time](https://starchart.cc/Shen-Yu/hexo-theme-ayer.svg)](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 或者提一些建设性的意见
- 告诉你的朋友们这是一个多棒的开源项目
- 当然,你也可以只是在心里默默的感激,不用让全世界都知道

View File

@@ -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,51 @@ 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
# 是否显示页脚信息(建议保留) # 是否显示页脚信息(建议保留)
pageFooter: true pageFooter: true
#ICP备案信息尾部显示 # 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、Gitalk3、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、Gitalk3、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 +224,30 @@ 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_3ad_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/ezctH6FU
- 小伙伴 width: 300
- 访客 ad_2:
master: # The MD5 String Array of master Email to show master Flag.[Just Only xCss Style mode] title: 云服务器全球购低至2折
- de8a7aa53d07e6b6bceb45c64027763d img: https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/img/ten_2.jpg
friends: # The MD5 String Array of friends Email to show friends Flag.[Just Only xCss Style mode] url: https://curl.qcloud.com/kvO7hb43
- b5bd5d836c7a0091aa8473e79ed4c25e width: 300
- adb7d1cd192658a55c0ad22a3309cecf
- 3ce1e6c77b4910f1871106cb30dc62b0
- cfce8dc43725cc14ffcd9fb4892d5bfc
# MiniValine's display language depends on user's browser or system environment
# If you want everyone visiting your site to see a uniform language, you can set a force language value
# 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
View 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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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: 単語数

View File

@@ -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: 단어 수

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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: Количество слов

View File

@@ -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ừ

View File

@@ -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: 字数统计

View File

@@ -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: 字數統計

9
layout/_partial/ads.ejs Normal file
View 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>

View File

@@ -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>

View File

@@ -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 = '';

View File

@@ -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>

View 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>

View File

@@ -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统计 -->

View File

@@ -2,40 +2,48 @@
<% if (config.language){ %> <% if (config.language){ %>
<html lang="<%= config.language %>"> <html lang="<%= config.language %>">
<% } else { %> <% } else { %>
<html lang="en"> <html lang="en">
<% }%> <% }%>
<head>
<meta charset="utf-8" />
<% var title = page.title; if (is_archive()) { title = __('archive_a'); if
(is_month()) { title += ': ' + page.year + '/' + page.month; } else if
(is_year()) { title += ': ' + page.year; } } else if (is_category()) { title
= page.category; } else if (is_tag()) {
title = __('tag') + ': ' + page.tag; } %> <% if (page.keywords){ %>
<meta name="keywords" content="<%= page.keywords %>,<%= config.keywords %>" />
<% } else if (config.keywords){ %>
<meta name="keywords" content="<%= config.keywords %>" />
<% } %> <% if (page.description){ %>
<meta name="description" content="<%= page.description %>" />
<% } else if (config.description){ %>
<meta name="description" content="<%= config.description %>" />
<% } %>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<title>
<% if (title){ %><%= title %> | <% } %> <%= config.description %>
</title>
<% if (theme.favicon){ %>
<link rel="shortcut icon" href="<%- theme.favicon %>" />
<% } %>
<%- css('dist/main') %>
<%- css('https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/css/remixicon.min') %>
<%- css('css/custom') %>
<% if (theme.progressBar){ %>
<%- js('https://cdn.jsdelivr.net/npm/pace-js@1.0.2/pace.min') %>
<% } %>
<%- partial('google-analytics') %>
<%- partial('baidu-analytics') %>
</head>
<head>
<meta charset="utf-8" />
<% var title = page.title; if (is_archive()) { title = __('archive_a'); if
(is_month()) { title += ': ' + page.year + '/' + page.month; } else if
(is_year()) { title += ': ' + page.year; } } else if (is_category()) {
title = page.category; } else if (is_tag()) { title = __('tag') + ': ' +
page.tag; } %> <% if (page.keywords){ %>
<meta
name="keywords"
content="<%= page.keywords %>,<%= config.keywords %>"
/>
<% } else if (config.keywords){ %>
<meta name="keywords" content="<%= config.keywords %>" />
<% } %> <% if (page.description){ %>
<meta name="description" content="<%= page.description %>" />
<% } else if (config.description){ %>
<meta name="description" content="<%= config.description %>" />
<% } %>
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"
/>
<title><% if (title){ %><%= title %> | <% } %> <%= config.title %></title>
<% if (theme.favicon){ %>
<link rel="shortcut icon" href="<%- theme.favicon %>" />
<% } %> <%- css('dist/main') %>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/Shen-Yu/cdn/css/remixicon.min.css"
/>
<%- css('css/custom') %> <% if (theme.progressBar){ %>
<script src="https://cdn.jsdelivr.net/npm/pace-js@1.0.2/pace.min.js"></script>
<% } %> <%- partial('google-analytics') %> <%- partial('baidu-analytics')
%>
<!-- mermaid -->
<% if (theme.mermaid.enable) { %>
<script src="<%= theme.mermaid.cdn %>"></script>
<% } %>
</head>
</html>
</html> </html>

View 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>
<% } %>

View File

@@ -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>

View File

@@ -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({

View File

@@ -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>
<% } %> <% } %>

View 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>
<% } %>

View File

@@ -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
View 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>

View File

@@ -28,12 +28,6 @@
<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') %>

4
layout/plain-page.ejs Normal file
View 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
View 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')
}
}

View File

@@ -1,10 +1,12 @@
{ {
"name": "ayer", "name": "hexo-theme-ayer",
"version": "1.8.0", "version": "1.8.24",
"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
View 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
View File

@@ -0,0 +1,11 @@
/* global hexo */
"use strict";
hexo.on("generateBefore", () => {
require("./lib/merge-configs")(hexo);
});
hexo.on("generateAfter", () => {
require("./lib/hello")(hexo);
});

View 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 |
| |
----------------------------------------------------
`);
}
};

View 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)
);
};

View 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
View 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
};

View File

@@ -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;

View 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

View File

@@ -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()

View File

@@ -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

View 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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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%

View File

@@ -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,64 @@
// 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 // Mobile Nav
const $content = $('.content'), const $content = $(".content"),
$sidebar = $('.sidebar'); $sidebar = $(".sidebar");
$('.navbar-toggle').on('click', function () { $(".navbar-toggle").on("click", function () {
$('.content,.sidebar').addClass('anim') $(".content,.sidebar").addClass("anim");
$content.toggleClass('on'); $content.toggleClass("on");
$sidebar.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 +178,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" });

View File

@@ -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') {

View File

@@ -1,3 +1,3 @@
import './css/style.styl' import "./css/style.styl";
import './js/ayer' import "./js/ayer";
import './js/share' import "./js/share";

View File

@@ -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,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAGq0lEQVR4Xu1bXahUVRT+1pnxvRexNIT8iYz+SBOuzt6zx5uaWQ9FJulDSillaUpaUUZK2Q9ZaZYlSWmUVjeKyjAFnX32GTRSIaISMqVIr0gP+X5nzop9nXM583/m3Jmr3HHDvMxZ+1trfWf/rL32OoQOb9Th/uMyAZdHwBAyMGPatPH5ZHK8wzwOROMB2J9tJ8F80ic6lcznTx48dOjkUJnV1inQLcRNBaJZBMxkYFaTTn1HRHsKzJ4x5niTfSOLt5wApdQt8P1FALoB3BDZknqCRMfA7MFxdmqtf24JZhGkZQRIKSc6wDIAjwEY0chIAnqZ6CwzEwGjAVzZqA+APgDv+sBWY8yJCPINRQZNwIyurjGFZHIZEVnnr6ih0WPmHof5UJ6o1/O8s+Vy8+bNS/zX2zumL5kcA99XRHQ3gK4aeOeZeWsin9968PDhMw29rCMwKAKUUlPg+x8DmFShg/kHBvYXmL/J5XKn4hiplJrAzHOIeQ4A+ytvJ4h5edbz9sXBt31iEzBDSukDBwAky5QfIWBT1phdcY2q1i8j5QIGVgK4rex5AcBD2pidcfTFIiAjxFwm2lOm8DSATSNHjdrU09NjjWp5s9Pk33PnLAn2d3WZgpXamM3NKm2aACXlCwDWlSgi+jJRKDx9IOZQb9ZopdR1xalXPhrWa2NKbWsA3hQBSson7Fsuw1yrjdnQrBOtkFdSHgSQCWMR811Zz/s+Kn5kApSUDwLYUaIMmJ815ouoytohlxHiQyZaHMZ2gPRBY0wUfZEIyAgxm4ksq4kBUObF2vNKCImisB0yaSFeI6KnQth5OE6X1vpoI30NCbD7vD9iRBbAxACMmHdnPW9BI/ChfK6k3G53g5DO405f38xGcUJDAtJCbCCiZ0NvXmvPK5l3Q+loPV1KSrszzQ1kmPll1/Oeq9enLgHF8PanUIR3OuH73QdyuT8uFafDdtjACb5vR2uwRZ73gan1wua6BCgp3yruuYGe1dqYNy5F5wOblJRPAtgYsnGTNmZVLZtrElA81dm3HxxsjowcNaqrXUFOq0gtBkuHQxFjHxxnaq1TZG0Cyt4+AQtbEd4qKdcRsISBvXCcV7XWf7bK+QCnGDZ/GsLdrI2x0WNFq01AOn0UzJOLPfZqY+4crKFKyrUAXhxYpIhWuK67ZbC41forIfaC6I7is1+1MTdGJkBKOckBfg8Zusx13fcGY6iS8hkAr5Rg+H5G53J6MLi1+iopVwN4PXieYL75gOf9Ui5fdQRk0umlzLwtEPaBscaYf+IaWm5MEed5bcxLcTEb9esW4voC0W8huTXamPDi2P+oKgFKym8B2IQE7JneNWZ2I4U134QQK0Fkd5Nwq2pMXB21+qWlPEbArUVH92er+FGLAB4AZX5Ue977cYxTQjwOotI5zrxce947cfCa7WMXXAD29NrftDEV/lb8YVPXfjI5sDKT70/J5nLHmlYuxCMgKlk3mGip67ofNIsVVz6dTncR86Ggv5PPTyhPuVcQIKWc5QADKaYC8+hqObx6RikhHgZRuaOL4mZt4hJw+/TpY/OJxN9Bfx+YbYzZH8arIECVvblqw6aB84tA9FFYhokWuK67O64jcfsVg6J8velcSYCUduuwW4hdIXuzxoyJaoCSciGAT0rkmVu7zRHtg+//GHX7VFLaDHSQct+ojVlTfwRI+RWAe/qFiI5p150ShQAl5XwAn0WRHbQM0Xbtukui4IR3AgBfa2Pu7SgCVGlEG4mAYTUFMlKe4Qs3T7ZFmALDaBG0Hisp68Y0w3obFEJclSDqbWobHE6BUCaVmsyOM5AYjRQIRRk2UVbffpyLHAqnhVhORG8H9kYKhYsEDIvDkJLS3g2IYkwT/TA0HI7DqVRqXNJxwqU20Y/DwyEhkhZiFRG9GQz/phIi/dOgk1NixXWgJCXeeUnRC8VOnZsWrzYK7CmxYy5GLAHVrsbgOJl25PKjxhb15LpTqXEFx3FbdjVmlVVcjgItuSNohcPlGCqd7gHzfcH/g74ctUA1rse3ZD1vRTuciIuppLS3wOE0e2uux61B1Qok4iZL4zpYr19GyvsZ+Dwk07oCiQC0WokMHOcarfVf7XAqKqYSoiIH2fISmRAJlUVSF7FUJiPELiZ6IExW24qkQiRUK5PbAaL1QzUaulOpawtE20CkykZKe8vkAmUdXSgZkNDRpbID06GTi6UHRkInl8uHF6CO/WCiIhzt1E9mqgUuHfnRVL0IruM+m4sazl5MuYa1whfTuKHQfZmAoWD5UtbxPw6Pum6CDZJRAAAAAElFTkSuQmCC">
</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>

View File

@@ -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)

File diff suppressed because one or more lines are too long

10
source/dist/main.js vendored
View File

@@ -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}))})();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

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