跳到內容

tmd serve

啟動 HTTP 伺服器,提供瀏覽器介面和 REST API 來存取你的 vault。

Terminal window
tmd serve
tmd serve -p 8080

http://localhost:3000(預設 port)開啟 Web UI。介面和 TUI 相同的三欄式佈局:sidebar(type 群組 + object 列表)、body(markdown 內容)和 properties 面板。

Flag縮寫預設值說明
--port-p3000監聽的 port
--host127.0.0.1綁定的 host(使用 0.0.0.0 監聽所有介面)
--vault.vault 目錄路徑(全域 flag)
  • 三欄式佈局 — sidebar、body 和 properties 面板
  • 瀏覽 Object — 展開 type 群組,點擊查看 object
  • 屬性編輯 — 雙擊屬性值即可編輯
  • 內文編輯 — 點擊「Edit」切換到 markdown 編輯器(⌘+Enter 儲存,Esc 取消)
  • 建立 Object — 按 N 或點擊 sidebar 的「+ New」
按鍵動作
.切換 focus 模式(全寬 body)
p切換 properties 面板
n開啟建立 object 對話框

伺服器在 /api/ 下提供 REST API 供程式存取。

方法端點說明
GET/api/types列出所有 type,包含 metadata 和 object 數量
GET/api/types/{name}取得 type schema 和屬性定義
方法端點說明
GET/api/objects列出所有 object(可用 ?type=book 篩選)
GET/api/objects/{type}/{slug}取得單一 object 的屬性和正文
PUT/api/objects/{type}/{slug}更新 object 正文({"body": "..."}
POST/api/objects建立 object({"type": "book", "name": "...", "template": "..."}
方法端點說明
GET/api/properties/{type}/{slug}取得 object 的顯示用屬性
PUT/api/properties/{type}/{slug}/{key}更新單一屬性({"value": "..."}
方法端點說明
GET/api/templates/{type}列出指定 type 的可用 template

前端開發搭配 hot reload:

Terminal window
# Terminal 1: Go 伺服器
tmd serve
# Terminal 2: Vite dev server(將 /api 代理到 localhost:3000)
cd web/frontend && npm run dev

Vite dev server 在 http://localhost:5173 提供 hot module replacement。API 請求會自動代理到 Go 伺服器。