Article
Kobo 畫線如何同步到 Obsidian?用 Kobo Note Sync 建立 Markdown 閱讀筆記
Kobo 的閱讀畫線很適合沉澱成筆記,但匯出與整理流程常常斷在工具之間。這篇介紹我做的 Obsidian 插件 Kobo Note Sync:從本機 Kobo SQLite 讀取畫線與註記,轉成可自訂模板的 Markdown 筆記。
本文目錄

我想解決的不是一次性的「匯出」,而是 Kobo 閱讀流程與 Obsidian 筆記系統之間的斷點。
在 Kobo 上畫線並不是終點。真正重要的是,這些畫線和註記能不能進入長期筆記系統,成為之後可以回顧、整理、引用與重新連結的材料。
因此我做了 Kobo Note Sync:一個桌面版 Obsidian Community Plugin。它會讀取使用者指定的本機 Kobo SQLite 資料庫,並在 Obsidian Vault 中建立或更新 Markdown 閱讀筆記。
Obsidian Community:https://community.obsidian.md/plugins/kobo-note-sync
先看 Kobo Note Sync 的功能與限制
| 項目 | 說明 |
|---|---|
| 輸入來源 | Kobo Desktop App 的 Kobo.sqlite,或自行複製的 KoboReader.sqlite |
| 輸出格式 | Obsidian Vault 內的 Markdown 檔案 |
| 資料方向 | Kobo SQLite → Obsidian |
| 同步方式 | 單向、append-only |
| 是否雙向同步 | 否 |
| Kobo 端刪除的畫線 | 不會連動刪除已匯入 Obsidian 的紀錄 |
| 輸出格式 | 可使用 Eta.js 自訂書籍與畫線模板 |
| 本文列出的平台 | macOS、Windows |
| 本文列出的介面語言 | English、繁體中文 |
這個外掛適合想把 Kobo 畫線納入 Obsidian 工作流的人,但它不是即時同步服務,也不會讓 Kobo 與 Obsidian 永遠保持完全一致。
Kobo Note Sync 解決什麼問題?
許多人的閱讀資料分散在兩個地方:
- Kobo 裡有畫線與註記。
- Obsidian 裡有長期筆記。
- 兩者中間缺少穩定、可重複、可客製的處理方式。
如果每次都要手動複製文字、整理格式、補上 metadata,久而久之很容易變成「有畫線,但沒有真正進入知識系統」。
Kobo Note Sync 的工作很單純:
從本機 Kobo SQLite 資料庫讀取畫線與註記,再將資料轉成 Obsidian 可以直接使用的 Markdown 筆記。
支援哪兩種 Kobo 資料來源?
目前文案列出兩種資料來源。
| 來源 | 適合情境 | 資料庫 |
|---|---|---|
| Kobo Desktop App | 已經使用桌面應用程式同步 Kobo 閱讀資料 | Kobo.sqlite |
| 自行複製的閱讀器資料庫 | 想直接使用從 Kobo 閱讀器複製出的資料 | .kobo/KoboReader.sqlite |
使用 Kobo Desktop App 資料庫
資料流程如下:
Kobo 閱讀器或 App
→ Kobo 雲端
→ Kobo Desktop App
→ Kobo.sqlite
→ Kobo Note Sync
→ Obsidian Markdown這種方式適合本來就使用 Kobo Desktop App 同步閱讀資料的人。
使用自行複製的 KoboReader.sqlite
資料流程如下:
Kobo 閱讀器
→ 複製 .kobo/KoboReader.sqlite
→ Kobo Note Sync
→ Obsidian Markdown這種方式需要先從閱讀器中取得 SQLite 檔案,再在外掛設定中指定其位置。
為什麼選擇讀取本機 SQLite?
閱讀資料具有高度私密性。讀了什麼、在哪裡畫線、留下哪些註記,往往比一般瀏覽紀錄更接近一個人的思考內容。
Kobo Note Sync 的設計方向是:
- 讀取使用者指定的本機 Kobo SQLite 資料庫。
- 將結果寫入使用者的 Obsidian Vault。
- 不要求額外建立外部服務帳號。
- 不透過第三方同步服務轉送閱讀內容。
這也是它被設計成桌面版外掛的原因:它需要存取電腦上的本機檔案。
以上是外掛目前的設計說明,不應直接視為獨立安全稽核或隱私保證。若閱讀資料的隱私對你很重要,正式安裝前仍建議查看專案文件與原始碼。
為什麼輸出成 Markdown?
我不想把 Kobo 畫線從一個封閉系統搬到另一個封閉系統。
對我而言,資料進入 Obsidian 的重點,是結果必須是一般 Markdown 檔案。這樣做有幾個好處:
- Obsidian 可以直接讀取。
- 可以使用 Git 或其他方式備份。
- 可以交給其他支援 Markdown 的工具處理。
- 即使未來不再使用此外掛,筆記內容仍然保留。
Kobo Note Sync 會在指定的輸出資料夾中建立或更新 Markdown。預設輸出資料夾為:
Kobo Note Sync/每本書可以對應一份筆記,內容包含書籍 metadata、畫線與註記。
模板是 Kobo Note Sync 的核心設計
每個人的 Obsidian 筆記結構都不同。
有些人需要 YAML frontmatter;有些人要讓欄位可以交給 Dataview 查詢;有些人只需要簡單的引文清單;也有人會把閱讀筆記接到書籍索引、MOC 或 RAG 工作流。
因此,Kobo Note Sync 沒有把輸出格式完全寫死,而是使用 Eta.js (https://eta.js.org/) 作為模板系統,分別設定:
- 每本書的筆記模板
- 每條畫線的模板
書籍筆記模板範例
---
title: "<%= it.bookTitle %>"
author: "<%= it.bookAuthor %>"
publisher: "<%= it.publisher %>"
last_read: <%= it.lastRead %>
highlight_count: <%= it.highlightCount %>
source: Kobo
---
<%= it.highlights %>畫線模板範例
*<%= it.dateCreated %>*<% if (it.chapter) { %> | <%= it.chapter %><% } %>
> <%= it.highlightText %>
<% if (it.annotation) { %>
**Note:** <%= it.annotation %>
<% } %>
---透過模板,Kobo 畫線可以直接融入既有的 Obsidian 結構,不必遷就外掛預設的單一格式。
可以使用哪些 metadata?
目前文案列出 23 個書籍變數與 5 個畫線變數。
書籍層級資料包括:
- 書名
- 作者
- 出版社
- ISBN
- 系列名稱與編號
- 語言
- 書籍描述
- 閱讀進度
- 閱讀狀態
- 頁數與字數
- 加入日期
- 最後閱讀日期
- 完成日期
- 畫線數量
畫線層級資料包括:
- 畫線原文
- 註記內容
- 畫線日期
- 章節名稱
- 章節內進度
這些欄位可以放進 frontmatter,作為搜尋、篩選、閱讀回顧或其他個人知識管理流程的入口。
例如,可以把閱讀狀態、最後閱讀日期與畫線數量寫入 frontmatter,再透過 Obsidian 查詢工具整理書籍清單。
變數是否有值,仍可能受到書籍內容與 Kobo 資料庫實際紀錄影響。正式建立模板前,建議先查看目前版本的完整變數文件。
為什麼採用 append-only sync?
Kobo Note Sync 採用 append-only 的同步思路:
即使某條畫線之後在 Kobo 上被刪除,Obsidian 中已經匯入的紀錄仍會保留。
這是刻意的設計選擇。
對閱讀筆記而言,我更重視不要意外失去已經進入筆記系統的內容。Kobo 裡的畫線可能因重新同步、裝置狀態、書籍版本或操作而變動;但一旦成為 Obsidian 裡的筆記材料,就不應被來源端的刪除動作自動移除。
因此,Kobo Note Sync:
- 是單向資料管線。
- 不是 Kobo 與 Obsidian 的雙向同步。
- 不以兩端完全一致為目標。
- 不會因 Kobo 端刪除畫線,就移除 Obsidian 中既有的匯入紀錄。
如何使用 Kobo Note Sync?
第一次在正式 Vault 使用前,建議先備份 Obsidian Vault 與 Kobo SQLite,並以測試資料夾或測試 Vault 確認輸出結果。
基本流程如下:
- 安裝 Kobo Note Sync。
- 在外掛設定中選擇同步來源。
- 確認 Kobo SQLite database path。
- 設定 Markdown 輸出資料夾。
- 設定書籍與畫線模板。
- 從 Command Palette 執行 Kobo Note Sync,或點擊左側工具列的書本圖示。
- 檢查產生的 Markdown、metadata 與畫線內容是否符合預期。
Kobo Desktop App 的預設資料庫路徑
macOS:
~/Library/Application Support/Kobo/Kobo Desktop Edition/Kobo.sqliteWindows:
%LOCALAPPDATA%\Kobo\Kobo Desktop Edition\Kobo.sqlite如果使用自行複製的資料庫,也可以指定 KoboReader.sqlite 的位置。
在 macOS 或 Windows 的自訂 SQLite 模式下,文案所述版本也提供 Detect Kobo reader,用來嘗試偵測已連接電腦的 Kobo 閱讀器資料庫路徑。
若預設路徑或自動偵測沒有成功,請以目前版本文件及實際安裝環境為準。
支援的平台與語言
本文目前列出的平台為:
- macOS
- Windows
介面語言為:
- English
- 繁體中文
外掛會跟隨 Obsidian 的語言設定。其他作業系統或語言是否支援,請查看目前版本文件,不要只依本文推定。
Kobo Note Sync 適合誰?
它比較適合:
- 使用 Kobo 閱讀,也使用 Obsidian 做長期筆記的人。
- 想把 Kobo 畫線與註記轉成 Markdown 的人。
- 不想依賴第三方閱讀筆記同步服務的人。
- 想使用自己的模板安排閱讀筆記結構的人。
- 想將書籍 metadata 接到 Dataview、閱讀回顧或其他 PKM 工作流的人。
它可能不適合:
- 只偶爾需要複製幾條畫線,手動整理已經足夠的人。
- 需要 Kobo 與 Obsidian 即時雙向同步的人。
- 希望在 Kobo 端刪除內容時,Obsidian 也自動刪除的人。
- 不希望外掛讀取本機 Kobo SQLite 或寫入 Vault 的人。
- 只使用行動版 Obsidian、沒有桌面環境的人。
如果閱讀與筆記是一個長期流程,同步工具的價值不只是省下幾分鐘,而是讓閱讀材料能穩定進入後續整理系統。
接下來預計改善的方向
目前外掛已能完成文中所述的基本匯入流程,後續預計持續改善:
- 更完整的安裝與使用教學
- 更多模板範例
- 不同 Kobo 資料庫版本的相容性說明
- 更清楚的同步結果提示
- 更方便的 release 與 Community Plugin 安裝流程
- Dataview、書籍索引與閱讀回顧等整合範例
其中最值得補強的是模板範例。對我而言,真正讓這個工具變得好用的,不只是「可以匯入」,而是匯入後的 Markdown 能否自然融入原本的筆記系統。
結語
Kobo Note Sync 不是要建立另一個封閉的閱讀資料庫,而是補上 Kobo 與 Obsidian 之間的流程斷點:
Kobo 畫線與註記
→ 本機 SQLite
→ Obsidian Markdown如果你同時使用 Kobo 與 Obsidian,可以從以下入口查看安裝資訊、版本文件與原始碼: