Skip to content

Obsidian 整合:自動儲存計畫到筆記庫

學完你能做什麼

  • 自動將批准或拒絕的計畫儲存到 Obsidian vault
  • 理解 frontmatter 和標籤的產生機制
  • 自訂儲存路徑和資料夾
  • 利用 backlink 建構知識圖譜

你現在的困境

你在 Plannotator 中審查 AI 產生的計畫,批准後這些計畫就「消失」了。你希望把這些有價值的計畫儲存到 Obsidian,方便後續回顧和尋找,但手動複製貼上太麻煩,而且格式會亂。

什麼時候用這一招

  • 你使用 Obsidian 作為知識管理工具
  • 你希望長期儲存和回顧 AI 產生的實施計畫
  • 你想利用 Obsidian 的 graph view 和標籤系統組織計畫

核心思路

Plannotator 的 Obsidian 整合功能會在你批准或拒絕計畫時,自動將計畫內容儲存到你的 Obsidian vault。系統會:

  1. 偵測 vaults:自動從 Obsidian 設定檔讀取所有 vault
  2. 產生 frontmatter:包含建立時間、來源和標籤
  3. 擷取標籤:從計畫標題和程式碼區塊語言自動擷取標籤
  4. 新增 backlink:插入 [[Plannotator Plans]] 連結,方便建構知識圖譜

什麼是 Obsidian?

Obsidian 是一款本機優先的雙向連結筆記應用程式,支援 Markdown 格式,可透過圖視圖視覺化筆記之間的關係。

🎒 開始前的準備

確保已安裝並設定好 Obsidian。Plannotator 會自動偵測系統中的 vaults,但你至少需要有一個 vault 才能使用此功能。

跟我做

第 1 步:開啟設定面板

在 Plannotator 介面中,點擊右上角的齒輪圖示開啟設定面板。

你應該看到設定對話框,包含多個設定選項。

第 2 步:啟用 Obsidian 整合

在設定面板中找到「Obsidian Integration」部分,點擊開關啟用該功能。

啟用後,Plannotator 會自動偵測系統中的 Obsidian vaults。

你應該看到下拉選單中列出偵測到的 vaults(例如 My VaultWork Notes)。

第 3 步:選擇 vault 和資料夾

從下拉選單中選擇你希望儲存計畫的 vault。如果沒有偵測到 vault,可以:

  1. 選擇「Custom path...」選項
  2. 在文字方塊中輸入 vault 的完整路徑

然後在「Folder」欄位中設定儲存資料夾的名稱(預設為 plannotator)。

你應該看到下方的預覽路徑,顯示計畫將儲存的位置。

第 4 步:批准或拒絕計畫

設定完成後,正常審查 AI 產生的計畫。當你點擊「Approve」或「Send Feedback」時,計畫會自動儲存到設定的 vault 中。

你應該在 Obsidian 中看到新建立的檔案,檔案名稱格式為 Title - Jan 2, 2026 2-30pm.md

第 5 步:檢視儲存的檔案

在 Obsidian 中開啟儲存的檔案,你會看到以下內容:

markdown
---
created: 2026-01-24T14:30:00.000Z
source: plannotator
tags: [plan, authentication, typescript, sql]
---

[[Plannotator Plans]]

## Implementation Plan: User Authentication

...

你應該注意到檔案頂部有 YAML frontmatter,包含建立時間、來源和標籤。

檢查點 ✅

  • [ ] 設定面板中 Obsidian Integration 已啟用
  • [ ] 已選擇 vault(或輸入了自訂路徑)
  • [ ] 已設定資料夾名稱
  • [ ] 批准或拒絕計畫後,Obsidian 中出現新檔案
  • [ ] 檔案包含 frontmatter 和 [[Plannotator Plans]] backlink

Frontmatter 和標籤詳解

Frontmatter 結構

每個儲存的計畫都包含以下 frontmatter 欄位:

欄位值範例說明
created2026-01-24T14:30:00.000ZISO 8601 格式的建立時間戳記
sourceplannotator固定值,標識來源
tags[plan, authentication, typescript]自動擷取的標籤陣列

標籤產生規則

Plannotator 使用以下規則自動擷取標籤:

  1. 預設標籤:總是包含 plannotator 標籤
  2. 專案名稱標籤:從 git 儲存庫名稱或目錄名稱自動擷取
  3. 標題關鍵字:從第一個 H1 標題中擷取有意義的詞(排除常見停用詞)
  4. 程式碼語言標籤:從程式碼區塊的語言識別符擷取(例如 typescriptsql)。通用設定語言(如 jsonyamlmarkdown)會被自動過濾。

