使用 Hexo 來優(yōu)化管理自己的博客

前言

上一篇博客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, StylusMarkdown 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

安裝 hexo-deployer-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

安裝 hexo-deployer-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 文件夾中傲绣,您可以將它們復制到您喜歡的地方。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末巩踏,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子续搀,更是在濱河造成了極大的恐慌塞琼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禁舷,死亡現場離奇詭異彪杉,居然都是意外死亡,警方通過查閱死者的電腦和手機牵咙,發(fā)現死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門派近,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人洁桌,你說我怎么就攤上這事渴丸。” “怎么了另凌?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵谱轨,是天一觀的道長。 經常有香客問我吠谢,道長土童,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任工坊,我火速辦了婚禮献汗,結果婚禮上,老公的妹妹穿的比我還像新娘王污。我一直安慰自己罢吃,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布玉掸。 她就那樣靜靜地躺著刃麸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪司浪。 梳的紋絲不亂的頭發(fā)上泊业,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天把沼,我揣著相機與錄音,去河邊找鬼吁伺。 笑死饮睬,一個胖子當著我的面吹牛,可吹牛的內容都是我干的篮奄。 我是一名探鬼主播捆愁,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼窟却!你這毒婦竟也來了昼丑?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤夸赫,失蹤者是張志新(化名)和其女友劉穎菩帝,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體茬腿,經...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡呼奢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了切平。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片握础。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悴品,靈堂內的尸體忽然破棺而出禀综,到底是詐尸還是另有隱情,我是刑警寧澤他匪,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布菇存,位于F島的核電站,受9級特大地震影響邦蜜,放射性物質發(fā)生泄漏依鸥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一悼沈、第九天 我趴在偏房一處隱蔽的房頂上張望贱迟。 院中可真熱鬧,春花似錦絮供、人聲如沸衣吠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缚俏。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間忧换,已是汗流浹背恬惯。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亚茬,地道東北人酪耳。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像刹缝,于是被迫代替她去往敵國和親碗暗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355