更換 NexT 主題: Butterfly 主題客製化設定
從 NexT theme 換到 Butterfly theme
用了一陣子的 NexT theme 也看了很多用 NexT theme 的 blog,總覺 Next 的設計有點過於乾淨缺乏活力,像是側邊欄訊息、dark mode、回到頂層、側邊欄的分類、標籤、歸檔還有網站資訊這些 Butterfly theme 原本就預設存在的可客製化選項在 NexT 都需要另外調整甚至是客製化部分程式碼,或許有些人喜歡部落格頁面乾淨一點,那 NexT 就滿適合的,但我私心覺得 Butterfly 的設計比較美啦 XD 而且 Butterfly 的中文教學可能是我看過最用心的了,第一次選用 NexT 時我查了很多篇不同的文章才拼湊出當時部落格的樣貌,但 Butterfly 的官方教學網站幾乎包辦了所有客製化需要的資訊,這讓我在更換 theme 節省了滿多時間的。
安裝 Butterfly Theme
我安裝當下的 butterfly theme 版本為 4.6.1,可以選擇用 git clone
,或是 npm install
,來安裝,因為用 npm 安裝的 theme 設定黨都會放在 node_modules
資料夾底下,對於有客製化需求的人來說比較不容易管理,因此我選擇用 git clone 來安裝。
- 首先將主題 clone 到
theme/butterfly
裡面
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
- 接著將隱藏的 .git 資料夾刪除,讓
theme/butterfly
資料夾跟著自己 repo 的版本控制走。 - 接著安裝必要插件:
npm install hexo-renderer-pug hexo-renderer-stylus --save
- 接著修改 Hexo 目錄下的
_config.yml
,把主題改為 butterfly
theme: butterfly
尚未客製化的主題長得像這樣 ⬇︎
404 頁面
theme/_config.yaml
設置開啟 404 頁面
error_404:
enable: true
subtitle: 'Page Not Found'
background: https://i.loli.net/2020/05/19/aKOcLiyPl2JQdFD.png
導航菜單
menu:
首頁: / || fas fa-home
歸檔: /archives/ || fas fa-archive
標籤: /tags/ || fas fa-tags
分類: /categories/ || fas fa-folder-open
# List||fas fa-list:
# Music: /music/ || fas fa-music
# Movie: /movies/ || fas fa-video
# Link: /link/ || fas fa-link
# About: /about/ || fas fa-heart
導航欄設置
nav:
logo: # 網站的 logo,支持圖片,直接填入圖片鏈接
display_title: true # 是否顯示網站標題,填寫 true 或者 false
fixed: false # 是否固定狀態欄,填寫 true 或者 false
社交圖標
可以在 font-awesome v6 找到圖標名稱
social:
fab fa-github: https://github.com/xxxxx || Github
fas fa-envelope: mailto:xxxxxx@gmail.com || Email
主頁文章節選
若文章的 front-matter 有添加 description,就優先顯示 description,若沒有則自動節選。
# 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: 2
length: 500 # if you set method to 2 or 3, the length need to config
頂部圖
index_img #主頁的 top_img
default_top_img #默認的 top_img,當頁面的 top_img 沒有配置時,會顯示 default_top_img
archive_img #歸檔頁面的 top_img
tag_img tag #子頁面 的 默認 top_img
tag_per_img #tag 子頁面的 top_img,可配置每個 tag 的 top_img
category_img #category 子頁面的默認 top_img
category_per_img category #子頁面的 top_img,可配置每個 category 的 top_img
頂部圖的獲取順序,如果都沒有配置,則不顯示頂部圖。
- 頁面頂部圖的獲取順序: 各自配置的 top_img > 配置文件的 default_top_img
- 文章頁頂部圖的獲取順序: 各自配置的 top_img > cover > 配置文件的 default_top_img
文章封面
文章的 Front-matter 如果不配置 cover,可以設置顯示默認的 cover 或設為 false
當配置多張圖片時,會隨機選擇一張作為cover。
cover:
# display the cover or not (是否顯示文章封面)
index_enable #主頁是否顯示文章封面圖
aside_enable #側欄是否顯示文章封面圖
archives_enable #歸檔頁面是否顯示文章封面圖
position #主頁卡片文章封面的顯示位置
- left:全部顯示在左邊
- right:全部顯示在右邊
- both:封面位置以左右左右輪流顯示
default_cover #默認的 cover, 可配置圖片鏈接/顔色/漸變色等
- #cover1
- #cover2
文章封面的獲取順序 Front-matter 的 cover > 配置文件的 default_cover > false
圖片設置
頭像
avatar:
img: /img/avatar.png
effect: true # 頭像會一直轉圈