停用詞清單(不會作為標籤):

  • the, and, for, with, this, that, from, into
  • plan, implementation, overview, phase, step, steps

標籤數量限制:最多 7 個標籤,按擷取順序排列。

檔案名稱格式

檔案名稱採用可讀性強的格式:Title - Jan 2, 2026 2-30pm.md

部分範例說明
標題User Authentication從 H1 擷取,限制 50 字元
日期Jan 2, 2026目前日期
時間2-30pm目前時間(12 小時制)

每個計畫檔案底部都會插入 [[Plannotator Plans]] 連結。這個 backlink 的作用:

  • 知識圖譜連接:在 Obsidian 的 graph view 中,所有計畫都與同一個節點連接
  • 快速導覽:點擊 [[Plannotator Plans]] 可以建立一個索引頁面,彙總所有儲存的計畫
  • 雙向連結:在索引頁面中使用反向連結檢視所有計畫

跨平台支援

Plannotator 自動偵測不同作業系統的 Obsidian 設定檔位置:

作業系統設定檔路徑
macOS~/Library/Application Support/obsidian/obsidian.json
Windows%APPDATA%\obsidian/obsidian.json
Linux~/.config/obsidian/obsidian.json

如果自動偵測失敗,可以手動輸入 vault 路徑。

踩坑提醒

問題 1:偵測不到 vaults

症狀:下拉選單顯示「Detecting...」但沒有結果

原因:Obsidian 設定檔不存在或格式錯誤

解決方案

  1. 確認 Obsidian 已安裝並至少開啟過一次
  2. 檢查設定檔是否存在(參考上表路徑)
  3. 使用「Custom path...」手動輸入 vault 路徑

問題 2:儲存後找不到檔案

症狀:批准計畫後,Obsidian 中沒有新檔案

原因:vault 路徑錯誤或 Obsidian 未重新整理

解決方案

  1. 檢查設定面板中的預覽路徑是否正確
  2. 在 Obsidian 中點擊「Reload vault」或按 Cmd+R(macOS)/ Ctrl+R(Windows/Linux)
  3. 檢查是否選擇了正確的 vault

問題 3:檔案名稱包含特殊字元

症狀:檔案名稱中出現 _ 或其他取代字元

原因:標題包含檔案系統不支援的字元(< > : " / \ | ? *

解決方案:這是預期行為,Plannotator 會自動取代這些字元��避免檔案系統錯誤。

本課小結

Obsidian 整合功能讓你的計畫審查流程與知識管理無縫連接:

  • ✅ 自動儲存批准或拒絕的計畫
  • ✅ 智慧擷取標籤,方便後續檢索
  • ✅ 產生 frontmatter,統一中繼資料格式
  • ✅ 新增 backlink,建構知識圖譜

設定一次後,每次審查都會自動歸檔,不再需要手動複製貼上。

下一課預告

下一課我們學習 Bear 整合

你會學到:

  • 如何將計畫儲存到 Bear 筆記應用程式
  • Bear 整合與 Obsidian 整合的區別
  • 使用 x-callback-url 自動建立筆記

附錄:原始碼參考

點擊展開檢視原始碼位置

更新時間:2026-01-24

功能檔案路徑行號
偵測 Obsidian vaultspackages/server/integrations.ts135-175
儲存計畫到 Obsidianpackages/server/integrations.ts180-227
擷取標籤packages/server/integrations.ts34-74
產生 frontmatterpackages/server/integrations.ts81-89
產生檔案名稱packages/server/integrations.ts111-127
Obsidian 設定儲存packages/ui/utils/obsidian.ts36-43
Settings UI 元件packages/ui/components/Settings.tsx387-491

關鍵函式

  • detectObsidianVaults():讀取 Obsidian 設定檔,回傳可用的 vault 路徑清單
  • saveToObsidian(config):將計畫儲存到指定 vault,包含 frontmatter 和 backlink
  • extractTags(markdown):從計畫內容擷取標籤(標題關鍵字、程式碼語言、專案名稱)
  • generateFrontmatter(tags):產生 YAML frontmatter 字串
  • generateFilename(markdown):產生可讀的檔案名稱

業務規則

  • 標籤數量最多 7 個(L73)
  • 檔案名稱限制 50 字元(L102)
  • 支援跨平台設定檔路徑偵測(L141-149)
  • 自動建立不存在的資料夾(L208)