此为历史版本和 IPFS 入口查阅区,回到作品页
資工小廢物
IPFS 指纹 这是什么

作品指纹

部落格大搬家:從 Wowchemy 到 Stack

資工小廢物
·
·
記錄將部落格 theme 從 Wowchemy 轉移到 Stack 的過程,包含 theme 選擇、部署到 Cloudflare Pages 以及 domain 轉移經驗

註:本文原發表於個人部落格:blog.giveanornot.com

如果之前來過我部落格的朋友,可能會發現這邊好像長得不太一樣。
那不是你的錯覺,雖然我用的 domain 沒有變,但其實我已經把我的部落格大搬家了。

壞掉了

我的部落格是用 Hugo 建的,前陣子想要回來寫部落格,發現 build 的時候一直失敗。結果查了一圈才發現原本用的 theme Wowchemy 已經改名成…HugoBlox…?

本來想說就算是不相容的升級就慢慢修吧,沒想到查了一圈 docs 跟 issue,只有看到 repo 的 maintainer 雙手一攤 表示沒有 migration 的指引,自己去爬 Git log 吧


雖然說提供文件和指引不是開發者的義務,但做為 GitHub 上星星數數一數二多的 hugo theme,這樣的穩定度實在是非常勸退我,誰知道什麼時候還會再發生類似的事情,我又得再花多少時間去爬那些 commit?


那就… 重來吧

既然要重建就重建吧,反正我目前的文章也就十幾篇,要搬一次也不是什麼太困難的事情。

原本我打算跟我的 另一個部落格 一樣用 Ghost 來建,以 CMS 為主還內建電子報功能用起來其實頗容易。但後來逛了一圈 Ghost 的 theme 發現符合我部落格需求的選擇很少。雖然自己改也沒有不行,Ghost 用的 Handlebars template engine 也是非常開發者友善。但想想還要花心思另外管一個自己 fork 出來的 repo,就覺得太麻煩算了,還是繼續用 Hugo 吧。


新主題:這次我學乖了

在 GitHub 上逛了一圈,後來我選 Stack 當作新的 theme。短版設計、簡潔優雅的介面、內建搜尋、大綱、相關文章、標籤雲等等功能,一整個對我胃口。

其實之前在選 Wowchemy 的時候就看到這個 theme,當時候覺得 Wowchemy 的功能比較強大才沒有選 Stack 的。沒想到 Wowchemy 的功能強大是拿比較差的相容性來換的,早知道就乖乖選 Stack。

Stack 的使用方法很簡單,照著 starter 內的 README 建出一個自己的 repo 就好了,接下來就照著 官方文件 慢慢調設定,確認沒問題之後就把舊的文章複製過來,把一些不支援的 shortcode 改掉就好了。

接著要考慮的是把部落格放到網路上。


部署(Hosting)

我原本是把部落格 host 在 Netlify,其實它和 GitHub 的 CICD 整合其實做得蠻好的,不必自己手動設定 pipeline,甚至在開 PR 的時候會產出一個 preview 環境讓你先看看東西改得怎麼樣。但缺點就是 SSL 要錢,所以我之前一直都是擋一個 reverse proxy 在前面,導致效能其實不是很好。

這次我原本打算直接放在 GitHub Pages,但要設定的時候才發現 GitHub Pages 如果要在 private repo 用的話要收費!
所以我目光轉到 Cloudflare Pages,一樣免費而且支援 private repo,甚至提供免費的 SSL!根本完美解決我的問題!

設定也很簡單,我照著 這篇教學 跟著做就弄好了。基本上就是建一個 page,連結一些 repo,設定一下 build 的參數就好了。
設定 DNS 也是很輕鬆,按鈕都做好了點一點就好了,整個過程很流暢也很優雅。


順便搬個家:Domain 轉移

上面沒提到的是:我在把 blog 搬到 Cloudflare 的時候一起把我的 domain giveanornot.com 也一起從 NameCheap 轉過去了。 原因是 NameCheap 一年比一年還貴,印象中我買這個 domain 的時候大概是一年 8 鎂左右,今年已經超過 17 鎂了!嚇到我趕快轉到 Cloudfalre,一年只要 10.44 鎂,同時還能用很多他們提供的服務。

在轉移 domain 之前要先轉移 DNS 設定,這部份 NameCheap 真的做得很爛。
官網找不太到說明,後來靠的是 Reddit 上網友分享的魔法連結 拿到一個 JSON,再用 Gist 上面撿到的 python script 把剛剛拿到的 JSON 轉成 Cloudflare 可以直接匯入的 txt 檔案。

接著 DNS 確定轉到 Cloudflare 之後就可以轉移 domain,這部份就比較簡單了,我以我的情況舉例,各家步驟大概都差不多:

  1. 在 NameCheap 解鎖 domain 轉移,然後申請 Authorization Code

  2. 在 Cloudflare 選到 transfer domain,然後輸入剛剛的 code

  3. 確認沒問題之後 Cloudflare 會自動續一年的期限並且刷卡扣款

  4. 接下來會有 5 天的轉移期,但可以透過 NameCheap 寄來的確認信加快流程,我的情況只花了一個小時不到就轉移完成了

結語

這次的部落格大搬家只花了我不到一天的時間就完成,Cloudflare 的使用體驗真的讓我感覺很棒。

貢獻自己的奈米流量,換取 Cloudflare 提供的服務,我覺得這是一筆划算的交易。
雖然說這樣用 Cloudflare 的服務也是在依賴大科技公司的服務,但如果哪天 Cloudflare 真的要把我當韭菜割的話,大不了我就用自己的 server 架個 Nginx 就好了,威脅性遠比各種雲端硬碟還要來得低不少。

CC BY-NC-ND 4.0 授权