跳至主要內容
Gray, rocky wall

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),並可選擇插入包含 titledate 等的屬性。
  • 屬性標準化:使用「標準化屬性」指令,依自訂範本更新筆記屬性。保留現有屬性值、按指定順序新增缺少的屬性,並將未識別的屬性附加到末尾。
  • 重命名文章指令:透過更新 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(推薦)

  1. 從 Obsidian 社群插件目錄下載並啟用 BRAT 插件
  2. 在 BRAT 插件設定中,選擇「新增 beta 插件」
  3. 貼上:https://github.com/davidvkimball/obsidian-astro-composer,選擇「新增插件」

手動安裝

  1. 從 Releases 頁面下載最新版本
  2. 前往 Obsidian vault 的 .obsidian/plugins/ 目錄
  3. 建立名為 astro-composer 的新資料夾,確保 manifest.jsonmain.jsstyles.css 都在裡面
  4. 在 Obsidian 中,前往「設定 > 社群插件」並啟用「Astro Composer」

使用方式

  1. 自訂設定:在設定 > Astro Composer 中配置自動化、屬性範本、文章資料夾、建立模式等
  2. 標準化屬性:使用 Astro Composer: Standardize Properties 指令更新筆記屬性
  3. 轉換內部連結:使用 Astro Composer: Convert internal links for Astro 指令轉換連結
  4. 重命名內容:使用 Astro Composer: Rename Current Note 指令重命名內容

使用場景

  • 內容創作者:簡化建立和管理部落格文章、頁面和文件的流程
  • Astro 開發者:銜接 Obsidian 筆記與 Astro 發布之間的鴻溝
  • 技術寫作者:在多種內容類型中維持一致的格式和組織
  • 部落客:專注於內容創作,而非檔案管理
  • Vault CMS 使用者:完整 Obsidian-to-Astro 工作流程的核心自動化組件

專案狀態

本專案持續維護中,包含穩健的自動化功能、完整的配置選項,以及對多種內容類型的支援。