Back to posts

從 Hexo 遷移到 Astro,剛好部落格 6 歲了

這個部落格的第一篇文章發佈在 2020 年 4 月,當初自己還是個前端初學者,沒想到直到今日還是可以在前端的領域學習到很多新東西,真的是永遠學不完呢。

關於這個 Blog

當初用 Hexo 架部落格只是想要有一個地方可以放自己的學習筆記,另一方面也是希望自己能在網路上留下一點足跡。仔細回頭看,以前寫了好多技術文章,幫我建立了很不錯的基本功,寫部落格文章對於技術的消化跟吸收真的很有幫助。

但後來因為忙碌的關係,寫文章變得會很佔用時間,再來是每次都會忘記 hexo 的指令,都要重新查文件,還有讓我比較沮喪的是我很用心寫的文章,觀看數都還是比技術文章的點閱來得低,讓我懷疑自己花這個時間好嗎…

於是過去幾年發佈文章的頻率就變得很低。

但是我一直有持續做筆記的習慣,也一直有這樣的想法:想把我的觀點分享出來、想要有一個地方可以很好的展示我的思路、想讓志同道合的人找到我

隨著自己的工作開始接觸 AI,我開始在工作之餘有一點餘裕可以用 Claude Code 去做一些小工具,也想實驗看看用 AI 寫作能做到什麼程度,所以我又投注心力到 Blog 了。

接下來我想要慢慢把這些技術筆記、職場觀察、投入 AI 工具的心得整理成文章,陸續發布上來。

下定決心從 Hexo 搬遷到 Astro

剛開始用 Hexo 建立 Blog 的時候我還很開心,花了很多時間找到 Icarus 的版型,自己滿喜歡他的 Layout,就一直持續使用了。

但一直有幾個讓我覺得不滿意的地方:

  • Icarus 本身很大包,如果沒有處理效能的話,Web Vitals 的分數就會不好看。
  • 部署的方式是放到 gh-pages 分支,也就是說發布的時候我都還要確認到底有沒有推上去。
  • 然後我也不是固定在發文章,每次打開這個專案都要再查 hexo 的指令。

但我想寫作而不是想要來處理技術的問題啊…所以就一直擺著這些問題不處理。

直到之前玩 paperclip (用 AI 開公司的開源專案),我嘗試用來優化這個部落格,他就一直開 PR 解決效能的問題,但每次我都要先合併後再重新部署才能實測。

有天我就想說,與其一直補丁,不如換掉。

成功遷移到 Astro

跟 Claude 討論幾次之後,決定搬到 Astro。

我想說就當作用 Claude Code 做實驗,看看能不能不介入程式碼也能完成遷移,結論就是:完全可以!

先跟 Claude 做 brainstorming,把遷移分成好幾個 phase,從 spec 到 plan 都先寫清楚,確認完再動手。

我每天跑一個 phase,跑完一段就休息,也有上 git 讓這件事情可以隨身攜帶。最重要的是我有記錄到知識庫裡,這樣我每次都不用記得做到哪了,只要問說幫我看這個專案還有什麼事情還沒做,然後再讓他繼續執行還沒做的,我只有在遇到需要決策的時候才會跟他討論。

大約花了一週的時間只要我有空就讓 Claude Code 自己去跑遷移的任務,到最後他連 CI/CD 都幫我建立好,還把 GA4、網站路由都成功遷移。

遷移完成後,整個網站看起來還光禿禿的。剛好那幾天 Claude 推出 Claude Design,我就拿 blog 來試用。讓它先讀 repo,設計我的網站的 design system,沒想到做出了我還滿喜歡的風格。

以前最煩惱的設計問題現在都可以解決了,而且還不是套版,是完全照自己的提示做出來的風格,我覺得就算別人來模仿,也沒辦法模仿出我的思考我為什麼想要這樣。

首頁版型 Before / After:

Hexo + Icarus 主題時期的首頁,左欄個人卡片含頭像、職稱、文章/分類/標籤統計與追蹤按鈕,右欄為文章卡片列表

Astro 遷移後的首頁,極簡排版,標題加大、文章列表搭配標籤 chip,右上角有 RSS 與 dark mode 切換

最後跑了一次 PageSpeed,電腦 100、行動 99,四個指標幾乎全滿,也檢查了 GA4 數據完全都沒掉,只能說從 Hexo 遷移到 Astro 的實驗非常成功!

PageSpeed Insights 手機版 Before / After:

Hexo 時期手機版 PageSpeed 跑分:效能 71、無障礙 82、最佳做法 100、SEO 100

Astro 遷移後手機版 PageSpeed 跑分:效能 99、無障礙 100、最佳做法 100、SEO 100

部落格滿 6 年

做完這些之後我才發現,這個部落格的第一篇文章發佈在 2020 年 4 月,不就剛好滿 6 年嗎。我相信這是一個順利的訊號,期許未來我能分享更多自己的內容。