前言
上一篇博客Github+域名搭建個人主頁(個人博客) 寫了如何使用GitHub+域名搭建一個靜態(tài)的個人主頁,搭建好之后盟广,就可以使用對應的域名來進行訪問了,這篇博客主要是跟大家介紹使用Hexo對自己的個人博客進行優(yōu)化瓮钥,管理筋量。
準備工作
Git客戶端 : 下載安裝,一路默認安裝即可
NodeJs: 下載安裝 ,一路默認安裝即可
驗證NodeJs 是否安裝成功
Microsoft Windows [版本 10.0.17134.472]
(c) 2018 Microsoft Corporation碉熄。保留所有權利桨武。
C:\Users\Administrator>node -v
v11.6.0
C:\Users\Administrator>npm -v
6.5.0-next.0
安裝
參考 Hexo官方文檔
安裝 Hexo
如果您的電腦中已經安裝上述必備程序,那么恭喜您锈津!接下來只需要使用 npm 即可完成 Hexo 的安裝呀酸。
$ npm install -g hexo-cli
初始化 Hexo
安裝 Hexo 完成后,請執(zhí)行下列命令琼梆,Hexo 將會在指定文件夾中新建所需要的文件性誉。
$ hexo init <folder>
$ cd <folder>
$ npm install
新建完成后,指定文件夾的目錄如下:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
_config.yml
網站的 配置 信息茎杂,您可以在此配置大部分的參數错览。
package.json
應用程序的信息。EJS, Stylus 和 Markdown renderer 已默認安裝煌往,您可以自由移除倾哺。
<figcaption style="box-sizing: inherit; margin: -5px 0px 5px; font-size: 0.9em; color: rgb(153, 153, 153);">package.json</figcaption>
{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": ""
},
"dependencies": {
"hexo": "^3.0.0",
"hexo-generator-archive": "^0.1.0",
"hexo-generator-category": "^0.1.0",
"hexo-generator-index": "^0.1.0",
"hexo-generator-tag": "^0.1.0",
"hexo-renderer-ejs": "^0.1.0",
"hexo-renderer-stylus": "^0.2.0",
"hexo-renderer-marked": "^0.2.4",
"hexo-server": "^0.1.2"
}
}
scaffolds
模版 文件夾。當您新建文章時刽脖,Hexo 會根據 scaffold 來建立文件悼粮。
Hexo的模板是指在新建的markdown文件中默認填充的內容。例如曾棕,如果您修改scaffold/post.md中的Front-matter內容,那么每次新建一篇文章時都會包含這個修改菜循。
source
資源文件夾是存放用戶資源的地方翘地。除 _posts
文件夾之外,開頭命名為 _
(下劃線)的文件 / 文件夾和隱藏的文件將會被忽略。Markdown 和 HTML 文件會被解析并放到 public
文件夾衙耕,而其他文件會被拷貝過去昧穿。
themes
主題 文件夾。Hexo 會根據主題來生成靜態(tài)頁面橙喘。
配置
您可以在 _config.yml 中修改大部分的配置时鸵。
網站
參數 | 描述 |
---|---|
title |
網站標題 |
subtitle |
網站副標題 |
description |
網站描述 |
author |
您的名字 |
language |
網站使用的語言 |
timezone |
網站時區(qū)。Hexo 默認使用您電腦的時區(qū)厅瞎。時區(qū)列表饰潜。比如說:America/New_York , Japan , 和 UTC 。 |
其中和簸,description
主要用于SEO,告訴搜索引擎一個關于您站點的簡單描述,通常建議在其中包含您網站的關鍵詞粥庄。author
參數用于主題顯示文章的作者狮杨。
網址
參數 | 描述 | 默認值 |
---|---|---|
url |
網址 | |
root |
網站根目錄 | |
permalink |
文章的 永久鏈接 格式 | :year/:month/:day/:title/ |
permalink_defaults |
永久鏈接中各部分的默認值 |
網站存放在子目錄
如果您的網站存放在子目錄中,例如
http://yoursite.com/blog
爽柒,則請將您的url
設為http://yoursite.com/blog
并把root
設為/blog/
吴菠。
目錄
參數 | 描述 | 默認值 |
---|---|---|
source_dir |
資源文件夾,這個文件夾用來存放內容浩村。 | source |
public_dir |
公共文件夾做葵,這個文件夾用于存放生成的站點文件。 | public |
tag_dir |
標簽文件夾 | tags |
archive_dir |
歸檔文件夾 | archives |
category_dir |
分類文件夾 | categories |
code_dir |
Include code 文件夾 | downloads/code |
i18n_dir |
國際化(i18n)文件夾 | :lang |
skip_render |
跳過指定文件的渲染穴亏,您可使用 glob 表達式來匹配路徑蜂挪。 |
提示
如果您剛剛開始接觸Hexo,通常沒有必要修改這一部分的值嗓化。
文章
參數 | 描述 | 默認值 |
---|---|---|
new_post_name |
新文章的文件名稱 | :title.md |
default_layout |
預設布局 | post |
auto_spacing |
在中文和英文之間加入空格 | false |
titlecase |
把標題轉換為 title case | false |
external_link |
在新標簽中打開鏈接 | true |
filename_case |
把文件名稱轉換為 (1) 小寫或 (2) 大寫 | 0 |
render_drafts |
顯示草稿 | false |
post_asset_folder |
啟動 Asset 文件夾 | false |
relative_link |
把鏈接改為與根目錄的相對位址 | false |
future |
顯示未來的文章 | true |
highlight |
代碼塊的設置 |
相對地址
默認情況下棠涮,Hexo生成的超鏈接都是絕對地址。例如刺覆,如果您的網站域名為
example.com
,您有一篇文章名為hello
严肪,那么絕對鏈接可能像這樣:http://example.com/hello.html
,它是絕對于域名的谦屑。相對鏈接像這樣:/hello.html
驳糯,也就是說,無論用什么域名訪問該站點氢橙,都沒有關系酝枢,這在進行反向代理時可能用到。通常情況下悍手,建議使用絕對地址帘睦。
分類 & 標簽
參數 | 描述 | 默認值 |
---|---|---|
default_category |
默認分類 | uncategorized |
category_map |
分類別名 | |
tag_map |
標簽別名 |
日期 / 時間格式
Hexo 使用 Moment.js 來解析和顯示時間袍患。
參數 | 描述 | 默認值 |
---|---|---|
date_format |
日期格式 | YYYY-MM-DD |
time_format |
時間格式 | H:mm:ss |
分頁
參數 | 描述 | 默認值 |
---|---|---|
per_page |
每頁顯示的文章量 (0 = 關閉分頁功能) | 10 |
pagination_dir |
分頁目錄 | page |
擴展
參數 | 描述 |
---|---|
theme |
當前主題名稱。值為false 時禁用主題 |
deploy |
部署部分的設置 |
選擇主題
在Hexo 主題中選擇自己喜歡的主題竣付,下載下來诡延,解壓之后,將主題的文件夾復制到 hexo 文件夾中的 theme 文件夾下 古胆;然后再hexo 根目錄下更改_config.yml
文件中的 theme
的值
例如:
theme: hexo-theme-matery
要修改主題中的樣式肆良,可根據主題的說明文檔 在 主題文件夾中的 _config.yml
文件中修改 或者修改對應的樣式文件
Hexo 操作命令
init
新建一個網站。如果沒有設置 folder 逸绎,Hexo 默認在目前的文件夾建立網站惹恃。
$ hexo init [folder]
New
新建一篇文章。如果沒有設置 layout 的話桶良,默認使用 _config.yml 中的 default_layout 參數代替座舍。如果標題包含空格的話,請使用引號括起來陨帆。
$ hexo new [layout] <title>
generate
生成靜態(tài)文件曲秉。
$ hexo generate
選項 | 描述 |
---|---|
-d ,--deploy
|
文件生成后立即部署網站 |
-w ,--watch
|
監(jiān)視文件變動 |
該命令可以簡寫為
$ hexo g
publish
發(fā)表草稿。
$ hexo publish [layout] <filename>
server
啟動服務器疲牵。默認情況下承二,訪問網址為: http://localhost:4000/
。
選項 | 描述 |
---|---|
-p , --port
|
重設端口 |
-s , --static
|
只使用靜態(tài)文件 |
-l , --log
|
啟動日記記錄纲爸,使用覆蓋記錄格式 |
$ hexo server
deploy
部署網站亥鸠。
參數 | 描述 |
---|---|
-g , --generate
|
部署之前預先生成靜態(tài)文件 |
$ hexo deploy
該命令可以簡寫為:
$ hexo d
render
渲染文件。
參數 | 描述 |
---|---|
-o , --output
|
設置輸出路徑 |
$ hexo render <file1> [file2] ...
migrate
從其他博客系統(tǒng) 遷移內容识啦。
$ hexo migrate <type>
clean
清除緩存文件 (db.json
) 和已生成的靜態(tài)文件 (public
)负蚊。
在某些情況(尤其是更換主題后),如果發(fā)現您對站點的更改無論如何也不生效颓哮,您可能需要運行該命令家妆。
$ hexo clean
list
列出網站資料。
$ hexo list <type>
version
顯示 Hexo 版本冕茅。
$ hexo version
選項
安全模式
在安全模式下伤极,不會載入插件和腳本。當您在安裝新插件遭遇問題時姨伤,可以嘗試以安全模式重新執(zhí)行哨坪。
$ hexo --safe
調試模式
在終端中顯示調試信息并記錄到 debug.log
。當您碰到問題時乍楚,可以嘗試用調試模式重新執(zhí)行一次当编,并 提交調試信息到 GitHub。
$ hexo --debug
簡潔模式
隱藏終端信息徒溪。
$ hexo --silent
自定義配置文件的路徑
自定義配置文件的路徑凌箕,執(zhí)行后將不再使用 _config.yml
拧篮。
$ hexo --config custom.yml
顯示草稿
顯示 source/_drafts
文件夾中的草稿文章。
$ hexo --draft
自定義 CWD
自定義當前工作目錄(Current working directory)的路徑牵舱。
$ hexo --cwd /path/to/cwd
服務器
Hexo 3.0 把服務器獨立成了個別模塊,您必須先安裝 hexo-server 才能使用缺虐。
$ npm install hexo-server --save
安裝完成后芜壁,輸入以下命令以啟動服務器,您的網站會在 http://localhost:4000
下啟動高氮。在服務器啟動期間慧妄,Hexo 會監(jiān)視文件變動并自動更新,您無須重啟服務器剪芍。
$ hexo server
如果您想要更改端口塞淹,或是在執(zhí)行時遇到了 EADDRINUSE
錯誤,可以在執(zhí)行時使用 -p
選項指定其他端口罪裹,如下:
$ hexo server -p 5000
靜態(tài)模式
在靜態(tài)模式下饱普,服務器只處理 public
文件夾內的文件,而不會處理文件變動状共,在執(zhí)行時套耕,您應該先自行執(zhí)行 hexo generate
,此模式通常用于生產環(huán)境(production mode)下峡继。
$ hexo server -s
自定義 IP
服務器默認運行在 0.0.0.0
冯袍,您可以覆蓋默認的 IP 設置,如下:
$ hexo server -i 192.168.1.1
指定這個參數后碾牌,您就只能通過該IP才能訪問站點康愤。例如,對于一臺使用無線網絡的筆記本電腦舶吗,除了指向本機的127.0.0.1
外征冷,通常還有一個192.168.*.*
的局域網IP,如果像上面那樣使用-i
參數裤翩,就不能用127.0.0.1
來訪問站點了资盅。對于有公網IP的主機,如果您指定一個局域網IP作為-i
參數的值踊赠,那么就無法通過公網來訪問站點呵扛。
Pow
Pow 是一個 Mac 系統(tǒng)上的零配置 Rack 服務器,它也可以作為一個簡單易用的靜態(tài)文件服務器來使用筐带。
安裝
$ curl get.pow.cx | sh
設置
在 ~/.pow
文件夾建立鏈接(symlink)今穿。
$ cd ~/.pow
$ ln -s /path/to/myapp
您的網站將會在 http://myapp.dev
下運行,網址根據鏈接名稱而定伦籍。
生成文件
使用 Hexo 生成靜態(tài)文件快速而且簡單蓝晒。
$ hexo generate
監(jiān)視文件變動
Hexo 能夠監(jiān)視文件變動并立即重新生成靜態(tài)文件腮出,在生成時會比對文件的 SHA1 checksum,只有變動的文件才會寫入芝薇。
$ hexo generate --watch
完成后部署
您可執(zhí)行下列的其中一個命令胚嘲,讓 Hexo 在生成完畢后自動部署網站,兩個命令的作用是相同的洛二。
$ hexo generate --deploy
$ hexo deploy --generate
簡寫
上面兩個命令可以簡寫為
$ hexo g -d
$ hexo d -g
部署
Hexo 提供了快速方便的一鍵部署功能馋劈,讓您只需一條命令就能將網站部署到服務器上。
$ hexo deploy
在開始之前晾嘶,您必須先在 _config.yml
中修改參數妓雾,一個正確的部署配置中至少要有 type
參數,例如:
deploy:
type: git
您可同時使用多個 deployer垒迂,Hexo 會依照順序執(zhí)行每個 deployer械姻。
deploy:
- type: git
repo:
- type: heroku
repo:
縮進
YAML依靠縮進來確定元素間的從屬關系。因此机断,請確保每個deployer的縮進長度相同楷拳,并且使用空格縮進。
Git
安裝 hexo-deployer-git毫缆。
$ npm install hexo-deployer-git --save
修改配置唯竹。
deploy:
type: git
repo: <repository url>
branch: [branch]
message: [message]
參數 | 描述 |
---|---|
repo |
庫(Repository)地址 |
branch |
分支名稱。如果您使用的是 GitHub 或 GitCafe 的話苦丁,程序會嘗試自動檢測浸颓。 |
message |
自定義提交信息 (默認為 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }} ) |
Heroku
$ npm install hexo-deployer-heroku --save
修改配置旺拉。
deploy:
type: heroku
repo: <repository url>
message: [message]
參數 | 描述 |
---|---|
repo |
Heroku 庫(Repository)地址 |
message |
自定提交信息 (默認為 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }} ) |
Rsync
安裝 hexo-deployer-rsync产上。
$ npm install hexo-deployer-rsync --save
修改配置。
deploy:
type: rsync
host: <host>
user: <user>
root: <root>
port: [port]
delete: [true|false]
verbose: [true|false]
ignore_errors: [true|false]
參數 | 描述 | 默認值 |
---|---|---|
host |
遠程主機的地址 | |
user |
使用者名稱 | |
root |
遠程主機的根目錄 | |
port |
端口 | 22 |
delete |
刪除遠程主機上的舊文件 | true |
verbose |
顯示調試信息 | true |
ignore_errors |
忽略錯誤 | false |
rsync部署模塊的工作方式
需要注意的是蛾狗,要求您提供的實際上是一個能通過SSH登陸遠程主機的Linux用戶晋涣。Hexo會自動處理關于rsync使用的一切操作。因此沉桌,您需要在遠程主機上為您的Hexo站點建立一個用戶谢鹊,并允許其通過SSH登陸。不過留凭,這里的
port
佃扼,的確是指rsync監(jiān)聽的端口,請確保防火墻打開了該端口蔼夜。
OpenShift
安裝 hexo-deployer-openshift兼耀。
$ npm install hexo-deployer-openshift --save
修改配置。
deploy:
type: openshift
repo: <repository url>
message: [message]
參數 | 描述 |
---|---|
repo |
OpenShift 庫(Repository)地址 |
message |
自定提交信息 (默認為 Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }} ) |
FTPSync
$ npm install hexo-deployer-ftpsync --save
修改配置瘤运。
deploy:
type: ftpsync
host: <host>
user: <user>
pass: <password>
remote: [remote]
port: [port]
ignore: [ignore]
connections: [connections]
verbose: [true|false]
參數 | 描述 | 默認值 |
---|---|---|
host |
遠程主機的地址 | |
user |
使用者名稱 | |
pass |
密碼 | |
remote |
遠程主機的根目錄 | / |
port |
端口 | 21 |
ignore |
忽略的文件或目錄 | |
connections |
使用的連接數 | 1 |
verbose |
顯示調試信息 | false |
FTP部署可能出現的問題
您可能需要預先通過其他方式將所有文件上傳到遠程主機中窍霞。否則初次使用ftpsync插件就可能出現報錯。另外拯坟,由于FTP協(xié)議的特征但金,它每傳送一個文件就需要一次握手,相對速度較慢郁季。
其他方法
Hexo 生成的所有文件都放在 public
文件夾中傲绣,您可以將它們復制到您喜歡的地方。