一般blog選擇可能是採用線上編輯平台,像是Medium、Blogger、Wordpress等,或是透過靜態網站產生器,像是Hexo、Jekyll、Hugo等,而後來還是偏好後者,主要是彈性比較高,不會受限於線上平台的功能、免費版可能會有廣告或是版型等問題,但也因此靜態網站產生器建置需要一些程式能力,不過剛好是技術blog所以也很符合這樣的精神,而blog產生的靜態網頁則是部署至GitHub Pages,也透過CircleCI整合達到自動建置與部署。
前言
其實滿久以前就斷斷續續寫過一些blog,不過都沒有持續下去,而最近又開始想要寫些技術文章,所以重新將blog給建置起來,參考網路文章跟建置的架構,最後採用 Hexo
+ GitHub Pages
+ CircleCI
,而這樣的架構優點有:
- 免費使用
- 支援Markdown語法
- 版型或設定可自行修改
- 性能快速與服務穩定
- 自動建置並部署
不過也不是沒有缺點:
- 需要程式基礎
- 需要開發環境 (可結合CI/CD解決)
- 無動態頁面功能
Hexo
之前曾經使用過Jekyll,是基於Ruby開發,不過對於在windows相容性較差些,後來喜歡Hexo是透過Node.js開發,作者Tommy Chen是台灣人,也越來越多人使用Hexo建立自己的blog。Hexo建置快速且生成的網站體積小,發佈文章流程也相對簡單,支援Markdown語法,透過 .md
檔案發佈,未來也可以輕鬆轉移至其他平台。
GitHub Pages
透過Hexo產生的blog靜態頁面需要有一個網站空間,而除了自己建置或是租用空間外,身為開發人員當然是直接使用GitHub Pages,以GitHub這樣的服務相對來說甚至比一般租用空間還穩定,同時因為將原始碼都透過GitHub做版本控管,也有助於文章的發佈管理,GitHub Pages是免費的,不過仍有些限制,只是一般個人情境使用應該都夠了。
CircleCI
為了可以專心在寫作上,所以結合DevOps的精神,採用CircleCI,讓我們可以只要將文章Commit至GitHub後,透過CircleCI自動幫我們建置blog,如此一來我們要是有時候發現錯字,也可以快速在GitHub上編輯即可,把瑣碎的部署工作交給CircleCI。
另外選擇CircleCI的原因還有因為我將blog原始碼放在Git私人的repository,而像是Travis CI免費版並不支援,但CircleCI免費版每個月也有使用限制,不過如果真的超過限制,我想還可以先透過手動部署撐一下。
結論
目前也花了一些時間調整Hexo設定,並使用了滿多人使用的主題NexT,接下來會另外寫文章介紹本blog做了那些設定跟調整,而相關配置也會持續優化,希望可以持續下去這股熱忱,累積更多文章與分享知識。