假設道友已經都是git熟練使用者了,這裏再也不詳細介紹git相關知識。 git還未入門的能夠查看Git經常使用核心命令 或者訪問Pro Git(中文版) get 更多知識點。html
這裏的 account 是您的在Github上的帳戶名。node
也能夠直接用命令建立倉庫:linux
echo "# Byron4j.github.io" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/Byron4j/Byron4j.github.io.git
git push -u origin master
複製代碼
或者將已經存在的倉庫覆蓋:git
git remote add origin https://github.com/Byron4j/Byron4j.github.io.git
git push -u origin master
複製代碼
Hexo基於Node.js,因此您還須要安裝Node.js。Node.js的官網下載地址: nodejs.cn/download/,選…github
Hexo 官方網址: hexo.io/zh-cn/。 Hexo使用文檔參考:hexo.io/zh-cn/docs/…shell
使用 npm 安裝 Hexo(演示是在windows-64環境下):npm
npm install -g hexo-cli
複製代碼
安裝結果以下:json
C:\Users\BYRON.Y.Y>npm install -g hexo-cli
C:\Users\BYRON.Y.Y\AppData\Roaming\npm\hexo -> C:\Users\BYRON.Y.Y\AppData\Roaming\npm\node_modules\hexo-cli\bin\hexo
npm WARN rollback Rolling back readable-stream@2.3.6 failed (this is probably harmless): EPERM: operation not permitted, rmdir 'C:\Users\BYRON.Y.Y\AppData\Roaming\npm\node_modules\hexo-cli\node_modules\fsevents'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules\hexo-cli\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
+ hexo-cli@1.1.0
added 225 packages from 431 contributors in 60.523s
複製代碼
指定一個空目錄初始化hexo所需文件:windows
命令:瀏覽器
hexo init 目錄名(要求是空目錄)
複製代碼
C:\Users\BYRON.Y.Y>hexo init F:\217my_optLogs\001系統相關\系統設計\007\blog
INFO Cloning hexo-starter to F:\217my_optLogs\001系統相關\系統設計\007\blog
Cloning into 'F:\217my_optLogs\001系統相關\系統設計\007\blog'...
remote: Enumerating objects: 68, done.
remote: Total 68 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (68/68), done.
Submodule 'themes/landscape' (https://github.com/hexojs/hexo-theme-landscape.git) registered for path 'themes/landscape'
Cloning into 'F:/217my_optLogs/001系統相關/系統設計/007/blog/themes/landscape'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 867 (delta 0), reused 0 (delta 0), pack-reused 866
Receiving objects: 100% (867/867), 2.55 MiB | 1.52 MiB/s, done.
Resolving deltas: 100% (459/459), done.
Submodule path 'themes/landscape': checked out '73a23c51f8487cfcd7c6deec96ccc7543960d350'
[32mINFO [39m Install dependencies
npm WARN deprecated titlecase@1.1.2: no longer maintained
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
added 421 packages from 500 contributors and audited 4699 packages in 72.178s
found 0 vulnerabilities
INFO Start blogging with Hexo!
複製代碼
新建完成後,生成以下目錄文件:
C:\Users\BYRON.Y.Y>dir /B F:\217my_optLogs\001系統相關\系統設計\007\blog
.gitignore
node_modules
package-lock.json
package.json
scaffolds
source
themes
_config.yml
複製代碼
網站的 配置 信息,您能夠在此配置大部分的參數。 應用程序的信息。EJS, Stylus 和 Markdown renderer 已默認安裝,您能夠自由移除。 更多關於該文件的說明能夠參考:hexo.io/zh-cn/docs/…
模板文件夾,當您新建文章時,hexo會根據模板來建立新的文件。
Hexo的模板是指在新建的markdown文件中默認填充的內容。例如,若是您修改scaffold/post.md中的Front-matter內容,那麼每次新建一篇文章時都會包含這個修改。
資源文件夾是存放用戶資源的地方。除 _posts 文件夾以外,開頭命名爲 _ (下劃線)的文件 / 文件夾和隱藏的文件將會被忽略。Markdown 和 HTML 文件會被解析並放到 public 文件夾,而其餘文件會被拷貝過去。
主題文件夾。Hexo 會根據主題來生成靜態頁面。
進入hexo項目目錄中,使用以下命令開啓博客服務:
hexo s
複製代碼
瀏覽器中訪問:http://localhost:4000。
至此,表明着博客已經完成搭建了,剩下的工做就是不斷完善了。
在項目目錄下使用以下命令能夠建立一片新的文章:
hexo new [layout] <title>
複製代碼
您能夠在命令中指定文章的佈局(layout),默認爲 post,能夠經過修改 _config.yml 中的 default_layout 參數來指定默認佈局。
Hexo 有三種默認佈局:post、page 和 draft,它們分別對應不一樣的路徑,而您自定義的其餘佈局和 post 相同,都將儲存到 source/_posts 文件夾。
佈局 | 路徑 |
---|---|
post | source/_posts |
page | source |
draft | source/_drafts |
Hexo 默認以標題作爲文件名稱,但您可編輯 new_post_name
參數來改變默認的文件名稱,舉例來講,設爲 :year-:month-:day-:title.md
可以讓您更方便的經過日期來管理文章。
咱們修改配置文件new_post_name的值後,新建一篇文章:
F:\217my_optLogs\001系統相關\系統設計\007\blog>hexo new post 如何使用Github+Hexo快速搭建我的博客
INFO Created: F:\217my_optLogs\001系統相關\系統設計\007\blog\source\_posts\2019-01-27-如何使用Github-Hexo快速搭建我的博客.md
複製代碼
再刷新瀏覽器頁面,能夠看到新增了一篇文章:
剛剛提到了 Hexo 的一種特殊佈局:draft
,這種佈局在創建時會被保存到 source/_drafts
文件夾,您可經過 publish
命令將草稿移動到 source/_posts
文件夾,該命令的使用方式與 new
十分相似,您也可在命令中指定 layout
來指定佈局。
hexo publish [layout] <title>
複製代碼
草稿默認不會顯示在頁面中,您可在執行時加上 --draft
參數,或是把 render_drafts
參數設爲 true 來預覽草稿。
咱們把配置參數設置一下: render_drafts.
#render_drafts: false
render_drafts: true
複製代碼
在新建文章時,Hexo 會根據 scaffolds 文件夾內相對應的文件來創建文件,例如:
hexo new photo "My Gallery"
複製代碼
在執行這行指令時,Hexo 會嘗試在 scaffolds 文件夾中尋找 photo.md,並根據其內容創建文章,如下是您能夠在模版中使用的變量:
變量 | 描述 |
---|---|
layout | 佈局 |
title | 標題 |
date | 文件創建日期 |
您能夠將已寫好的 .md
導入到 _posts
目錄裏,完成文章的導入。
扉頁 front-matter 是文件最上方以 ---
分隔的區域,用於指定個別文件的變量,示例:
---
layout: photo
title: My Gallery
date: 2019-01-27 11:52:58
tags:
---
複製代碼
如下是預先定義的參數,您能夠在模板中使用這些參數值並加以利用:
參數 | 描述 | 默認值 |
---|---|---|
layout | 佈局 | |
title | 文章標題 | |
date | 創建日期 | yyyy-MM-dd HH:mm:ss 格式 |
updated | 更新日期 | |
comments | 開啓文章的評論功能 | true |
tags | 標籤(不適用於分頁) | |
categories | 分類(不適用於分頁) | |
permalink | 覆蓋文章網址 |
只有文章支持分類和標籤,您能夠在 Front-matter 中設置。在其餘系統中,分類和標籤聽起來很接近,可是在 Hexo 中二者有着明顯的差異:分類具備順序性和層次性,也就是說 Foo, Bar 不等於 Bar, Foo;而標籤沒有順序和層次。
categories:
- Diary
tags:
- PS3
- Games
複製代碼
分類方法的分歧
若是您有過使用WordPress的經驗,就很容易誤解Hexo的分類方式。WordPress支持對一篇文章設置多個分類,並且這些分類能夠是同級的,也能夠是父子分類。可是Hexo不支持指定多個同級分類。下面的指定方法:
categories:
- Diary
- Life
會使分類Life成爲Diary的子分類,而不是並列分類。所以,有必要爲您的文章選擇儘量準確的分類。
除了YAML格式外,還支持json格式的扉頁. 只要將 ---
代換成 ;;;
便可
,,,
"title": "Hello World",
"date": "2013/7/13 20:46:25"
;;;
複製代碼
Hexo 提供了快速方便的一鍵部署功能,讓您只需一條命令就能將網站部署到服務器上。
hexo deploy
複製代碼
在開始以前,您必須先在 _config.yml 中修改參數,一個正確的部署配置中至少要有 type 參數,例如:
deploy:
type: git
複製代碼
您可同時使用多個 deployer,Hexo 會依照順序執行每一個 deployer:
deploy:
- type: git
repo:
- type: heroku
repo:
複製代碼
deploy:
type: git
repo: <repository url> #https://bitbucket.org/JohnSmith/johnsmith.bitbucket.io
branch: [branch] #published
message: [message]
複製代碼
npm install hexo-deployer-git --save
複製代碼
更多關於部署的信息參考:hexo.io/zh-cn/docs/…
您 能夠在 hexo.io/themes/inde… 進行主題的挑選更換。 下載好後放在themes
文件夾內,同時在 _config.yml
中進行配置變動就行了。
這裏採用了主體: blinkfox.github.io/2018/09/28/… 可參見使用說明。
安裝 pm2
npm install -g pm2
複製代碼
博客根目錄下面建立一個hexo_run.js:
const { exec } = require('child_process')
exec('hexo server',(error, stdout, stderr) => {
if(error){
console.log('exec error: ${error}')
return
}
console.log('stdout: ${stdout}');
console.log('stderr: ${stderr}');
})
複製代碼
根目錄下執行:
pm2 start hexo_run.js
複製代碼
啓動後臺服務。
相關參考資料: