Astro Composer
• In Progress
Obsidian Astro Plugin
專案概覽
Astro Composer 是一個 Obsidian 插件,透過自動化內容管理功能將 Obsidian 筆記轉換為 Astro 部落格的文章和頁面。作為 Vault CMS 專案的一部分,它在 Obsidian 筆記與 Astro 發布工作流程之間提供無縫整合。
主要功能
內容建立與管理
- 新文章對話框:啟用後,透過 Obsidian 的「新筆記」操作建立新 Markdown 檔案時會提示輸入標題,自動生成 kebab-case 檔案名稱(例如「My Blog Post」→
my-blog-post.md),並可選擇插入包含title、date等的屬性。 - 屬性標準化:使用「標準化屬性」指令,依自訂範本更新筆記屬性。保留現有屬性值、按指定順序新增缺少的屬性,並將未識別的屬性附加到末尾。
- 重命名文章指令:透過更新 title 屬性輕鬆重命名筆記,並自動以 kebab-case 更新檔案或資料夾名稱。
草稿管理
- 底線前綴:可選擇性地在草稿前加上底線前綴(例如
_my-post.md),使其對 Astro 隱藏,可在設定中配置。
連結轉換
- 內部連結轉換:將 Obsidian wikilink 和 markdown 內部連結(
[[My Post]]或[My Post](my-post))轉換為 Astro 相容的 Markdown 連結([My Post](/blog/my-post/)),支援單一檔案和資料夾式的文章結構。
多內容類型支援
- 頁面、文件、專案:啟用「頁面支援」並建立自訂內容類型後,可對任何其他內容類型(如頁面、文件、專案等)執行相同的自動化行為。
可配置的工作流程
- 自訂設定:配置文章資料夾、連結基礎路徑、建立模式(單一檔案或資料夾式
index.md)、日期格式和排除目錄 - 選擇性自動化:可獨立啟用或停用新筆記自動化和屬性插入
- 穩健的自動化:僅對使用者主動建立的新筆記觸發標題對話框(例如透過「新筆記」指令),避免在 vault 載入或檔案匯入時出現不必要的提示
技術實作
以 TypeScript 構建,遵循 Obsidian 插件開發最佳實踐,與 Obsidian 的檔案系統無縫整合。支援單一檔案(my-post.md)和資料夾式(my-post/index.md)兩種文章結構,適應不同的 Astro 設置。
安裝方式
Astro Composer 尚未在社群插件中提供。請使用 BRAT 或手動安裝:
BRAT(推薦)
- 從 Obsidian 社群插件目錄下載並啟用 BRAT 插件
- 在 BRAT 插件設定中,選擇「新增 beta 插件」
- 貼上:
https://github.com/davidvkimball/obsidian-astro-composer,選擇「新增插件」
手動安裝
- 從 Releases 頁面下載最新版本
- 前往 Obsidian vault 的
.obsidian/plugins/目錄 - 建立名為
astro-composer的新資料夾,確保manifest.json、main.js和styles.css都在裡面 - 在 Obsidian 中,前往「設定 > 社群插件」並啟用「Astro Composer」
使用方式
- 自訂設定:在設定 > Astro Composer 中配置自動化、屬性範本、文章資料夾、建立模式等
- 標準化屬性:使用
Astro Composer: Standardize Properties指令更新筆記屬性 - 轉換內部連結:使用
Astro Composer: Convert internal links for Astro指令轉換連結 - 重命名內容:使用
Astro Composer: Rename Current Note指令重命名內容
使用場景
- 內容創作者:簡化建立和管理部落格文章、頁面和文件的流程
- Astro 開發者:銜接 Obsidian 筆記與 Astro 發布之間的鴻溝
- 技術寫作者:在多種內容類型中維持一致的格式和組織
- 部落客:專注於內容創作,而非檔案管理
- Vault CMS 使用者:完整 Obsidian-to-Astro 工作流程的核心自動化組件
專案狀態
本專案持續維護中,包含穩健的自動化功能、完整的配置選項,以及對多種內容類型的支援。