折騰Hexo這貨已經(jīng)有一段時間了,之前也不愿意去看官方文檔,到處搜索如何搭建,如何設(shè)置等等,但是有時也無法找到自己想要的內(nèi)容,于是只能研究官方文檔了,奈何是英文的,從沒有完整看完。最近靜下心來,把Hexo Docs從頭看了一遍,將官方文檔的大體內(nèi)容翻譯(當(dāng)然談不上翻譯,只是列出主要內(nèi)容)了一下,這里只是用自己的話介紹一下主要功能,無用的東西就省略了。
官方Docs分為了4個部分,分別為:開始準(zhǔn)備、基礎(chǔ)用法、自定義、其他。Hexo的主要內(nèi)容是在基礎(chǔ)用法和自定義這兩部分上。
這部分主要介紹了什么是Hexo、如何安裝以及基本配置。
Hexo是一個快速的、簡單的、功能強(qiáng)大的博客框架。你可以通過Markdown語言寫文章,然后hexo幫你生成一個帶有漂亮主題的靜態(tài)頁面。
1、安裝
安裝hexo的前提是要有Node.js以及Git,至于什么是Git和Node以及如何安裝他們可以自行搜索了解。
安裝完Node以及Git后,通過下面的命令安裝Hexo:
npm install -g hexo-cli
2、啟動
在電腦中找個目錄,并進(jìn)入目錄,執(zhí)行下面幾個命令,hexo就準(zhǔn)備就緒了。
hexo init
npm install
上面兩條命令,第一條是初始化目錄,會自動生成一些基礎(chǔ)文件和目錄,第二條命令是安裝運(yùn)行hexo的一些必要的組件。
OK,運(yùn)行完,你會看到你的當(dāng)前目錄下,會自動創(chuàng)建一些目錄,如下:
.
├── _config.yml
├── package.json
├── scaffolds/
├── scripts/
├── source/
| ├── _drafts
| └── _posts
└── themes/
下面依次介紹上面各個文件或者目錄的用途:
-
_config.yml站點(diǎn)配置文件,很多全局配置都在這個文件中。 -
package.json應(yīng)用數(shù)據(jù)。從它可以看出hexo版本信息,以及它所默認(rèn)或者說依賴的一些組件。 -
scaffolds模版文件。當(dāng)你創(chuàng)建一篇新的文章時,hexo會依據(jù)模版文件進(jìn)行創(chuàng)建,主要用在你想在每篇文章都添加一些共性的內(nèi)容的情況下。 -
scripts放腳本的文件夾, 就是放js文件的地方 -
source這個文件夾就是放文章的地方了,除了文章還有一些主要的資源,比如文章里的圖片,文件等等東西。這個文件夾最好定期做一個備份,丟了它,整個站點(diǎn)就廢了。 -
themes主題文件夾。
3、配置
前面說了,主要配置就是_config.yml這個文件了,所以來看看怎么配置它了。配置也是分了幾個大塊的。
(1)首先是Site部分,也就是站點(diǎn)的一些參數(shù)設(shè)置:
-
title站點(diǎn)名字,也就是html的title,會顯示在瀏覽器標(biāo)簽上。 -
subtitle站點(diǎn)副標(biāo)題,會顯示在首頁上,可以不填。 -
description站點(diǎn)描述,可以不填。 -
author作者 -
language語言 -
timezone站點(diǎn)時區(qū),默認(rèn)是電腦時間
(2)接下來是URL部分設(shè)置:
-
url站點(diǎn)網(wǎng)址 -
root站點(diǎn)根目錄 -
permalink文章的永久網(wǎng)址鏈接,默認(rèn)是:year/:month/:day/:title/,指的什么意思?比如我一篇叫『love』的文章是在2012年1月1日寫的,那么它對應(yīng)的鏈接就是http://yoururl/2012/01/01/love/, permalink_default
如果網(wǎng)址是次級目錄,比如:http://example.com/blog,那么就要設(shè)置
url為http://example.com/blog,并且root要設(shè)置為/blog/。
(3)再接下來就是目錄配置:
-
source_dirsource目錄,默認(rèn)值為source -
public_dirpublic目錄,靜態(tài)網(wǎng)站生成的地方,默認(rèn)值為public -
tag_dirtag目錄 -
archive_dirArchive目錄 -
category_dir分類目錄 -
code_dir代碼目錄 -
i18n_diri18n目錄 -
skip_render不想被渲染的路徑
上面這一部分的值,我基本上沒有改過,默認(rèn)的就行了。
(4)接著是寫作配置了:
-
new_post_name新建文章默認(rèn)文件名,默認(rèn)值為 :title.md,比如你執(zhí)行命令hexo new hello,就會默認(rèn)在_post目錄下創(chuàng)建一個hello.md的文件。 -
default_layout默認(rèn)布局 titlecase-
external_link在新標(biāo)簽中打開一個外部鏈接,默認(rèn)為true -
filename_case轉(zhuǎn)換文件名,1代表小寫;2代表大寫;默認(rèn)為0,意思就是創(chuàng)建文章的時候,是否自動幫你轉(zhuǎn)換文件名,默認(rèn)就行,意義不大。 -
render_drafts是否渲染_drafts目錄下的文章,默認(rèn)為false -
post_asset_folder是否啟用Asset Folder,默認(rèn)為false,至于什么是Asset Folder,后面有講解。 -
future是否顯示未來日期文章,默認(rèn)為true -
highlight代碼塊設(shè)置
這一部分也可以基本不變,默認(rèn)值就行。
(5)接下來是分類和標(biāo)簽的設(shè)置:
-
default_category默認(rèn)分類,默認(rèn)為無分類,當(dāng)然你可以設(shè)置一個默認(rèn)分類。 -
category_map分類,不明白其作用 -
tag_map標(biāo)簽,不明白其作用
(6)日期和時間格式配置:
Hexo使用的Moment.js來處理時間的。
-
data_format日期格式,默認(rèn)為MMM D YYYY,不過我將它改成了YYYY-MM-DD,符合個人口味,其他格式模版可以查看Moment.js -
time_format時間格式,默認(rèn)為H:mm:ss
(7)分頁設(shè)置:
-
per_page一頁顯示多少篇文章,0 為不分頁,默認(rèn)值為 10 -
pagination_dir分頁目錄,默認(rèn)值為page
(8)最后就是擴(kuò)展配置:
-
theme主題配置,此處填上主題名就OK了,當(dāng)然在themes目錄下一定要有你配置的主題文件夾。 -
deploy部署配置,將本地public目錄也就是網(wǎng)站部署到服務(wù)器上的配置。如何部署?Docs文檔『基礎(chǔ)用法』部分有說明。
4、命令
這塊主要介紹了hexo的一些命令的使用方法。
-
hexo init [folder],使用該命令初始化一個站點(diǎn),不加目錄參數(shù),就初始化當(dāng)前目錄 -
hexo new [layout] <title>,創(chuàng)建一篇文章,如果不指定layout,那么就使用_config.yml中default_layout的值,標(biāo)題中如果有空格,將整個title放到引號中。比如,hexo new "hello world"創(chuàng)建一篇叫hello world的文章。 -
hexo generate,簡單的說,這個命令就是將md格式的文章,生成靜態(tài)網(wǎng)頁。這個命令可以簡寫為hexo g,它有兩個參數(shù)選項(xiàng):-
-d,--deploy生成完后直接部署 -
-w,--watch查看文件的改變
-
-
hexo publish [layout] <filename>,發(fā)布一個草稿 -
hexo server,啟動一個本地服務(wù),可以在本地查看網(wǎng)站,默認(rèn)啟動http://localhost:4000,貌似這個不是默認(rèn),運(yùn)行命令的時候可以查看提示消息。它也有一些參數(shù):-
-p,--port指定端口 -
-s,--static僅服務(wù)靜態(tài)文件 -
-l,--log開啟日志
-
-
hexo deploy部署站點(diǎn),可以縮寫hexo d,有一個參數(shù),hexo d -g表示在部署前先重新生成一下站點(diǎn) -
hexo render <file1> [file2] ...渲染文件,具體我也不太明白這是干嘛的 -
hexo migrate <type>遷移其他博客系統(tǒng)的命令,具體怎么使用DOCS后面有介紹。 -
hexo clean刪除緩存文件db.json以及生成的public目錄,當(dāng)你修改了某些樣式或者配置時,如果發(fā)現(xiàn)hexo g后也沒有反應(yīng),就可以執(zhí)行一下這個命令。 -
hexo list沒用過 -
hexo version顯示版本信息 -
hexo --safe安全模式,使所有插件和腳本不生效 -
hexo --dehug調(diào)試模式 -
hexo --silent靜默模式,不在終端上顯示任何信息 -
hexo --config custom.yml使用一個自定義配置文件替換默認(rèn)_config.yml -
hexo --draft顯示草稿文章(位于source/_drafts目錄下) -
hexo --cwd /path/to/cwd自定義當(dāng)前工作目錄路徑,假如你沒在工作目錄下,可以使用這個命令指定一下工作目錄路徑。
5、遷移
從其他博客站點(diǎn)遷移文章到hexo中,像類似Jekyll和Octopress只要把.md的文章拷貝過來就OK了,還有一些需要安裝插件。
(1)RSS
首先安裝插件npm install hexo-migrator-rss --save,待安裝完成后,運(yùn)行命令hexo migrate rss <source>就可以從RSS遷移所有文章了。source可以是一個文件路徑或者URL
(2)Jekyll & Octopress
直接拷貝_posts文件夾里的文章到hexo的source/_posts就OK了,然后修改new_post_name參數(shù)為對應(yīng)文章title命名規(guī)則就行了,如:year-:month-:day-:title.md
(3)WordPress
安裝插件npm install hexo-migrator-wordpress --save,使用WordPress導(dǎo)出功能導(dǎo)出文章,然后運(yùn)行命令hexo migrate wordpress <source>,source為導(dǎo)出文件
(4)Joomla
安裝插件npm install hexo-migrator-joomla --save,使用J2XML組件導(dǎo)出Joomla文章,然后運(yùn)行命令hexo migrate joomla <source>,source為導(dǎo)出文件
導(dǎo)出或者導(dǎo)入,可能出現(xiàn)一些問題,可以自行百度搜索。