知識庫與 Slidev
VMark 可以將整個工作區作為可瀏覽、交叉連結的知識庫提供,並能預覽與匯出 Slidev 簡報 — 兩者都由同一個本機內容伺服器驅動,VMark 會在需要時啟動它。
狀態
此功能正分階段推出,而且目前任何平台的發行版都不包含它所依賴的內容伺服器執行環境 — 請見使用條件。因此,除非開啟開發者模式,否則它是隱藏的:「檢視」選單項目、命令面板項目與 Ctrl + Shift + 4 快捷鍵,只有在你啟用 設定 → 進階 → 開發者工具 後才會出現。開啟後再打開 知識庫 面板,即可看到你的電腦具備什麼、缺少什麼。
使用條件
知識庫、其關係圖、搜尋、即時重新載入與 Slidev 預覽,全都在同一個本機內容伺服器上執行 — 這是一個獨立的 Node.js 程式,由 VMark 在需要時啟動。它啟動前必須具備兩樣東西:
- Node.js。 VMark 會透過登入 shell 的
PATH解析node,就像終端機一樣;因此只有專案本地工具才看得到的 Node.js 不算數。請將它安裝到登入 shell 的PATH中找得到node的位置。 - 內容伺服器本身(VMark 儲存庫中的
server/content,建置為cli.js)。目前沒有任何封裝好的 VMark 版本包含它 — 所有平台皆然。 這不是 Linux 或 Windows 特有的缺口:macOS 的 DMG 同樣不附帶內容伺服器執行環境,而 VMark 的發行檢查會在每次發行時確認這一點。在發行方案確定之前,此功能需要開發環境 — 一份已建置內容伺服器的 VMark 原始碼,並透過VMARK_CONTENT_SERVER_CLI環境變數提供(或在 VMark 的應用程式資料中佈建base-kb執行環境)。
面板開啟時會檢查這兩項。缺少任何一項時,它會告訴你缺的是哪一項、要如何取得,而不是嘗試一次注定失敗的啟動。
開啟面板
知識庫預設為隱藏,因為發行版無法啟動它。要顯示它,請開啟 設定 → 進階 → 開發者工具。檢視 → 知識庫 選單項目、命令面板項目(「切換知識庫」)與 Ctrl + Shift + 4 快捷鍵會隨之出現,關閉時也會一起消失。
開啟開發者工具後,可從 檢視 → 知識庫、命令面板或 Ctrl + Shift + 4 開啟面板。面板會停靠在右側;再次切換即可隱藏。
再次關閉開發者工具時,入口會重新隱藏,面板也會一併關閉:面板本身沒有關閉按鈕,若保持開啟,就會留下一個無法關閉的停靠區。已經在執行中的伺服器則不受影響 — 重新開啟開發者工具即可使用它的「停止」按鈕;無論如何,VMark 結束時都會停止其內容伺服器。
知識庫
開啟一個工作區並啟動 知識庫 面板。VMark 會啟動一個繫結到 127.0.0.1(僅限本機迴路)的本機伺服器,並以與編輯器相同的 markdown 語意將每個 markdown 檔案算繪為 HTML — wiki 連結、提示框、數學、表格、任務清單與 details 的算繪結果完全一致。
功能:
- Wiki 連結導覽 —
[[Page]]、[[dir/Page]]、[[Page#Heading]]與[[Page|Alias]]可跨整個工作區解析。無法解析的連結會顯示為「缺失」,讓缺口一目了然。 - 關係圖 — 筆記、標籤(
#tag與 frontmatter 的tags:)以及具型別的 frontmatter 關係(up、related、links……)構成一張帶有反向連結的互動式關係圖。 - 全文搜尋整個工作區。
- 即時重新載入 — 儲存的編輯會自動重新整理所提供的頁面。
你可以在 VMark 內(嵌入式面板)檢視知識庫,或在瀏覽器中開啟 — 「在瀏覽器中開啟」操作會執行一次性的驗證交握,讓瀏覽器取得工作階段 cookie。伺服器僅限本機迴路並以 cookie 把關;它絕不會將你的工作區暴露到你的電腦之外。
Slidev 簡報
當你開啟一個 frontmatter 標示為 Slidev 簡報的 markdown 檔案時(例如 theme:、layout: 加上投影片,或明確的 format: slidev),VMark 可以執行真正的 Slidev 工具鏈來即時預覽 — 使用與 Slidev 相同的算繪器,因此版面配置、點擊動畫與元件都完全忠實呈現。
在簡報已開啟、知識庫面板執行中的情況下,使用 預覽投影片 在瀏覽器中開啟即時簡報,使用 匯出投影片 進行算繪。Slidev 會監看磁碟上的簡報檔,因此在 VMark 中儲存編輯會讓已開啟的預覽熱重新載入。
匯出
Slidev 簡報可匯出為 PDF、PNG 或 PPTX。內容伺服器會執行 Slidev 自己的 slidev export 指令,透過 playwright-chromium 套件在 Chromium 中算繪投影片。VMark 不會為它下載或尋找瀏覽器:如果內容伺服器的執行環境中沒有在 Slidev 旁安裝 playwright-chromium,匯出就會失敗並顯示 Slidev 的錯誤訊息。執行超過三分鐘的匯出會被停止。
隱私與安全
- 伺服器只繫結
127.0.0.1,並要求每個工作階段的權杖(以 HttpOnly、SameSite=Strict cookie 傳遞)。 - 檔案存取限制在工作區根目錄內;路徑穿越會被拒絕,也不會跟隨符號連結。
- 算繪出的 HTML 經過清理,並在內容安全政策下提供。工作區信任在此只改變一件事:是否算繪遠端圖片。 VMark 啟動伺服器時會傳入工作區的信任狀態;受信任的工作區,政策會放寬
img-src,讓https:圖片得以載入;未受信任的工作區,只會算繪本機與內嵌圖片。信任並不決定工作區是否能被提供 — 任何已開啟的工作區都可以。知識庫執行期間變更工作區的信任狀態會重新啟動伺服器,讓政策隨之更新。