diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml
index 63ae7b6..db5f45a 100644
--- a/.gitea/workflows/deploy.yml
+++ b/.gitea/workflows/deploy.yml
@@ -23,9 +23,7 @@ jobs:
- name: Install dependencies
run: npm install
- name: Install hexo-cli
- run: npm install hexo-cli -g
- - name: Check repository
- run: ls -al
+ run: npm install -g hexo-cli
- name: Generate pages
run: hexo generate
- name: Copy pages
@@ -35,13 +33,9 @@ jobs:
git fetch
git checkout publish
- name: Remove old files
- run: |
- rm -rf `ls | grep -v .git`
- ls -al
+ run: rm -rf `ls | grep -v .git`
- name: Copy new files
- run: |
- cp -r ../pages/* .
- ls -al
+ run: cp -r ../pages/* .
- name: Commit and Push back Changes
uses: https://github.com/stefanzweifel/git-auto-commit-action@v5
with:
diff --git a/themes/butterfly b/themes/butterfly
deleted file mode 160000
index f0e147c..0000000
--- a/themes/butterfly
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f0e147c12570b84cdd870d9b7475ff00b47f7e8b
diff --git a/themes/butterfly/.github/FUNDING.yml b/themes/butterfly/.github/FUNDING.yml
new file mode 100644
index 0000000..0cd9243
--- /dev/null
+++ b/themes/butterfly/.github/FUNDING.yml
@@ -0,0 +1,13 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+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
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
+custom: ['https://buy.stripe.com/3cs6rP6YA91sbbG5kk','https://jsd.012700.xyz/gh/jerryc127/CDN/Photo/wechat.jpg'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/themes/butterfly/.github/ISSUE_TEMPLATE/bug_report.yml b/themes/butterfly/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..d12e9e8
--- /dev/null
+++ b/themes/butterfly/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,83 @@
+name: Bug report
+description: Create a report to help us improve
+title: '[Bug]: '
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ 重要:請依照該模板來提交
+ Important: Please follow the template to create a new issue
+
+ - type: input
+ id: butterfly-ver
+ attributes:
+ label: 使用的 Butterfly 版本? | What version of Butterfly are you using?
+ description: 檢視主題的 package.json | Check the theme's package.json
+ validations:
+ required: true
+
+ - type: dropdown
+ id: modify
+ attributes:
+ label: 是否修改過主題文件? | Has the theme files been modified?
+ options:
+ - 是 (Yes)
+ - 否 (No)
+ validations:
+ required: true
+
+ - type: dropdown
+ id: browser
+ attributes:
+ label: 使用的瀏覽器? | What browser are you using?
+ options:
+ - Chrome
+ - Edge
+ - Safari
+ - Opera
+ - Other
+ validations:
+ required: true
+
+ - type: dropdown
+ id: platform
+ attributes:
+ label: 使用的系統? | What operating system are you using?
+ options:
+ - Windows
+ - macOS
+ - Linux
+ - Android
+ - iOS
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ id: dependencies
+ attributes:
+ label: 依賴插件 | Package dependencies information
+ description: 在 Hexo 根目錄下執行 `npm ls --depth 0` | Run `npm ls --depth 0` in Hexo root directory
+ render: Text
+ validations:
+ required: true
+
+ - type: textarea
+ id: description
+ attributes:
+ label: 問題描述 | Describe the bug
+ description: 請描述你的問題現象 | A clear and concise description of what the bug is.
+ placeholder: 請儘量提供截圖來定位問題 | If applicable, add screenshots to help explain your problem
+ value:
+ validations:
+ required: true
+
+ - type: input
+ id: website
+ attributes:
+ label: 出現問題的網站 | Website with the issue
+ description: 請提供可復現問題的網站地址 | Please provide a website URL where the problem can be reproduced.
+ placeholder: 請填寫具體的網址,不要填寫 localhost 網站 | Please provide a specific URL, do not use localhost.
+ validations:
+ required: true
\ No newline at end of file
diff --git a/themes/butterfly/.github/ISSUE_TEMPLATE/config.yml b/themes/butterfly/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..9af6ea1
--- /dev/null
+++ b/themes/butterfly/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,18 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Questions about Butterfly
+ url: https://github.com/jerryc127/hexo-theme-butterfly/discussions
+ about: 一些使用問題請到 Discussion 詢問。 Please ask questions in Discussion.
+
+ - name: Butterfly Q&A
+ url: https://butterfly.js.org/posts/98d20436/
+ about: Butterfly Q&A
+
+ - name: Telegram
+ url: https://t.me/bu2fly
+ about: 'Official Telegram Group'
+
+ - name: QQ 群
+ url: https://jq.qq.com/?_wv=1027&k=KU9105XR
+ about: '群號 1070540070'
+
diff --git a/themes/butterfly/.github/ISSUE_TEMPLATE/feature_request.yml b/themes/butterfly/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000..3bf7c30
--- /dev/null
+++ b/themes/butterfly/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,14 @@
+name: Feature request
+description: Suggest an idea for this project
+title: '[Feature]: '
+
+body:
+ - type: textarea
+ id: feature-request
+ attributes:
+ label: 想要的功能 | What feature do you want?
+ description: 請描述你需要的新功能 | A clear and concise description of what the feature is.
+ placeholder:
+ value:
+ validations:
+ require: true
\ No newline at end of file
diff --git a/themes/butterfly/.github/workflows/publish.yml b/themes/butterfly/.github/workflows/publish.yml
new file mode 100644
index 0000000..d68365d
--- /dev/null
+++ b/themes/butterfly/.github/workflows/publish.yml
@@ -0,0 +1,19 @@
+name: npm publish
+
+on:
+ release:
+ types: [created]
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ # Setup .npmrc file to publish to npm
+ - uses: actions/setup-node@v1
+ with:
+ node-version: '12.x'
+ registry-url: 'https://registry.npmjs.org'
+ - run: npm install
+ - run: npm publish
+ env:
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
\ No newline at end of file
diff --git a/themes/butterfly/.github/workflows/stale.yml b/themes/butterfly/.github/workflows/stale.yml
new file mode 100644
index 0000000..a50d9de
--- /dev/null
+++ b/themes/butterfly/.github/workflows/stale.yml
@@ -0,0 +1,19 @@
+name: 'Close stale issues and PRs'
+on:
+ schedule:
+ - cron: '30 1 * * *'
+
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v5
+ with:
+ days-before-issue-stale: 30
+ days-before-pr-stale: -1
+ days-before-close: 7
+ stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.'
+ close-pr-message: 'This issue has not seen any activity since it was marked stale. Closing.'
+ stale-issue-label: 'Stale'
+ exempt-issue-labels: 'pinned,bug,enhancement,documentation,Plan'
+ operations-per-run: 1000
\ No newline at end of file
diff --git a/themes/butterfly/LICENSE b/themes/butterfly/LICENSE
new file mode 100644
index 0000000..7a4a3ea
--- /dev/null
+++ b/themes/butterfly/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/themes/butterfly/README.md b/themes/butterfly/README.md
new file mode 100644
index 0000000..7589930
--- /dev/null
+++ b/themes/butterfly/README.md
@@ -0,0 +1,116 @@
+
+
+
+
+

+
+# hexo-theme-butterfly
+
+
+
+
+
+
+
+📢 Demo: [Butterfly](https://butterfly.js.org/) / [CrazyWong](https://blog.crazywong.com/)
+
+📖 Docs: [English](https://butterfly.js.org/en/posts/butterfly-docs-en-get-started/) / [Chinese](https://butterfly.js.org/posts/21cfbf15/)
+
+
+
+
+
+---
+
+## 💻 Installation
+
+### GIT
+
+> If you are in Mainland China, you can download in [Gitee](https://gitee.com/immyw/hexo-theme-butterfly.git)
+
+Stable branch [recommend]:
+
+```
+git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
+```
+
+Dev branch:
+
+```
+git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
+```
+
+### NPM
+
+> It supports Hexo 5.0.0 or later
+
+In Hexo site root directory
+
+```powershell
+npm i hexo-theme-butterfly
+```
+
+## ⚙ Configuration
+
+ Set theme in the hexo work folder's root config file `_config.yml`:
+
+> theme: butterfly
+
+ If you don't have pug & stylus renderer, try this:
+
+> npm install hexo-renderer-pug hexo-renderer-stylus
+
+## 🎉 Features
+
+- [x] Card UI Design
+- [x] Rounded Design/Squared Design
+- [X] Support sub-menu
+- [x] Two-column layout
+- [x] Responsive Web Design
+- [x] Dark Mode
+- [x] Pjax
+- [x] Read Mode
+- [x] Conversion between Traditional and Simplified Chinese
+- [X] TOC catalog is available for both computers and mobile phones
+- [X] Built-in Syntax Highlighting Themes (darker/pale night/light/ocean), also support customization
+- [X] Code Blocks (Display code language/close or expand Code Blocks/Copy Button/word wrap)
+- [X] Disable copy/Add a Copyright Notice to the Copied Text
+- [X] Search (Algolia Search/Local Search)
+- [x] Mathjax and Katex
+- [x] Built-in 404 page
+- [x] WordCount
+- [x] Related articles
+- [x] Displays outdated notice for a post
+- [x] Share (Sharejs/Addtoany)
+- [X] Comment (Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/artalk)
+- [x] Multiple Comment System Support
+- [x] Online Chats (Chatra/Tidio/Daovoice/Crisp)
+- [x] Web analytics
+- [x] Google AdSense
+- [x] Webmaster Verification
+- [x] Change website colour scheme
+- [x] Typewriter Effect: activate_power_mode
+- [x] Background effects (Canvas ribbon/canvas_ribbon_piao/canvas_nest)
+- [x] Mouse click effects (Fireworks/Heart/Text)
+- [x] Preloader/Loading Animation/pace.js
+- [x] Busuanzi visitor counter
+- [x] Medium Zoom/Fancybox
+- [x] Mermaid
+- [x] Justified Gallery
+- [x] Lazyload images
+- [x] Instantpage/Pangu/Snackbar notification toast/PWA......
+
+## ✨ Contributors
+
+
+
+
+
+## 📷 Screenshots
+
+
+
+
+
diff --git a/themes/butterfly/README_CN.md b/themes/butterfly/README_CN.md
new file mode 100644
index 0000000..552205b
--- /dev/null
+++ b/themes/butterfly/README_CN.md
@@ -0,0 +1,116 @@
+
+
+
+
+

+
+# hexo-theme-butterfly
+
+
+
+
+
+
+
+📢 預覽: [Butterfly](https://butterfly.js.org/) / [CrazyWong](https://blog.crazywong.com/)
+
+📖 文檔: [中文](https://butterfly.js.org/posts/21cfbf15/) / [English](https://butterfly.js.org/en/posts/butterfly-docs-en-get-started/)
+
+
+
+
+
+---
+
+## 💻 安裝
+
+### Git 安裝
+
+> 本倉庫同時上傳到 [Gitee](https://gitee.com/immyw/hexo-theme-butterfly.git),如果你訪問 Github 緩慢,可從 Gitee 中下載。
+
+在博客根目錄裡安裝穩定版【推薦】
+
+```powershell
+git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
+```
+
+如果想要安裝比較新的dev分支,可以
+
+```powershell
+git clone -b dev https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
+```
+
+### npm 安裝
+
+> 此方法只支持Hexo 5.0.0以上版本
+
+在博客根目錄裡
+
+```powershell
+npm i hexo-theme-butterfly
+```
+
+## ⚙ 應用主題
+
+修改hexo配置文件`_config.yml`,把主題改為`Butterfly`
+
+```
+theme: butterfly
+```
+
+>如果你沒有pug以及stylus的渲染器,請下載安裝: npm install hexo-renderer-pug hexo-renderer-stylus --save
+
+## 🎉 特色
+
+- [x] 卡片化設計
+- [x] 圓角化設計/直角化設計
+- [X] 支持二級目錄
+- [x] 雙欄設計
+- [x] 響應式主題
+- [x] 夜間模式
+- [x] Pjax
+- [x] 文章閲讀模式
+- [x] 簡體和繁體轉換
+- [X] 電腦和手機都可查看TOC目錄
+- [X] 內置多種代碼配色(darker/pale night/light/ocean),可自定義代碼配色
+- [X] 代碼塊顯示代碼語言/關閉或展開代碼塊/代碼複製/代碼自動換行
+- [X] 可關閉文字複製/可開啟內容複製增加版權信息)
+- [X] 兩種搜索( Algolia 搜索和本地搜索)
+- [x] Mathjax 和 Katex
+- [x] 內置404頁面
+- [x] 顯示字數統計
+- [x] 顯示相關文章
+- [x] 過期文章提醒
+- [x] 多種分享系統(Sharejs/Addtoany)
+- [X] 多種評論系統(Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/artalk)
+- [x] 支持雙評論部署
+- [x] 多種在線聊天(Chatra/Tidio/Daovoice/Crisp)
+- [x] 多種分析系統
+- [x] 谷歌廣告/手動廣告位置
+- [x] 各種站長驗證
+- [x] 修改網站配色
+- [x] 打字特效 activate_power_mode
+- [x] 多種背景特效(靜止彩帶/動態彩帶/Canvas Nest)
+- [x] 多種鼠標點擊特效(煙花/文字/愛心)
+- [x] 內置一種 Preloader 加載動畫和 pace.js 加載動畫條
+- [x] 不蒜子訪問統計
+- [x] 兩種大圖模式(Medium Zoom/Fancybox)
+- [x] Mermaid 圖表顯示
+- [x] 照片牆
+- [x] 圖片懶加載
+- [x] Instantpage/Pangu/Snackbar彈窗/PWA......
+
+## ✨ 貢獻者
+
+
+
+
+
+## 📷 截圖
+
+
+
+
+
diff --git a/themes/butterfly/_config.yml b/themes/butterfly/_config.yml
new file mode 100644
index 0000000..a448599
--- /dev/null
+++ b/themes/butterfly/_config.yml
@@ -0,0 +1,1094 @@
+# --------------------------------------
+# Hexo Butterfly Theme Configuration
+# If you have any questions, please refer to the documentation
+# Chinese: https://butterfly.js.org/
+# English: https://butterfly.js.org/en/
+# --------------------------------------
+
+# --------------------------------------
+# Navigation Settings
+# --------------------------------------
+
+nav:
+ # Navigation bar logo image
+ logo:
+ display_title: true
+ # Whether to fix navigation bar
+ fixed: false
+
+menu:
+ # Home: / || fas fa-home
+ # List||fas fa-list:
+ # Music: /music/ || fas fa-music
+ # Movie: /movies/ || fas fa-video
+
+# --------------------------------------
+# Code Blocks Settings
+# --------------------------------------
+
+code_blocks:
+ # Code block theme: darker / pale night / light / ocean / false
+ theme: light
+ macStyle: false
+ # Code block height limit (unit: px)
+ height_limit: false
+ word_wrap: false
+
+ # Toolbar
+ copy: true
+ language: true
+ # true: shrink the code blocks | false: expand the code blocks | none: expand code blocks and hide the button
+ shrink: false
+ fullpage: false
+
+# Social media links
+# Formal:
+# icon: link || the description || color
+social:
+ # fab fa-github: https://github.com/xxxxx || Github || '#24292e'
+ # fas fa-envelope: mailto:xxxxxx@gmail.com || Email || '#4a7dbe'
+
+# --------------------------------------
+# Image Settings
+# --------------------------------------
+
+favicon: /img/favicon.png
+
+avatar:
+ img: /img/butterfly-icon.png
+ effect: false
+
+# Disable all banner images
+disable_top_img: false
+
+# If the banner of page not setting, it will show the default_top_img
+default_top_img:
+
+# The banner image of index page
+index_img:
+
+# The banner image of archive page
+archive_img:
+
+# Note: tag page, not tags page
+tag_img:
+
+# The banner image of tag page, you can set the banner image for each tag
+# Format:
+# - tag name: xxxxx
+tag_per_img:
+
+# Note: category page, not categories page
+category_img:
+
+# The banner image of category page, you can set the banner image for each category
+# Format:
+# - category name: xxxxx
+category_per_img:
+
+# The background image of footer
+footer_img: false
+
+# Website Background
+# Can set it to color or image url
+background:
+
+cover:
+ # Disable the cover or not
+ index_enable: true
+ aside_enable: true
+ archives_enable: true
+ # When cover is not set, the default cover is displayed
+ default_cover:
+ # - xxx.jpg
+
+# Replace Broken Images
+error_img:
+ flink: /img/friend_404.gif
+ post_page: /img/404.jpg
+
+# A simple 404 page
+error_404:
+ enable: false
+ subtitle: 'Page Not Found'
+ background: /img/error-page.png
+
+post_meta:
+ # Home Page
+ page:
+ # Choose: created / updated / both
+ date_type: created
+ # Choose: date / relative
+ date_format: date
+ categories: true
+ tags: false
+ label: true
+ post:
+ # Choose: left / center
+ position: left
+ # Choose: created / updated / both
+ date_type: both
+ # Choose: date / relative
+ date_format: date
+ categories: true
+ tags: true
+ label: true
+
+# --------------------------------------
+# Index page settings
+# --------------------------------------
+
+# The top_img settings of home page
+# default: top img - full screen, site info - middle
+# The position of site info, eg: 300px/300em/300rem/10%
+index_site_info_top:
+# The height of top_img, eg: 300px/300em/300rem
+index_top_img_height:
+
+# The subtitle on homepage
+subtitle:
+ enable: false
+ # Typewriter Effect
+ effect: true
+ # Customize typed.js
+ # https://github.com/mattboldt/typed.js/#customization
+ typed_option:
+ # Source - Call the third-party service API (Chinese only)
+ # It will show the source first, then show the content of sub
+ # Choose: false/1/2/3
+ # false - disable the function
+ # 1 - hitokoto.cn
+ # 2 - yijuzhan.com
+ # 3 - jinrishici.com
+ source: false
+ # If you close the typewriter effect, the subtitle will only show the first line of sub
+ sub:
+
+# Article layout on the homepage
+# 1: Cover on the left, info on the right
+# 2: Cover on the right, info on the left
+# 3: Cover and info alternate between left and right
+# 4: Cover on top, info on the bottom
+# 5: Info displayed on the cover
+# 6: Masonry layout - Cover on top, info on the bottom
+# 7: Masonry layout - Info displayed on the cover
+index_layout: 3
+
+# Display the article introduction on homepage
+# 1: description
+# 2: both (if the description exists, it will show description, or show the auto_excerpt)
+# 3: auto_excerpt (default)
+# false: do not show the article introduction
+index_post_content:
+ method: 3
+ # If you set method to 2 or 3, the length need to config
+ length: 500
+
+# --------------------------------------
+# Post Settings
+# --------------------------------------
+
+toc:
+ post: true
+ page: false
+ number: true
+ expand: false
+ # Only for post
+ style_simple: false
+ scroll_percent: true
+
+post_copyright:
+ enable: true
+ decode: false
+ author_href:
+ license: CC BY-NC-SA 4.0
+ license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/
+
+# Sponsor/reward
+reward:
+ enable: false
+ text:
+ QR_code:
+ # - img: /img/wechat.jpg
+ # link:
+ # text: wechat
+ # - img: /img/alipay.jpg
+ # link:
+ # text: alipay
+
+# Post edit
+# Easily browse and edit blog source code online.
+post_edit:
+ enable: false
+ # url: https://github.com/user-name/repo-name/edit/branch-name/subdirectory-name/
+ # For example: https://github.com/jerryc127/butterfly.js.org/edit/main/source/
+ url:
+
+# Related Articles
+related_post:
+ enable: true
+ # Number of posts displayed
+ limit: 6
+ # Choose: created / updated
+ date_type: created
+
+# Choose: 1 / 2 / false
+# 1: The 'next post' will link to old post
+# 2: The 'next post' will link to new post
+# false: disable pagination
+post_pagination: 1
+
+# Displays outdated notice for a post
+noticeOutdate:
+ enable: false
+ # Style: simple / flat
+ style: flat
+ # When will it be shown
+ limit_day: 365
+ # Position: top / bottom
+ position: top
+ message_prev: It has been
+ message_next: days since the last update, the content of the article may be outdated.
+
+# --------------------------------------
+# Footer Settings
+# --------------------------------------
+footer:
+ owner:
+ enable: true
+ since: 2019
+ custom_text:
+ # Copyright of theme and framework
+ copyright: true
+
+# --------------------------------------
+# Aside Settings
+# --------------------------------------
+
+aside:
+ enable: true
+ hide: false
+ # Show the button to hide the aside in bottom right button
+ button: true
+ mobile: true
+ # Position: left / right
+ position: right
+ display:
+ archive: true
+ tag: true
+ category: true
+ card_author:
+ enable: true
+ description:
+ button:
+ enable: true
+ icon: fab fa-github
+ text: Follow Me
+ link: https://github.com/xxxxxx
+ card_announcement:
+ enable: true
+ content: This is my Blog
+ card_recent_post:
+ enable: true
+ # If set 0 will show all
+ limit: 5
+ # Sort: date / updated
+ sort: date
+ sort_order:
+ card_newest_comments:
+ enable: false
+ sort_order:
+ limit: 6
+ # Unit: mins, save data to localStorage
+ storage: 10
+ avatar: true
+ card_categories:
+ enable: true
+ # If set 0 will show all
+ limit: 8
+ # Choose: none / true / false
+ expand: none
+ sort_order:
+ card_tags:
+ enable: true
+ # If set 0 will show all
+ limit: 40
+ color: false
+ # Order of tags, random/name/length
+ orderby: random
+ # Sort of order. 1, asc for ascending; -1, desc for descending
+ order: 1
+ sort_order:
+ card_archives:
+ enable: true
+ # Type: monthly / yearly
+ type: monthly
+ # Eg: YYYY年MM月
+ format: MMMM YYYY
+ # Sort of order. 1, asc for ascending; -1, desc for descending
+ order: -1
+ # If set 0 will show all
+ limit: 8
+ sort_order:
+ card_post_series:
+ enable: true
+ # The title shows the series name
+ series_title: false
+ # Order by title or date
+ orderBy: 'date'
+ # Sort of order. 1, asc for ascending; -1, desc for descending
+ order: -1
+ card_webinfo:
+ enable: true
+ post_count: true
+ last_push_date: true
+ sort_order:
+ # Time difference between publish date and now
+ # Formal: Month/Day/Year Time or Year/Month/Day Time
+ # Leave it empty if you don't enable this feature
+ runtime_date:
+
+# --------------------------------------
+# Bottom right button
+# --------------------------------------
+
+# The distance between the bottom right button and the bottom (default unit: px)
+rightside_bottom:
+
+# Conversion between Traditional and Simplified Chinese
+translate:
+ enable: false
+ # The text of a button
+ default: 繁
+ # the language of website (1 - Traditional Chinese/ 2 - Simplified Chinese)
+ defaultEncoding: 2
+ # Time delay
+ translateDelay: 0
+ # The text of the button when the language is Simplified Chinese
+ msgToTraditionalChinese: '繁'
+ # The text of the button when the language is Traditional Chinese
+ msgToSimplifiedChinese: '簡'
+
+# Read Mode
+readmode: true
+
+# Dark Mode
+darkmode:
+ enable: true
+ # Toggle Button to switch dark/light mode
+ button: true
+ # Switch dark/light mode automatically
+ # autoChangeMode: 1 Following System Settings, if the system doesn't support dark mode, it will switch dark mode between 6 pm to 6 am
+ # autoChangeMode: 2 Switch dark mode between 6 pm to 6 am
+ # autoChangeMode: false
+ autoChangeMode: false
+ # Set the light mode time. The value is between 0 and 24. If not set, the default value is 6 and 18
+ start:
+ end:
+
+# Show scroll percent in scroll-to-top button
+rightside_scroll_percent: false
+
+# Don't modify the following settings unless you know how they work
+# Choose: readmode,translate,darkmode,hideAside,toc,chat,comment
+# Don't repeat the same value
+rightside_item_order:
+ enable: false
+ # Default: readmode,translate,darkmode,hideAside
+ hide:
+ # Default: toc,chat,comment
+ show:
+
+# --------------------------------------
+# Global Settings
+# --------------------------------------
+
+anchor:
+ # When you scroll, the URL will update according to header id.
+ auto_update: false
+ # Click the headline to scroll and update the anchor
+ click_to_scroll: false
+
+photofigcaption: false
+
+copy:
+ enable: true
+ # Add the copyright information after copied content
+ copyright:
+ enable: false
+ limit_count: 150
+
+# Need to install the hexo-wordcount plugin
+wordcount:
+ enable: false
+ # Display the word count of the article in post meta
+ post_wordcount: true
+ # Display the time to read the article in post meta
+ min2read: true
+ # Display the total word count of the website in aside's webinfo
+ total_wordcount: true
+
+# Busuanzi count for PV / UV in site
+busuanzi:
+ site_uv: true
+ site_pv: true
+ page_pv: true
+
+# --------------------------------------
+# Math
+# --------------------------------------
+
+# About the per_page
+# if you set it to true, it will load mathjax/katex script in each page
+# if you set it to false, it will load mathjax/katex script according to your setting (add the 'mathjax: true' or 'katex: true' in page's front-matter)
+math:
+ # Choose: mathjax, katex
+ # Leave it empty if you don't need math
+ use:
+ per_page: true
+ hide_scrollbar: false
+
+ mathjax:
+ # Enable the contextual menu
+ enableMenu: true
+ # Choose: all / ams / none, This controls whether equations are numbered and how
+ tags: none
+
+ katex:
+ # Enable the copy KaTeX formula
+ copy_tex: false
+
+# --------------------------------------
+# Search
+# --------------------------------------
+
+search:
+ # Choose: algolia_search / local_search / docsearch
+ # leave it empty if you don't need search
+ use:
+ placeholder:
+
+ # Algolia Search
+ algolia_search:
+ # Number of search results per page
+ hitsPerPage: 6
+
+ # Local Search
+ local_search:
+ # Preload the search data when the page loads.
+ preload: false
+ # Show top n results per article, show all results by setting to -1
+ top_n_per_article: 1
+ # Unescape html strings to the readable one.
+ unescape: false
+ CDN:
+
+ # Docsearch
+ # https://docsearch.algolia.com/
+ docsearch:
+ appId:
+ apiKey:
+ indexName:
+ option:
+
+# --------------------------------------
+# Share System
+# --------------------------------------
+
+share:
+ # Choose: sharejs / addtoany
+ # Leave it empty if you don't need share
+ use: sharejs
+
+ # Share.js
+ # https://github.com/overtrue/share.js
+ sharejs:
+ sites: facebook,twitter,wechat,weibo,qq
+
+ # AddToAny
+ # https://www.addtoany.com/
+ addtoany:
+ item: facebook,twitter,wechat,sina_weibo,facebook_messenger,email,copy_link
+
+# --------------------------------------
+# Comments System
+# --------------------------------------
+
+comments:
+ # Up to two comments system, the first will be shown as default
+ # Leave it empty if you don't need comments
+ # Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk
+ # Format of two comments system : Disqus,Waline
+ use:
+ # Display the comment name next to the button
+ text: true
+ # Lazyload: The comment system will be load when comment element enters the browser's viewport.
+ # If you set it to true, the comment count will be invalid
+ lazyload: false
+ # Display comment count in post's top_img
+ count: false
+ # Display comment count in Home Page
+ card_post_count: false
+
+# Disqus
+# https://disqus.com/
+disqus:
+ shortname:
+ # For newest comments widget
+ apikey:
+
+# Alternative Disqus - Render comments with Disqus API
+# https://github.com/SukkaW/DisqusJS
+disqusjs:
+ shortname:
+ apikey:
+ option:
+
+# Livere
+# https://www.livere.com/
+livere:
+ uid:
+
+# Gitalk
+# https://github.com/gitalk/gitalk
+gitalk:
+ client_id:
+ client_secret:
+ repo:
+ owner:
+ admin:
+ option:
+
+# Valine
+# https://valine.js.org
+valine:
+ appId:
+ appKey:
+ avatar: monsterid
+ # This configuration is suitable for domestic custom domain name users, overseas version will be automatically detected (no need to manually fill in)
+ serverURLs:
+ bg:
+ # Use Valine visitor count as the page view count
+ visitor: false
+ option:
+
+# Waline - A simple comment system with backend support fork from Valine
+# https://waline.js.org/
+waline:
+ serverURL:
+ bg:
+ # Use Waline pageview count as the page view count
+ pageview: false
+ option:
+
+# Utterances
+# https://utteranc.es/
+utterances:
+ repo:
+ # Issue Mapping: pathname/url/title/og:title
+ issue_term: pathname
+ # Theme: github-light/github-dark/github-dark-orange/icy-dark/dark-blue/photon-dark
+ light_theme: github-light
+ dark_theme: photon-dark
+ js:
+ option:
+
+# Facebook Comments Plugin
+# https://developers.facebook.com/docs/plugins/comments/
+facebook_comments:
+ app_id:
+ # optional
+ user_id:
+ pageSize: 10
+ # Choose: social / time / reverse_time
+ order_by: social
+ lang: zh_TW
+
+# Twikoo
+# https://github.com/imaegoo/twikoo
+twikoo:
+ envId:
+ region:
+ # Use Twikoo visitor count as the page view count
+ visitor: false
+ option:
+
+# Giscus
+# https://giscus.app/
+giscus:
+ repo:
+ repo_id:
+ category_id:
+ light_theme: light
+ dark_theme: dark
+ js:
+ option:
+
+# Remark42
+# https://remark42.com/docs/configuration/frontend/
+remark42:
+ host:
+ siteId:
+ option:
+
+# Artalk
+# https://artalk.js.org/guide/frontend/config.html
+artalk:
+ server:
+ site:
+ # Use Artalk visitor count as the page view count
+ visitor: false
+ option:
+
+# --------------------------------------
+# Chat Services
+# --------------------------------------
+
+chat:
+ # Choose: chatra/tidio/daovoice/crisp
+ # Leave it empty if you don't need chat
+ use:
+ # Chat Button [recommend]
+ # It will create a button in the bottom right corner of website, and hide the origin button
+ rightside_button: false
+ # The origin chat button is displayed when scrolling up, and the button is hidden when scrolling down
+ button_hide_show: false
+
+# https://chatra.io/
+chatra:
+ id:
+
+# https://www.tidio.com/
+tidio:
+ public_key:
+
+# http://dashboard.daovoice.io/app
+daovoice:
+ app_id:
+
+# https://crisp.chat/en/
+crisp:
+ website_id:
+
+# --------------------------------------
+# Analysis
+# --------------------------------------
+
+# https://tongji.baidu.com/web/welcome/login
+baidu_analytics:
+
+# https://analytics.google.com/analytics/web/
+google_analytics:
+
+# https://www.cloudflare.com/zh-tw/web-analytics/
+cloudflare_analytics:
+
+# https://clarity.microsoft.com/
+microsoft_clarity:
+
+# https://umami.is/
+umami_analytics:
+ enable: false
+ # For self-hosted setups, configure the hostname of the Umami instance
+ serverURL:
+ website_id:
+ option:
+ UV_PV:
+ site_uv: false
+ site_pv: false
+ page_pv: false
+ # Umami Cloud (API key) / self-hosted Umami (token)
+ token:
+
+# --------------------------------------
+# Advertisement
+# --------------------------------------
+
+# Google Adsense
+google_adsense:
+ enable: false
+ auto_ads: true
+ js: https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js
+ client:
+ enable_page_level_ads: true
+
+# Insert ads manually
+# Leave it empty if you don't need ads
+ad:
+ # Insert ads in the index (every three posts)
+ index:
+ # Insert ads in aside
+ aside:
+ # Insert ads in the post (before pagination)
+ post:
+
+# --------------------------------------
+# Verification
+# --------------------------------------
+
+site_verification:
+ # - name: google-site-verification
+ # content: xxxxxx
+ # - name: baidu-site-verification
+ # content: xxxxxxx
+
+# --------------------------------------
+# Beautify / Effect
+# --------------------------------------
+
+# Theme color for customize
+# Notice: color value must in double quotes like "#000" or may cause error!
+
+# theme_color:
+# enable: true
+# main: "#49B1F5"
+# paginator: "#00c4b6"
+# button_hover: "#FF7242"
+# text_selection: "#00c4b6"
+# link_color: "#99a9bf"
+# meta_color: "#858585"
+# hr_color: "#A4D8FA"
+# code_foreground: "#F47466"
+# code_background: "rgba(27, 31, 35, .05)"
+# toc_color: "#00c4b6"
+# blockquote_padding_color: "#49b1f5"
+# blockquote_background_color: "#49b1f5"
+# scrollbar_color: "#49b1f5"
+# meta_theme_color_light: "ffffff"
+# meta_theme_color_dark: "#0d0d0d"
+
+# The user interface setting of category and tag page
+# Choose: index - same as Homepage UI / default - same as archives UI
+# leave it empty or index
+category_ui:
+tag_ui:
+
+# Rounded corners for UI elements
+rounded_corners_ui: true
+
+# Stretches the lines so that each line has equal width
+text_align_justify: false
+
+# Add a mask to the header and footer
+mask:
+ header: true
+ footer: true
+
+# Loading Animation
+preloader:
+ enable: false
+ # source
+ # 1. fullpage-loading
+ # 2. pace (progress bar)
+ source: 1
+ # pace theme (see https://codebyzach.github.io/pace/)
+ pace_css_url:
+
+# Page Transition
+enter_transitions: true
+
+# Default display mode - light (default) / dark
+display_mode: light
+
+# Configuration for beautifying the content of the article
+beautify:
+ enable: false
+ # Specify the field to beautify (site or post)
+ field: post
+ # Specify the icon to be used as a prefix for the title, such as '\f0c1'
+ title_prefix_icon:
+ # Specify the color of the title prefix icon, such as '#F47466'
+ title_prefix_icon_color:
+
+# Global font settings
+# Don't modify the following settings unless you know how they work
+font:
+ global_font_size:
+ code_font_size:
+ font_family:
+ code_font_family:
+
+# Font settings for the site title and site subtitle
+blog_title_font:
+ font_link:
+ font_family:
+
+# The setting of divider icon
+hr_icon:
+ enable: true
+ # The unicode value of Font Awesome icon, such as '\3423'
+ icon:
+ icon_top:
+
+# Typewriter Effect
+# https://github.com/disjukr/activate-power-mode
+activate_power_mode:
+ enable: false
+ colorful: true
+ shake: true
+ mobile: false
+
+# Background effects
+# --------------------------------------
+
+# canvas_ribbon
+# See: https://github.com/hustcc/ribbon.js
+canvas_ribbon:
+ enable: false
+ # The size of ribbon
+ size: 150
+ # The opacity of ribbon (0 ~ 1)
+ alpha: 0.6
+ zIndex: -1
+ click_to_change: false
+ mobile: false
+
+# Fluttering Ribbon
+canvas_fluttering_ribbon:
+ enable: false
+ mobile: false
+
+# canvas_nest
+# https://github.com/hustcc/canvas-nest.js
+canvas_nest:
+ enable: false
+ # Color of lines, default: '0,0,0'; RGB values: (R,G,B).(note: use ',' to separate.)
+ color: '0,0,255'
+ # The opacity of line (0~1)
+ opacity: 0.7
+ # The z-index property of the background
+ zIndex: -1
+ # The number of lines
+ count: 99
+ mobile: false
+
+# Mouse click effects: fireworks
+fireworks:
+ enable: false
+ zIndex: 9999
+ mobile: false
+
+# Mouse click effects: Heart symbol
+click_heart:
+ enable: false
+ mobile: false
+
+# Mouse click effects: words
+clickShowText:
+ enable: false
+ text:
+ # - I
+ # - LOVE
+ # - YOU
+ fontSize: 15px
+ random: false
+ mobile: false
+
+# --------------------------------------
+# Lightbox Settings
+# --------------------------------------
+
+# Choose: fancybox / medium_zoom
+# https://github.com/francoischalifour/medium-zoom
+# https://fancyapps.com/fancybox/
+# Leave it empty if you don't need lightbox
+lightbox:
+
+# --------------------------------------
+# Tag Plugins settings
+# --------------------------------------
+
+# Series
+series:
+ enable: false
+ # Order by title or date
+ orderBy: 'title'
+ # Sort of order. 1, asc for ascending; -1, desc for descending
+ order: 1
+ number: true
+
+# ABCJS - The ABC Music Notation Plugin
+# https://github.com/paulrosen/abcjs
+abcjs:
+ enable: false
+ per_page: true
+
+# Mermaid
+# https://github.com/mermaid-js/mermaid
+mermaid:
+ enable: false
+ # Write Mermaid diagrams using code blocks
+ code_write: false
+ # built-in themes: default / forest / dark / neutral
+ theme:
+ light: default
+ dark: dark
+
+# Note - Bootstrap Callout
+note:
+ # Note tag style values:
+ # - simple bs-callout old alert style. Default.
+ # - modern bs-callout new (v2-v3) alert style.
+ # - flat flat callout style with background, like on Mozilla or StackOverflow.
+ # - disabled disable all CSS styles import of note tag.
+ style: flat
+ icons: true
+ border_radius: 3
+ # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
+ # Offset also applied to label tag variables. This option can work with disabled note tag.
+ light_bg_offset: 0
+
+# --------------------------------------
+# Other Settings
+# --------------------------------------
+
+# https://github.com/MoOx/pjax
+pjax:
+ enable: false
+ # Exclude the specified pages from pjax, such as '/music/'
+ exclude:
+ # - /xxxxxx/
+
+# Inject the css and script (aplayer/meting)
+aplayerInject:
+ enable: false
+ per_page: true
+
+# Snackbar - Toast Notification
+# https://github.com/polonel/SnackBar
+# position: top-left / top-center / top-right / bottom-left / bottom-center / bottom-right
+snackbar:
+ enable: false
+ position: bottom-left
+ # The background color of Toast Notification in light mode and dark mode
+ bg_light: '#49b1f5'
+ bg_dark: '#1f1f1f'
+
+# Instant.page
+# https://instant.page/
+instantpage: false
+
+# Pangu - Insert a space between Chinese character and English character
+# https://github.com/vinta/pangu.js
+pangu:
+ enable: false
+ # Specify the field to use pangu (site or post)
+ field: site
+
+# Lazyload
+# https://github.com/verlok/vanilla-lazyload
+lazyload:
+ enable: false
+ # Specify the field to use lazyload (site or post)
+ field: site
+ placeholder:
+ blur: false
+
+# PWA
+# See https://github.com/JLHwung/hexo-offline
+# ---------------
+pwa:
+ enable: false
+ manifest:
+ apple_touch_icon:
+ favicon_32_32:
+ favicon_16_16:
+ mask_icon:
+
+# Open graph meta tags
+# https://hexo.io/docs/helpers#open-graph
+Open_Graph_meta:
+ enable: true
+ option:
+ # twitter_card:
+ # twitter_image:
+ # twitter_id:
+ # twitter_site:
+ # google_plus:
+ # fb_admins:
+ # fb_app_id:
+
+# Add the vendor prefixes to ensure compatibility
+css_prefix: true
+
+# Inject
+# Insert the code to head (before '' tag) and the bottom (before '