在 2021 年的年末,我從應該是 Blogger 轉移到了 WordPress,當時主要考慮的是 Blogger 的自訂性不太高,對我而言不太容易使用。加上當時想做一些開發,就購買了 Hostinger 的方案,刷了大概兩千台幣買四年。由於今年 12 月就要到期,想想自己其實後來也沒什麼用,就想想不要續約好了。但不續約的話部落格就讓他消失好像也不太好,於是開始思考要轉移到哪裡去。

最一開始,我在思考的是轉移到如 Medium、Mirror、Paragraph 等平台。但 Medium 的自訂性比 Blogger 要差不少,而 Mirror 和 Paragraph 也差不多,因此還是往自行架設的方向考慮。接著就在 Hexo 與 Hugo 間選擇。最終選擇 Hexo 的理由是對底層 JavaScript 比較熟悉,如果以後真的要幹什麼的話還是容易一點。

轉移開始

從 WordPress 轉移到 Hexo 比想像中的要簡單許多,官方文件就有 WordPress 導入的說明,只是導入後還是需要一些手動處理。例如圖片等等。好在現在 AI 方便,直接請 Cline 幫我把每個文章中的圖片都抓出來並下載,然後替換掉原本檔案中的路徑就幾乎完成。唯獨可能 Cline(或 Gemini)沒看出來是 Hexo 所以路徑是系統的相對路徑,但這只需要一次全專案的 Find and Replace 就可以完成,不是太大的問題。

轉移過程中,我也在考慮留言的部分。有一度在想要不要用 CloudFlare D1 或 Firebase 來手刻一個。但其實在 WordPress 階段的最後,真正有意義的留言好像才個位數個,想想特地保留的意義也不大。於是決定捨棄這些。而為了還是讓來訪者可以講講話(?),就啟用了 Giscus。畢竟我想會來我網站的,十有八九會有 GitHub 吧?

而為了確保轉移不會讓連結失效,我另外套了一層 Cloudflare Worker 去把以前的路徑重新導向。

以下是程式碼,畢竟沒有什麼隱私的,就發出來讓有需要的人自取了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const mapping = new Map([
["/archives/50", "/youtube-screenshot"],
["/archives/48", "/firebase-shortener"],
["/archives/136", "/ethereum-minimal-proxy"],
["/archives/215", "/web-extension-provide-object-to-page"],
["/archives/221", "/app-script-replurk-bot"],
["/archives/232", "/verifiers-dilemma"],
["/archives/265", "/eip-1014"],
["/archives/293", "/usedapp"],
["/archives/321", "/nucypher-umbral"],
["/archives/349", "/verkle-tree"],
["/archives/531", "/cloudflare-email-routing-haraka-sendgrid"],
["/archives/539", "/mpc-in-the-head"],
["/archives/551", "/lookup-lasso-jolt"],
["/archives/557", "/next-js-to-app-router-tailwind-css"],
["/archives/566", "/css-gradient-border"],
[
"/archives/577",
"/storybook-test-runner-visual-interaction-snapshot-test",
],
["/archives/592", "/nicks-method"],
]);

export default {
async fetch(request) {
const requestURL = new URL(request.url);
const path = requestURL.pathname;
const location = mapping.get(path);
if (location)
return Response.redirect("https://limaois.me" + location, 301);
return fetch(request);
},
};

簡單而言,就是建立一個原本的網址(WordPress 格式 /archives/<id> 到新網站的格式 /<title>),然後再用 HTTP 301 永久移動告訴瀏覽器新的網址。建立好 Worker 後再到 Domain 的 Workers Route 設定完成就好了。看到過去 24 小時有 140 個請求,真不知道是誰在看我的部落格呢。(其實看熱圖,好像大部分都是從機房出來的,只有新加坡和台灣有個位數個。)

接下來的計畫

在這次轉移中,還有整理一下之前的文章,主要把讀書紀錄和黑客松相關的東西刪掉了,因為覺得好像跟部落格的關係不太大。從 LLM 出現以來,我其實也不太知道要用什麼心態寫部落格(?),雖然滿多都說寫部落格有助於職涯,不過考慮到現在和未來可能都在國外工作,經營中文部落格的幫助好像就不太大。

其次,現在大家都用 LLM 去提問,Stake Overflow 的提問數已經降到 2009 開站時的水準。就我自己經驗而言,現在遇到問題也是優先用 Claude 探索可能問題,再自行尋找最好的解法(畢竟要讓 Claude 找到的話,可能要解釋太多東西)。現在撰寫部落格,技術文章可能不是給人看,而更多是給 AI 看了。如此一來,是否撰寫方式要改變呢?

又或者,撰寫部落格可能更多是在非技術文的部分,例如這篇文章我自己就不打算將他當作技術文(雖然還是放了一段程式碼)。可能紀錄自己的想法等等比起技術文章會更有意義?

所以,目前對於這個部落格的想法,大概會是更隨性的寫一些,如果剛好提到技術也好,沒有也罷。另外想研究看看能不能引入 AI 流程,自動將文章翻譯成不同語言,希望在下次遷移前,我會真的完成這件事 😅。