Astro 的 Content Layer 功能帶來最大的好處是我們可以用 loader 從不只是 content 資料夾的其他位置,甚至是從網路上取得資料。我們也可以自己做 loader 在 Astro 上使用不同種類的資料,然後把自己做的 loader 做成 npm package 給大家使用。
在這篇文章我們要看看在 Content Layer 推出四個月後,有沒有什麼有趣或實用的 loader 被做出來了。
下面的 loader 我一個都沒用過,所以不保證可以正常運作,請小心使用。
Notion Astro Loader
這個我在介紹 Content Layer 的文章中也有提到,算是最早做出的 loader 之一。這個 loader 可以從 Notion 資料庫載入頁面,然後在 Astro render。
Notion 是一個筆記服務,受到很多人喜愛。以前只有英文版,在去年出了繁體中文版之後就又更容易使用了。
astro-loader-obsidian
這個 loader 可以從 Obsidian 儲存庫載入文章。
Obsidian 也是一個筆記軟體,儲存庫其實就是電腦上儲存 Markdown 檔案的資料夾。所以其實用一般的 glob
loader 就可以達成目的了?不過這個 loader 似乎會跟 Obsidian 有更密切的整合。
Astro Bluesky post loader
是 Content Layer 的開發者做的 loader,可以載入 Bluesky 裡一位使用者的貼文。
自從馬斯克入主 Twitter 並改名成 X 後,好像就有些人跳到 Bluesky,在那邊發佈微網誌的樣子。
他還做了一些 loader,放在這個 repository。
astro-word-loader
可以用 Word 檔在 Astro 生成頁面的 loader。可以讀 Word 檔聽起來比可以讀 CSV 檔還要厲害!
Astro Flickr loader
可以從 Flickr 獲得內容的 loader。既然 Flickr 是個網路相簿,我們可以期待獲得的內容是照片或圖片。
作者也是前 GatsbyJS 的開發者,他好像有打算做更多 loader 的樣子,大家可以定期到這個 repository 看看他做出了什麼 loader。
astro-loader-github-prs
這個 loader 可以載入 GitHub 內的 pull request,要用 search
選項指定搜尋條件。這樣的好處是不用侷限在一個 repository 內。
這個 loader 的作者也有做出一些其他的 loader,放在這個 repository。
GitHub Discussions Blog Loader
這個 loader 可以載入 GitHub 內一個 repository 的討論串(discussion)。它有用的地方是可以當做部落格的回應系統,就像 giscus 那樣。有了這個或許就不用 giscus 了?
結語
實際找 Astro loader 發現說多不算多,說少也不算少。雖然總量只有幾十個,我還是能列出有趣或實用的 7 個 loader。
從這些 loader 裡稍微分析一下可以發現 Astro loader 大概就兩種:載入別的類型的檔案、從 API 取得資料,期待可以看到更多更有創意的 loader。
要搜尋 Astro loader 可以在 Astro 的整合目錄搜尋「loader」,要更仔細搜尋可以在 GitHub 搜尋「Astro loader」,這些 loader 都是我用以上的兩個方法找出來的。