hexo怎樣寫部落格
之前在部落格園、簡書、CSDN等地兒都開過博,一篇文章寫好了,我希望能在幾個平臺可以同步釋出,可是操作起來成本不低。幾個平臺下的富文字編輯器比較起來還是部落格園更順手,看著更舒服,尤其是程式碼塊的操作靈活、準確。而CSDN對程式碼塊內的文字加粗、修改字色後就會出現html文無法解析的情況,混雜著程式碼和html文字實在太難看了,後來我知道原來是Markdown的程式碼塊規則限制。而且CSDN剛剛才取消了提交文章要稽核通過才能釋出的限制,稽核沒有完成之前,連自己都看不到,且不能修改,這讓我一度放棄CSDN平臺。如果是寫普通的文章寫作體驗最好的是簡書,大氣、簡潔。但簡書更適合一般的寫作,比較技術化的中間摻雜大量程式碼的支援還不夠好。
作為一名程式設計師,應該到GitHub上開博,這裡是程式設計師的聖城。花了兩天時間研究了一下,發現還蠻簡單的,而且md格式也被部落格園、簡書、CSDN所支援,寫完一份應該比較容易複製到這三個平臺。我喜歡在本地編輯markdown檔案,使用sublime 及其外掛Markdown Editing 和 OmniMarkupPreviewer。完成後底稿、資原始檔都悉數儲存到GitHub,日後查詢、修改都很容易。
我用hexo作為靜態頁面生成器,操作過程遇到不少問題,搞定之後留一份操作記錄吧。以後就把[http://palanceli.github.io/blog/]作為我的首發平臺了;)
安裝環境
- 安裝node.js,去官網下載安裝即可,我安裝的是最新穩定版。
-
安裝Hexo
sudo npm install -g hexo
-
建立hexo目錄並初始化
$ mkdir hexo $ cd hexo $ hexo init
-
然後就可以生成網站,啟動服務了:
$ hexo clean $ hexo generate $ hexo server
-
hexo資料夾
先來看一下hexo資料夾下的內容:hexo/ |- node_modules/ # hexo需要的模組,不需要上傳GitHub |- themes/ # 主題檔案,需要上傳GitHub的dev分支 |- sources/ # 博文md檔案,需要上傳GitHub的dev分支
關聯GitHub
首次先建立GitHub工程blog,並且使用“Launch automatic page generator”生成頁面,它會給該工程建立分支gh-pages。
手動為之建立dev分支,未來工程原始碼會放到dev分支下;hexo生成的網站靜態頁面會放到gh-pages分支。
- 首次建立GitHub工程後操作dev分支程式碼
如果是剛建立的GitHub工程,clone dev分支的程式碼到本地blog-dev/,然後把前面hexo/資料夾下的內容全部拷貝到blog-dev/,注意包括一個隱藏檔案.gitignore。
-
已存在GitHub工程的恢復
仍是clone dev分支的程式碼到本地blog-dev/,然後把hexo/node_modules/
拷貝到blog-dev/
再試試生成頁面、啟動服務,確保是正常的:$ hexo clean $ hexo generate $ hexo server
網上有介紹把package.json檔案同步到GitHub,以後每次恢復時執行
$ npm install hexo $ npm install $ npm install hexo-deployer-git --save
可是我在不同的機器上試總是出錯。只好採取笨辦法,每次先
hexo init
出一個完整資料夾,再把相關檔案拷貝到GitHub目錄下。千萬不要先clone 了blog目錄,再在該目錄下執行hexo init
,因為init會把.git資訊刪掉。
配置自己的_config.yml
按照如下內容修改blog-dev/_config.yml:
title: Palance's Blog # 標題
subtitle:
description:
author: Palance Li
language: zh-CN # 語言設定
url: http://palanceli.github.io/blog
root: /blog/
翻到最下面,改成:
deploy:
type: git
repository: https://github.com/<自己的github賬號>/blog.git
branch: gh-pages
主題
這裡有大量的主題https://github.com/hexojs/hexo/wiki/Themes
我非常喜歡Maupassant:https://www.haomwei.com/technology/maupassant-hexo.html,
簡潔清晰,而且適配手機、PC各個平臺。
-
安裝方法
首次在blog-dev/目錄下執行如下命令$ git clone https://github.com/tufu9441/maupassant-hexo.git themes/maupassant $ npm install hexo-renderer-jade --save $ npm install hexo-renderer-sass --save
以後建議把blog-dev/themes/maupassant/.git資料夾刪掉,把maupassant資料夾隨自己的blog-dev上傳到GitHub。
以後clone blog-dev後,執行完前面的安裝操作步驟後記得執行$ npm install hexo-renderer-jade --save $ npm install hexo-renderer-sass --save
- 配置
在blog-dev/themes/maupassant/_config.yml中根據自己的情況修改,比如:
```
links:
第一次的工作就完成了,可以提交github到blog-dev了。
上傳生成頁面
執行
$ cd blog-dev
$ npm install hexo-deployer-git
以後每次執行完
$ hexo clean
$ hexo generate
$ hexo server
生成了靜態頁面後就可以執行
hexo deploy
完成頁面上傳。
其它
圖片
首先確認_config.yml中有:
post_asset_folder: true
然後在blog-dev/下執行
npm install https://github.com/CodeFalling/hexo-asset-image --save
確保在blog-dev/source/_posts下建立和md檔案同名的目錄,在裡面放該md需要的圖片,然後在md中插入
![](目錄名/檔名.png)
即可在hexo generate時正確生成插入圖片。比如:
_posts
|- post1.md
|_ post1
|- pic1.png
在md檔案中插入圖片時只需寫
![](post1/pic1.png)
即可。首次配置完了需要執行一次清除操作,再生成頁面:
$ hexo clean
$ hexo generate
$ hexo server
如果沒做清除,直接生成頁面,在我這裡會出現路徑錯誤的情況。