文森說技術

iOS, Web Development Notes
-

部落格重架 - 第 0 章 - 回首過去和技術評估

在用了許多平台和自架之後,今年決定來重整一下,再慢慢把文章聚集到這個網站。

目前用了 Hexo ,在分享 Hexo 之前,決定先來記錄一下在這之前用了什麼。

系列文

過去用過的東西

撇除一些生活性質的內容,技術性內容最早的話大概是從 2008 ~ 2010 年左右開始吧,有用過動態的 CMS 也有用過平台,也有用過靜態產生器

名稱 說明
Joomla! 大學的時候經過老師介紹,開始玩
Blogger 當年一心想要線上的部落格,忘記為什麼就搜到 Blogger ,可以高度客製化。但是無法程式碼上色、主題改一改常常壞掉不知不覺就不用了
WordPress oh no …
痞客邦 完全不適合技術文章,放棄
logdown 沒在持續維護,覺得綁手綁腳,放棄
Octopress 當年自己改主題調 SEO 等等。當年在一次 ruby 升版本之後就壞了,不想去改他就放生了。最近想要撿回來修就發現官方已經很久沒維護了於是就直接放棄了。
Hatena 斯 … 用過一兩天完全不能接受,雖然上面有許多技術文章,但是就是不合
Qiita 日語圈,還行,但是還是覺得要有自己的站比較好 XDDD

詳細的心得

  • Octopress
    • Markdown 的撰寫方式就是工程師的菜,圖床需要自己打理有點累
    • 不過文章可以無痛放來 Hexo 繼續用,覺得開心
  • Qiita
    • 平台本身的設計越來越不喜歡算是壓倒我的稻草
    • 會從文章標題自動生成 open graph 的大圖,這個很愛

例如以 SwiftUI - 用 ForEach 顯示資料的同時取得 index 這個標題,發佈之後平台自己會產一個這樣子的圖給那一篇文章:

是不是超酷的!!

工具評估

這次重架雖然技術確認了一小輪,不過至少要有並不侷限於這些條件:

  • 發文,修改樣式等維護不會太廢神
  • 輕鬆佈署
  • 可以達到高度客製化(柔軟度),包含想要做到的任何 SEO 調整
  • 能靜態就不要動態
  • 想要的話可以輕鬆插廣告
  • 用自己的網址

調查過的東西

WordPress

一直以來就技術上很崇拜這種很龐然大物的工具,在網路上對 WordPress 一般的評價就是很多插件和 SEO 很厲害。

雖然一直都不太會用它但是還是把它納入技術評估的清單了。

想過以下好幾個方式,不過最後都覺得太麻煩以及編輯器完全不是我的菜,也不是非常對技術文章友善,因此還是放棄了

  • 用 Docker 裝 WordPress 直接塞入 AWS EC2
  • 用 Docker 裝 WordPress ,運用 AWS ECS + ECR
  • WordPrss 的 DB 拉到 RDS ,圖床拉到 S3

全部都調查完之後,雖然這些技術很有趣,弄起來看起來也很猛。但是,決定不要把自己搞這麼累扼殺自己寫文章的動力。再來是全站都是靜態內容,根本不需要這麼龐大的架構。於是再次剔除 WordPress

Blogger

除了 Qiita 和 Octopress 之外,自己用最久的應該就是 Blogger 了。

但是網站主題的開發真的是我的超大陰影,還有無法方便離線版控完全不能接受,想了一下下之後把新開的部落格再把它關掉了 XDDDD

Hugo

不知道為什麼就是胃口不合…

Publish

純 Swift ,感覺很好玩很厲害,以 iOS 工程師來說非常支持這類型的專案!

但是需要搞懂他怎麼弄,由於沒有其他靜態生成器有一個預設再那邊的東西,因此全部都要自己重弄和理解他的 API 怎麼用。

玩了一兩個晚上之後覺得離網站發佈會越來越遠,就放棄了。

自架 CMS

好遙遠的一條路。雖然有想過寫靜態產生器或是動態網站兩個作法,最後還是作罷。

Hexo

以結果來說, Hexo 算是最接近我的技術掌握程度:

  • HTML, JavaScript, SCSS

看了一下網路上的影片也有辦法快速架起我自己的主題,也可以在不用觸擊核心的情形之下做到許多我想做的事情。

於是就開始正式以 Hexo 來當這次網站重架的工具了。

結論

對於這一次上線,自己有定下幾個原則

  • 能上就趕快上,能不拖就不拖
    • 小步快跑,以一到三天的頻率加入自己期望的功能
  • 訂出上線最底限,雖少但不缺,桌機瀏覽器可以正常閱讀,以及像是追蹤用基本的 ga 等一定加。其他後來再慢慢加也沒關係
    • 像是 SEO, og, schema.org 最佳化, 自動產 og image, 文章內目錄 (toc) … 等獲取讀者以及改善閱讀體驗的功能
    • 目前雖然大部分都是手動來,未來期望可以切乾淨 repository 並以 CI 佈署
      • 包含在本地端不要用到線上的 ga id 等等

最後一點,就是下一篇預計要分享的,從撰寫到發佈規劃與自動化。之前還在用 Octoress 就有規劃過,只是當時能力和知識不足無法達成,希望這次能夠照規劃一步一步的完成!

今天就先到這裡唄 :)

如果覺得這篇對你有幫助,歡迎幫忙分享給其他人 😀