Hexo5 起手式
版本
- Windows 10
- Next version 8.7.0
- hexo version 5.4.0
- hexo-cli: 4.3.0
安裝步驟
開啟 PowerShell
npm install -g hexo-cli
- 安裝後才可使用
hexo
的指令。 - Mac 如果安裝後出現錯誤訊息
zsh: command not found: hexo
可加入sudo
→sudo npm install -g hexo-cli
。
- 安裝後才可使用
hexo init 要生成的資料夾名稱
,生成專案資料夾。- 做初始化生成此資料夾前,記得使用 cd 移動至要放置資料夾的路徑
cd 要放置的資料夾路徑
( 例如桌面cd Desktop
,再開始下方指令,執行第一次即可 )。 - 我把此專案放在磁碟 G:,命名 echocarrietHexo。
- 做初始化生成此資料夾前,記得使用 cd 移動至要放置資料夾的路徑
- 記得先
cd
移動到剛剛生成的專案資料夾 → 啟動部落格hexo serve
- 它有自己的模擬伺服器,所以輸入此指令就可開啟。
- 停止指令
ctrl+c
- 也可把此專案於 vscode 開啟,並於終端機執行
hexo serve
。
// 生成專案後裡面的檔案 ▲
部屬到 GitHub
GitHub 上的分支用途
- main 分支 : 編譯過的檔案。
- hexo 分支 : 原始檔 ( 換電腦可直接把整個檔案 clone 下來 )。
一般 hexo deploy -g
只會上傳編譯檔到 GitHub,這邊想要保留原始資料,所以下方會另外開一個 hexo 分支來存放。
步驟開始
到 Github 新增 reponsitory ,名稱以 github 名稱為主,不要亂加字 。
- ⭕ 正確 : 以使用者帳號後方接
.github.io
( 以我的帳號 echocarriet 為例 →echocarriet.github.io
) - ❌ 錯誤示範 : echocarriet12.github.io、echocarriet.github.io/blog
- ⭕ 正確 : 以使用者帳號後方接
替 Hexo 安裝部署套件
npm install hexo-deployer-git --save
- Hexo 只提供部落格的架設,所以要部屬到 github 又不想額外安裝套件,需輸入此指令。
開啟專案中的
_config.yml
( 系統設定檔 ) ,搜尋# Deployment
,改成下方程式碼,儲存後進入步驟 5 輸入部屬指令就可部屬到遠端伺服器主機上。- repo : 填入步驟 1 ,於 github 新增的 repository 網址。
- HTTPS →
https://github.com/[你的 GitHub 帳號]/[你的 GitHub 帳號].github.io.git
- SSH →
[email protected]:echocarriet/echocarriet.github.io.git
- HTTPS →
- branch : 分支可寫 main ( 新版 ) 或 master。
1
2
3
4deploy:
type: git
repo: https://github.com/echocarriet/echocarriet.github.io.git
branch: main1
2
3
4deploy:
type: git
repo: [email protected]:echocarriet/echocarriet.github.io.git
branch: main- repo : 填入步驟 1 ,於 github 新增的 repository 網址。
進入步驟 4 前,須先到
專案 / _config.yml
大約第 16 行的 url ( 搜尋 #URL ) 把路徑改為 Github 儲存庫名稱。( # 請小心後面不要多一個「/
」否則會出現問題 )1
2
3
4
5
6# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: http://example.com
# 修改為
url: https://echocarriet.github.iohexo deploy -g
( 縮寫hexo d -g
),輸入部屬指令,並生成靜態頁面。- 每編輯完一篇文章要上傳 gh-page ,就執行一次
hexo d -g
。
- 每編輯完一篇文章要上傳 gh-page ,就執行一次
當畫面顯示
Branch 'master' set up to track remote branch 'main' from 'https://github.com/echocarriet/echocarriet.github.io.git'.
,表示部署成功。進入echocarriet.github.io
即可開啟部落格囉 !1 ~ 5 步驟,上傳到 GitHub rep 的為編譯過的資料,這邊我想要上傳把原始資料都上傳上去,使用分支備份的方式,從下方步驟 7 開始吧 !
於 main 分支做版本控制 :
git init
→git add .
→git commit -m '說明'
- 查詢目前在哪個分支
git branch
- main 分支上傳到 GitHub 為編譯後的資料。
- 查詢目前在哪個分支
開 hexo 分支 ( 上傳到 GitHub 的完整原始資料 ) :
git checkout -b hexo
日後新增或更新文章請先到 hexo 分支處理,再回到 main 分支做合併。
- 如果 GitHub 還未有 hexo 分支,先執行 ( 目前位於 main 分支 ) :
git add .
git commit -m '說明'
( 沒有新增或修改東西可略過前兩個步驟 )git remote add origin <資料庫Url>
git push origin hexo
- 以新增文章為例 :
git checkout hexo
hexo new '文章名稱'
git add .
git commit -m '說明'
git checkout main
git merge hexo
- 合併後,接下來就可以把 main 與 hexo 分支的資料分別上傳到 GitHub 囉,請看下個步驟 。
- main 分支上傳 GitHub :
hexo deploy -g
,會把編譯過的資料推到 GitHub 的 main 分支。- 每編輯完一篇文章要上傳 gh-page ,就執行一次
hexo d -g
。
- 每編輯完一篇文章要上傳 gh-page ,就執行一次
git push origin hexo
,會把原始資料上傳到 GitHub 的 hexo 分支。- 如果 main 與 hexo 分支要推上去的資料不同,就不要進行 merge 再使用
git checkout 分支
切換到那個分支進行 i 、ii 指令的推送。
- 如果 GitHub 還未有 hexo 分支,先執行 ( 目前位於 main 分支 ) :
安裝 Hexo 框架的 next 主題
這邊把部落格放置在 github 上
npm install hexo-theme-next
- 新版安裝可透過 nvm 指令 ( 如果在
hexo serve
狀態可先輸入control + c
再輸入上方指令 )
- 新版安裝可透過 nvm 指令 ( 如果在
- 開啟專案內的
_config.yml
檔案,找到 theme: 修改為 next。
VS Code 終端機輸入hexo s
(hexo serve
縮寫指令 )- Hexo 框架的的 next 主題 ( 此主題整合滿多第三方套件、也有程式碼高量 )
更改 Hexo 框架中 next 主題的主題風格
- 指令 →
cp node_modules/hexo-theme-next/_config.yml _config.next.yml
- 會自動從路徑 :
專案 / node_modules / hexo-theme-next
拷貝一份它的設定檔config.next.yml
出來,如果沒看到可以到專案內的 node_modules 資料夾內找。 _config.yml
為整個 Hexo 的系統設定檔,檔案內有個theme :
後方可更換要修改的主題名字,這邊使用theme: next
主題。- 開啟主題設定檔
config.next.yml
,搜尋#Scheme
有四個主題風格可選,要更換主題風格只要於前方加入或移除#
即可開啟或關閉風格。( 目前使用#scheme: Pisces
主題 )
- 會自動從路徑 :
Hexo 主題新增標籤及分類頁面
輸入指令,新增標籤與分類
指令
hexo new page tags
,於路徑 : 專案 / source 出現 : _posts 與 tags 資料夾。指令
hexo new page categories
,於路徑 : 專案 / source 出現 : categories 資料夾。
修改剛建立的標籤與分類頁面
tages 路徑 : 專案 / source / tages ,開啟 index.md,加入
1
type: "tags"
categories 路徑 : 專案 / source / categories ,開啟 index.md,加入
1
type: "categories"
路徑 : 專案 / _config.next.yml 搜尋 menu: ,把 #categories 與 #tags,前方 # 井字號拿掉。就會出現在側欄囉 !
1
2
3
4
5
6
7
8
9menu:
#home: / || fa fa-home
#about: /about/ || fa fa-user
tags: /tags/ || fa fa-tags
categories: /categories/ || fa fa-th
#archives: /archives/ || fa fa-archive
#schedule: /schedule/ || fa fa-calendar
#sitemap: /sitemap.xml || fa fa-sitemap
#commonweal: /404/ || fa fa-heartbeat新增文章時 front-matter 就會有 tags 與 categories 了,如果沒有的話再到路徑 : 專案 / scaffolds / post.md 添加。
1
2
3
4
5
6
7
8
title: { { title } }
date: { { date } }
tags:
categories:
description:
添加多個標籤與添加分類注意事項
每篇文章只會有一個 categories
- hexo 主題一篇文章只會有一個分類。以下方為例,hexo 不會產生 HTML & CSS 、 Float 浮動兩個分類,而是「 HTML & CSS 下的 Float 浮動 」分類。
1
2
3
4
5
6
7
8---
title: 第三篇文章
date: 2021-08-02 19:55:23
categories:
- HTML & CSS
- Float浮動
description:
---設置多個標籤 tags,可嘗試下方寫法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16## 寫法一
---
title: 第三篇文章
date: 2021-08-02 19:55:23
tags: [vue,BS]
---
## 寫法二
---
title: 第三篇文章
date: 2021-08-02 19:55:23
tags:
- vue
- BS
---
修改文章永久連結的格式
套件 : hexo-abbrlink
路徑 : 專案 / _config.yml
安裝 hexo-abbrlink
npm install hexo-abbrlink --save
進入 _config.yml 搜尋 # URL ,調整 permalink 永久連結格式。
1
2
3
4
5
6# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
permalink: :year/:month/:day/:title/
# 調整後
permalink: :category/:year:month:day/:abbrlink/在最末端加入一段 abbrlink 設置
- ‼️ 以上動作還沒改完之前請不要執行
hexo serve
,否則你會崩潰。
1
2
3
4# abbrlink config
abbrlink:
alg: crc32 # 演算法:crc16(default) and crc32
rep: dec # 進位制:dec(default) and hex- ‼️ 以上動作還沒改完之前請不要執行
以上步驟都走完,開啟文章頁面遇到無法正常顯示永久連結,可執行
hexo clean
。
Category 分類調整
請參考文章中 Category 調整 做設定。
專案下的檔案說明
專案/_config.yml
: 系統設定檔專案/_config.next.yml
: 主題設定檔專案/source/_posts 資料夾
: 所有文章- 整個資料夾不想被編譯 : 於 _posts 資料夾底下的某資料夾 ( 例,命名測試文章區 ),如果不想被編譯 ( 還不想被公開 ) ,可於資料夾命名加下底線
_
→\_測試文章區
,如此一來就可避免被編譯到 public。
另外 source 下的主要資料夾只有 _posts,所以只有 _posts 加下底線還是會被編譯出來。 - 單一文章不想被編譯 : 例如 _posts 資料夾底下的
第二篇文章.md
不想上傳上去,可直接加上下底線_
→\_第二篇文章.md
,如此一來就可避免被編譯到 public。
- 整個資料夾不想被編譯 : 於 _posts 資料夾底下的某資料夾 ( 例,命名測試文章區 ),如果不想被編譯 ( 還不想被公開 ) ,可於資料夾命名加下底線
專案/scaffolds 資料夾
: 預設模版的資料夾- draft.md 草稿
- page.md 頁面
- post.md 文章
遇到部落格無法開啟之類的問題
如果部落格遇到不能開之類的問題可嘗試使用此指令,去清掉記憶體 ( 路徑 : 專案/db.json
),不建議直接手動刪除 db.json 檔案內的東西,請使用指令 hexo clean
,執行完後 db.json 檔案會不見。
Hexo 常用指令
1 | $ hexo deploy #部署 |
參考資訊
- 六角學院直播 - 架設自己的部落格超 Easy | Hexo 5
- 試著學 Hexo - 部署你的第一個部落格
- 試著學 Hexo - 你不能不學的 Git 基本指令
- 試著學 Hexo - 認識 Hexo 目錄結構
- Hexo 新增標籤及分類頁面
- Hexo 配置 / 網址
- Hexo 自訂 / 永久連結 ( permalink 永久連結 )
- Hexo Url 優化(SEO) ( 搜尋 permalink )
- Hexo-永久連結設定