透過Hexo可以快速的建立一個blog
比Jekyll 好用的地方在tag部份跟有許多人提供他們修改過後的框架
但是透過github這邊去顯示網站的部份 不能透過git 去做版本控管
push 上去一定要透過hexo deploy
不過Hexo 的相關文件比較齊全 又有中文支援 優勢蠻大的

基本需求

安裝Hexo 之前需要卻兩個軟體

  • Node.js
  • Git

安裝Node.js的方式網路上面都有說 這邊最主要說明ubuntu 下更新Node.js的方式
在ubuntu 15.04下面 試過

1
2
3
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

是失敗的 不會更新 最後是透過下面的方式更新成功

1
2
3
4
5
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

要更再更新到最後的版本可以sudo n latest
參考來源David Walsh blog

注意 node.js版本不對時 會導致後面安裝hexo 失敗 有下面error message

1
npm install errors with Error: ENOENT, chmod

hexo 安裝 and 相關指令

透過npm 安裝

1
sudo npm install -g hexo-cli

安裝後的相關檔案在/usr/local/n/versions/node//lib/node_modules

建立

透過下面指令可以建立一個基本的所需的檔案

1
2
3
hexo init <folder>
cd <folder>
npm install

專案內大致上有這些
file_list

  • _config.yml 是網站配置設定
    注意 這邊的修改 在 “:” 之後都要空一格 格式上面要注意 才不會server啟動之後有問題

  • source資料夾下面會產生基本的hexo layout 的資料夾名稱_posts _drafts
    Hexo 有三種預設佈局:post、page 和 draft,它們分別對應不同的路徑
    path

相關的放置文章的地方就在這幾個資料夾下面
這邊要注意 放置網頁的圖片不能放在這幾個資料夾下面 需要另外建立一個地方放置
例如source/images 要不然會找不到
另外加入圖片markdown 這邊寫法是
![path](/images/hexo_2.png)
後面path路徑是base 在source folder 下面

  • themes 這邊是放相關網站要用的框架 default 是landscape
    你可以透過網路上下載想要的框架放在themes folder下面
    修改_config.yml 下面的名稱 改成對應的資料夾
    1
    2
    # Extensions
    theme: landscape

指令

hexo init [folder] 建立一個新的網站
hexo new [layout] <tiltle> 產生一篇新的文章 default layout 是用_config.yml的default_layout
hexo server 啟動server 透過localhost:4000可以看到,可以縮寫成hexo s
hexo generate 產生靜態檔案 放到hithub 上面需要的, 部署網站前先產生靜態檔案,可以縮寫成hexo g
hexo clean 清除快取檔案 (db.json) 和已產生的靜態檔案 (public), 建議在generate 前先做一次clean
hexo deploy 會將靜態檔案push到遠端的server
deploy設定在_config.yml內

1
2
3
4
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type:

發佈到github上面

要push 到git 上面需要先安裝hexo-deployer-git

1
npm install hexo-deployer-git --save

如果想要透過.github.io連到自己的網站
需要在github上面建立.github.io名稱的repository
再將repository 位置改成它

1
2
3
4
deploy:
type: github
repository: git@github.com:github帳號/github帳號.github.com.git
branch: master

這邊push是透過ssh認證 需要在github加上你的ssh key
deploy之後需要等待3-5分鐘github上面會更新

其他詳細的資訊可以透過Hexo找尋