去年 7 月,本部落格使用的程式更新了。原因是 Gatsby 的 remark transformer gatsby-transformer-remark
更新上游的 remark 版本到 13,導致一些我有在用的舊版 remark plugin 因為不是用 micromark 寫成的所以不能使用。正好當時 Gatsby 正在開發以 MDX 2 為基礎的 gatsby-plugin-mdx
v4,所以就打算改用 MDX 加上自製 React 元件取代原來的 remark 和 remark plugin,順便大翻新整個部落格。
當時除了更新到最新版的 Gatsby 並改用 MDX 外,還有考慮改用現在更流行的 Next.js。以前使用 Gatsby 的網站似乎不少都改用 Next.js 了,像是 React 文件,以及 gatsby-advanced-starter
作者的部落格。
可惜 Next.js 難以在生成靜態網站的時候最佳化圖片(現在有人做出來了,可參考這個討論的後段)。還有 Next.js 不像 Gatsby 一樣可以讓文章跟文章有用到的圖片放在同一個資料夾,然後在文章中用 Markdown 語法加入圖片。資料夾結構像這樣:
所以我就以 Gatsby v4 套 Tailwind Nextjs Starter Blog 的皮,做出了新版的部落格。
到了最近開始有 Gatsby 快倒的感覺。版本更新頻率低到現在最新版跟上一版差了兩個月以上,GitHub repository 上的 issue 跟 pull request 也是一堆掛著代表還沒處理的 status: triage needed
標籤。連 Gatsby Reddit 上也出現了跟我有相同看法的文章。
所以我再次尋找有沒有新的靜態網站生成器沒有上面的問題,可以用來取代 Gatsby。然後就讓我發現 Astro 有新的 astro:assets
模組 可以達到我要的需求。這個模組從 v2.1 開始加進去 Astro 做為實驗功能,然後在 v3 成為正式功能。
我想我可以開始考慮再次更新部落格,改用 Astro 了。