建本地優(yōu)先的個(gè)人知識(shí)庫(kù))
Foam for VS Code 深度指南用 Markdown Wikilinks 構(gòu)建本地優(yōu)先的個(gè)人知識(shí)庫(kù)【免費(fèi)下載鏈接】foamA personal knowledge management and sharing system for VSCode項(xiàng)目地址: https://gitcode.com/gh_mirrors/fo/foamFoam 是一款運(yùn)行在 VS Code 之內(nèi)的筆記工具它把 Markdown 文件、[[wikilink]]雙向鏈接、圖譜可視化與發(fā)布能力整合進(jìn)一個(gè)本地優(yōu)先local-first的個(gè)人知識(shí)管理系統(tǒng)。本文以倉(cāng)庫(kù)中 packages/foam-vscode/README.md 為主線(xiàn)結(jié)合 foam-vscode 擴(kuò)展的源碼與配置清單系統(tǒng)講解它的核心功能、命令、配置項(xiàng)與擴(kuò)展機(jī)制幫助你在 VS Code 中搭建一套可定制、可發(fā)布、可持續(xù)演進(jìn)的知識(shí)庫(kù)。一、Foam 是什么在 VS Code 里長(zhǎng)出來(lái)的知識(shí)庫(kù)Foam 不是一個(gè)獨(dú)立應(yīng)用而是一個(gè)“住在 VS Code 里的筆記工具”。它的設(shè)計(jì)有三個(gè)關(guān)鍵定位本地優(yōu)先筆記就是磁盤(pán)上的 Markdown 文件數(shù)據(jù)完全由你掌控不依賴(lài)任何云服務(wù)基于 Markdown你可以繼續(xù)使用 VS Code 里任何你喜歡的擴(kuò)展拼寫(xiě)檢查、圖表、剪貼板貼圖等來(lái)增強(qiáng)編輯體驗(yàn)可擴(kuò)展extensibleFoam 的 API 與內(nèi)部結(jié)構(gòu)是開(kāi)放的你可以深入集成它的內(nèi)部機(jī)制來(lái)定制自己的知識(shí)庫(kù)可發(fā)布借助 link reference definitions 等功能筆記可以在非 Foam 環(huán)境下如 GitHub UI、GitHub Pages保持可導(dǎo)航。從源碼結(jié)構(gòu)看foam-vscode 擴(kuò)展并非“單文件玩具”它依賴(lài) foam/core核心數(shù)據(jù)模型、解析器、圖譜與查詢(xún)引擎與 foam/graph-view圖譜 Webview自身則負(fù)責(zé)把這兩者接入 VS Code 的 API。擴(kuò)展的激活入口在 src/extension.ts它依次完成日志初始化、工作區(qū)掃描include/exclude 規(guī)則、Markdown 解析器與緩存創(chuàng)建、圖譜 bootstrap最后通過(guò)Promise.allSettled逐個(gè)激活src/vscode/features下的全部功能模塊——單個(gè)功能模塊失敗只降級(jí)該功能不會(huì)中斷整個(gè)擴(kuò)展的激活。二、快速開(kāi)始三步建好你的 Foam 工作區(qū)已經(jīng)在用 ObsidianObsidian 的 vault 通常直接就是一個(gè) Foam 工作區(qū)可參考倉(cāng)庫(kù)文檔 docs/user/recipes/migrating-from-obsidian.md 遷移。官方推薦的起步方式非常直接從 foam-template 創(chuàng)建倉(cāng)庫(kù)在 GitHub 上基于foam-template模板創(chuàng)建倉(cāng)庫(kù)。如果不想公開(kāi)記得把倉(cāng)庫(kù)設(shè)為 private??寺〔⒋蜷_(kāi)把倉(cāng)庫(kù)克隆到本地用 VS Code 打開(kāi)。安裝推薦擴(kuò)展VS Code 彈出“推薦擴(kuò)展”提示時(shí)點(diǎn)擊Install all或者點(diǎn)擊Show Recommendations逐條審查后安裝。這一步會(huì)順帶安裝 Foam 擴(kuò)展本身如果你已經(jīng)裝過(guò)請(qǐng)確保更新到最新版本。用這種方法起步你會(huì)得到一套現(xiàn)成的.foam/目錄結(jié)構(gòu)存放模板、查詢(xún)等、每日筆記模板、圖譜視圖等基礎(chǔ)設(shè)施無(wú)需手動(dòng)配置即可體驗(yàn)完整功能。三、核心功能詳解1. 圖譜可視化Graph Visualization使用Foam: Show Graph命令可以直觀(guān)看到筆記之間如何通過(guò)鏈接連成一張網(wǎng)絡(luò)圖。命令的實(shí)現(xiàn)位于 src/vscode/features/graph-webview/index.tsfoam-vscode.show-graph會(huì)創(chuàng)建或復(fù)用并置前一個(gè)名為 “Foam Graph” 的 Webview 面板面板數(shù)據(jù)由buildGraphData(foam.workspace.list(), foam.graph.getAllConnections(), ...)生成并且監(jiān)聽(tīng)foam.graph.onDidUpdate—— 只要筆記或鏈接發(fā)生變化圖譜會(huì)實(shí)時(shí)刷新。點(diǎn)擊節(jié)點(diǎn)時(shí)默認(rèn)用vscode.open打開(kāi)筆記源文件如果開(kāi)啟foam.graph.navigateToPreview則會(huì)改用markdown.showPreview打開(kāi) Markdown 預(yù)覽。圖譜還支持foam.graph.titleMaxLength節(jié)點(diǎn)標(biāo)題超長(zhǎng)時(shí)截?cái)囡@示默認(rèn) 24 字符0或負(fù)數(shù)表示不截?cái)嘟財(cái)噙壿嬕?jiàn) graph-webview/index.tsfoam.graph.style自定義節(jié)點(diǎn)顏色、分組規(guī)則、背景等樣式foam.graph.views定義多個(gè)命名視圖如Default、按目錄著色、按類(lèi)型著色并可通過(guò)帶{ view: name }參數(shù)的鍵綁定打開(kāi)視圖配置會(huì)在 resolveViewStyle 中與foam.graph.style合并foam.graph.onStartup設(shè)為true時(shí)擴(kuò)展啟動(dòng)即自動(dòng)打開(kāi)圖譜。2. Foam Queries把查詢(xún)“嵌入”筆記Foam Queries 允許你直接在 Markdown 預(yù)覽中嵌入動(dòng)態(tài)、自動(dòng)更新的列表、表格和計(jì)數(shù)只需在代碼塊中聲明foam-queryDQL 語(yǔ)法或foam-query-jsJavaScript 語(yǔ)法foam-query SELECT ... WHERE ...[](https://link.gitcode.com/i/829107ad8ae029f11003d355ea9026b7) 渲染邏輯在 [src/vscode/features/preview/foam-query-renderer.ts](https://link.gitcode.com/i/433433589cf41179e316585fb7fbfc48)它劫持 markdown-it 的 fence 規(guī)則遇到 foam-query / foam-query-js 代碼塊時(shí)分別調(diào)用 renderDqlQuery / renderJsQuery 渲染為 HTML出錯(cuò)時(shí)輸出 foam-query-error 樣式的錯(cuò)誤塊不影響預(yù)覽整體渲染。查詢(xún)中引用的筆記若含 [[wikilink]]會(huì)先被重寫(xiě)為相對(duì)工作區(qū)根目錄的鏈接再渲染保證鏈接可點(diǎn)擊。完整的查詢(xún)語(yǔ)法參考見(jiàn)倉(cāng)庫(kù)文檔 [docs/user/features/foam-queries.md](https://link.gitcode.com/i/e926486de27b26393fef2b3ffb099f99)。 ### 3. Block IDs鏈接到筆記內(nèi)部的“塊” [[note#^blockid]] 語(yǔ)法可以讓你鏈接或嵌入一篇筆記中的**段落、列表項(xiàng)、標(biāo)題、引用塊**。用法是先在目標(biāo)塊元素后加一個(gè) ^id 標(biāo)記 md 這是一個(gè)可以錨定的段落。 ^my-block-id然后在知識(shí)庫(kù)的任何位置用[[note#^my-block-id]]引用它。塊級(jí)錨點(diǎn)讓知識(shí)庫(kù)的粒度從“篇”細(xì)化到“段”是構(gòu)建精確引用關(guān)系的基礎(chǔ)。相關(guān)實(shí)現(xiàn)與既有鏈接改寫(xiě)邏輯可參見(jiàn) src/vscode/features/preview/wikilink-embed.ts 與文檔 docs/user/features/block-anchors.md。4. 筆記嵌入Note Embed除了鏈接你還可以嵌入其他筆記的內(nèi)容——整篇、某個(gè)章節(jié)甚至某個(gè)塊都可以。結(jié)合 Block IDs 與章節(jié)支持可以在一個(gè)頁(yè)面里聚合多個(gè)來(lái)源的內(nèi)容形成“儀表盤(pán)式”的筆記。渲染細(xì)節(jié)由預(yù)覽側(cè)插件wikilink-embed完成src/vscode/features/preview/wikilink-embed.ts嵌入的呈現(xiàn)風(fēng)格可通過(guò)配置foam.preview.embedNoteType控制見(jiàn)下文配置表。5. 鏈接自動(dòng)補(bǔ)全Link AutocompletionFoam 幫助你在筆記之間以及 placeholder 之間建立連接輸入[[時(shí)會(huì)彈出補(bǔ)全候選候選標(biāo)簽?zāi)J(rèn)使用筆記路徑也可切換為標(biāo)題或標(biāo)識(shí)符。相關(guān)配置foam.completion.label補(bǔ)全項(xiàng)的標(biāo)簽取什么屬性path/title/identifierfoam.completion.useAlias何時(shí)自動(dòng)使用別名never/whenPathDiffersFromTitlefoam.completion.linkFormat補(bǔ)全產(chǎn)出的是 wikilink[[note-name]]還是標(biāo)準(zhǔn) Markdown 鏈接Note Name。6. 重命名時(shí)同步鏈接Sync links on file rename重命名文件后指向該文件的所有鏈接會(huì)被自動(dòng)更新筆記之間的一致性得到保障。開(kāi)關(guān)為foam.links.sync.enable默認(rèn)true。對(duì)于標(biāo)準(zhǔn) Markdown 鏈接README 建議額外開(kāi)啟 VS Code 內(nèi)置的markdown.updateLinksOnFileMove.enabled設(shè)置兩者配合效果最佳。7. 跨目錄唯一標(biāo)識(shí)符Unique identifiers across directoriesFoam 支持多個(gè)目錄中存在同名文件。它會(huì)使用“能滿(mǎn)足唯一性要求的最小標(biāo)識(shí)符”來(lái)引用目標(biāo)并且能報(bào)告并修復(fù)已有歧義的 wikilink歧義鏈接會(huì)被診斷標(biāo)出并提供快速修復(fù)Quick Fix選擇要鏈接的具體文件——診斷邏輯見(jiàn) src/vscode/features/lint/wikilink-diagnostics.ts其中AMBIGUOUS_IDENTIFIER_CODE對(duì)應(yīng)的修復(fù)會(huì)調(diào)用FoamWorkspace.getShortestIdentifier計(jì)算出最短唯一標(biāo)識(shí)符并替換鏈接wikilink-diagnostics.ts未知章節(jié)[[note#Section]]、未知塊[[note#^block]]、重復(fù)塊 ID 同樣會(huì)以診斷 快速修復(fù)的形式呈現(xiàn)UNKNOWN_SECTION_CODE、UNKNOWN_BLOCK_CODE、DUPLICATE_BLOCK_ID_CODE。8. 鏈接預(yù)覽與導(dǎo)航Link Preview and Navigation把鼠標(biāo)懸停在 wikilink 上即可預(yù)覽目標(biāo)筆記內(nèi)容點(diǎn)擊即可跳轉(zhuǎn)。預(yù)覽開(kāi)關(guān)為foam.links.hover.enable默認(rèn)true。相關(guān)實(shí)現(xiàn)見(jiàn) src/vscode/features/navigation/hover-provider.ts 與 navigation-provider.ts。9. 跳轉(zhuǎn)到定義、查看引用Go to definition, Peek ReferencesCtrlClick或?qū)?yīng)鍵位可以從任意 wikilink 跳到目標(biāo)筆記同時(shí)可以Peek References查看當(dāng)前筆記在知識(shí)庫(kù)中被哪些地方引用——這是反向鏈接能力的編輯器側(cè)形態(tài)實(shí)現(xiàn)見(jiàn) src/vscode/features/navigation/navigation-provider.ts。10. Preview 內(nèi)導(dǎo)航Navigation in Preview在 VS Code 的 Markdown 預(yù)覽面板中也可以點(diǎn)擊 wikilink 完成導(dǎo)航讓“渲染后的閱讀態(tài)”同樣具備鏈接能力。這依賴(lài)擴(kuò)展對(duì) markdown-it 的擴(kuò)展extendMarkdownIt鉤子由各 feature 模塊統(tǒng)一向extension.ts注冊(cè)。11. 章節(jié)支持Support for sectionsFoam 對(duì)筆記章節(jié)提供了完整的支持鏈條自動(dòng)補(bǔ)全、導(dǎo)航、嵌入、診斷。語(yǔ)法就是標(biāo)準(zhǔn) wiki 語(yǔ)法[[resource#Section Title]]12. 鏈接別名Link AliasFoam 支持鏈接別名[[wikilink]] [[wikilink|alias]]別名讓引用在正文中讀起來(lái)更自然同時(shí)不破壞鏈接的目標(biāo)解析。13. 模板Templates使用自定義模板避免重復(fù)勞動(dòng)Foam: Create New Template創(chuàng)建模板Foam: Create New Note from Template基于模板建筆記。模板目錄默認(rèn)是.foam/templates配置項(xiàng)foam.templates.folder。命令實(shí)現(xiàn)見(jiàn) src/vscode/features/notes/create-note-from-template.ts它最終復(fù)用createNote({ askForTemplate: true }, foam)流程create-note.ts。模板里支持FOAM_TITLE、FOAM_DATE_*等變量日期變量所用 locale 由foam.dateLocale控制默認(rèn)跟隨系統(tǒng)也可用 BCP 47 語(yǔ)言標(biāo)簽如en-US、ja-JP。完整模板語(yǔ)法見(jiàn)文檔 docs/user/features/templates.md。14. Backlinks 面板Backlinks Panel在資源管理器側(cè)邊欄的Connections視圖中可以快速查看哪些筆記引用了當(dāng)前激活的筆記每個(gè)引用都展示其所在上下文并附帶筆記預(yù)覽。實(shí)現(xiàn)見(jiàn) src/vscode/features/notes/connections.ts面板監(jiān)聽(tīng)foam.graph.onDidUpdate與活動(dòng)標(biāo)簽頁(yè)變化實(shí)時(shí)刷新工具欄支持在全部鏈接 / 反向鏈接Backlinks/ 正向鏈接Links之間切換并可過(guò)濾為“僅筆記”notes-only。15. Tag Explorer 面板Tag Explorer Panel用標(biāo)簽組織并瀏覽筆記Tag Explorer面板支持層級(jí)標(biāo)簽hierarchical tags。給筆記打標(biāo)簽的方式有兩種——正文中寫(xiě)#tag或在 front matter 中聲明--- tags: tag1, tag2 ---面板還提供Foam: Search Tag與Foam: Rename Tag命令重命名標(biāo)簽會(huì)同步更新所有引用。相關(guān)實(shí)現(xiàn)見(jiàn) src/vscode/features/tags/完整說(shuō)明見(jiàn)文檔 docs/user/features/tags.md。16. Orphans 與 Placeholders 面板這兩個(gè)面板幫助你保持知識(shí)庫(kù)的健康狀態(tài)Orphans孤兒筆記既沒(méi)有入鏈也沒(méi)有出鏈的筆記——它們游離于知識(shí)網(wǎng)絡(luò)之外Placeholders占位符懸空鏈接dangling links或“有鏈接但沒(méi)有內(nèi)容”的筆記。在Orphans/Placeholders面板中集中查看并處理它們能讓知識(shí)庫(kù)始終處于更有序的狀態(tài)。兩個(gè)面板都支持“僅當(dāng)前文件 / 全部工作區(qū)”與“按文件夾分組 / 平鋪”切換還可以通過(guò)foam.orphans.exclude、foam.placeholders.exclude配置 glob 將特定路徑排除在報(bào)告之外。相關(guān)實(shí)現(xiàn)見(jiàn) src/vscode/features/notes/orphans.ts 與 placeholders.ts。17. 語(yǔ)法高亮Syntax highlightFoam 對(duì) wikilink 與 placeholder 使用不同的高亮讓你在編輯時(shí)一眼區(qū)分“已建立的鏈接”與“懸空鏈接/待創(chuàng)建的筆記”。這是通過(guò)注入語(yǔ)法實(shí)現(xiàn)的擴(kuò)展聲明了foam.wikilink.injection語(yǔ)法注入到text.html.markdown見(jiàn) package.json語(yǔ)法定義在 syntaxes/injection.json。placeholder 的前景色由主題色foam.placeholder控制默認(rèn)跟隨編輯器的editorWarning.foreground。18. 每日筆記Daily Note用Foam: Open Daily Note默認(rèn)快捷鍵AltD或Foam: Open Todays Note創(chuàng)建日記。每日筆記的命名、目錄等現(xiàn)在通過(guò) daily-note 模板配置舊的foam.openDailyNote.*配置項(xiàng)已標(biāo)記為 deprecated建議遷移到模板方案詳見(jiàn)文檔 docs/user/features/daily-notes.md。還可以用Foam: Open Random Note隨機(jī)打開(kāi)一篇筆記適合“回顧式”瀏覽。19. 為 wikilink 生成引用定義Generate referencesFoam: Update Wikilink Definitions命令可以為[[wikilinks]]生成 Markdown 引用定義link reference definitions使筆記能在非 Foam 環(huán)境下使用。有了這些引用定義筆記在 GitHub UI 以及 GitHub Pages 上都能保持可導(dǎo)航。生成策略由foam.edit.linkReferenceDefinitions控制withExtensionswikilink 路徑中保留擴(kuò)展名withoutExtensions移除擴(kuò)展名off關(guān)閉生成。文檔見(jiàn) docs/user/features/link-reference-definitions.md。四、命令參考從命令面板出發(fā)的工作流除上述功能內(nèi)嵌的命令外擴(kuò)展在命令面板中注冊(cè)了以下主要命令完整清單見(jiàn) package.json命令作用Foam: Show Graph打開(kāi)/聚焦筆記圖譜視圖Foam: Open Random Note隨機(jī)打開(kāi)一篇筆記Foam: Open Todays NoteAltD打開(kāi)/創(chuàng)建今天的每日筆記Foam: Open Daily NoteAltH打開(kāi)指定日期的每日筆記Foam: Create New Note新建筆記可配合模板與Create New Note from Template使用Foam: Create New Note From Template選擇模板創(chuàng)建筆記Foam: Create New Template新建模板文件Foam: Update Wikilink Definitions為 wikilink 生成引用定義Foam: Convert Wikilink to Markdown Link把 wikilink 轉(zhuǎn)換為 Markdown 鏈接Foam: Convert Markdown Link to Wikilink反向轉(zhuǎn)換Foam: Copy To Clipboard Without Brackets復(fù)制不帶方括號(hào)的鏈接文本Foam: Search Tag/Foam: Rename Tag標(biāo)簽檢索與重命名Foam: Lint Workspace (Experimental)工作區(qū) lint 檢查Foam: Clear Cache清空解析緩存Foam: Set Log Level調(diào)整日志級(jí)別Foam: Show Whats New查看版本更新說(shuō)明完整命令說(shuō)明見(jiàn)文檔 docs/user/features/commands.md。五、配置參考按需定制你的知識(shí)庫(kù)擴(kuò)展在 VS Code 設(shè)置中暴露了以foam.為前綴的完整配置樹(shù)聲明于 package.json下表整理了最常用的配置項(xiàng)文件與范圍配置項(xiàng)默認(rèn)值說(shuō)明foam.files.include[**/*]納入 Foam 的 glob 規(guī)則可用它把范圍限定到特定目錄如[notes/**]或文件類(lèi)型如[**/*.md]foam.files.exclude見(jiàn) package.json從 Foam 中排除的 glob如**/node_modules/**/*、**/dist/**/*等排除整個(gè)文件夾用folderName/**/*foam.files.attachmentExtensionspdf mp3 webm wav m4a mp4 avi mov rtf txt doc docx pages xls xlsx numbers ppt pptm pptx視為附件的擴(kuò)展名列表空格分隔foam.files.notesExtensions額外視為文本筆記的擴(kuò)展名如mdx txt markdownfoam.files.defaultNoteExtensionmd新建筆記的默認(rèn)擴(kuò)展名foam.files.newNotePathroot新筆記創(chuàng)建位置root工作區(qū)根目錄或currentDir當(dāng)前編輯器所在目錄會(huì)被模板或命令參數(shù)覆蓋foam.supportedLanguages[markdown]視為 Markdown 類(lèi)文檔的語(yǔ)言列表注意修改foam.files.*系列配置后擴(kuò)展會(huì)提示Reload the window使設(shè)置生效見(jiàn) src/extension.ts。舊配置foam.files.ignore已廢棄請(qǐng)改用foam.files.exclude。鏈接與編輯配置項(xiàng)默認(rèn)值說(shuō)明foam.links.sync.enabletrue重命名/移動(dòng)筆記時(shí)自動(dòng)更新 wikilinkfoam.links.hover.enabletrue懸停鏈接時(shí)顯示筆記內(nèi)容foam.links.directory.moderesolve指向目錄名的鏈接[[bar]]如何解析resolve查找目錄內(nèi)的 index 文件index.ext或README.extdisabled恢復(fù)嚴(yán)格的文件精確匹配foam.completion.labelpath補(bǔ)全項(xiàng)標(biāo)簽來(lái)源path/title/identifierfoam.completion.useAliasnever何時(shí)為 wikilink 使用別名foam.completion.linkFormatwikilink補(bǔ)全產(chǎn)物格式wikilink或link標(biāo)準(zhǔn) Markdown 鏈接foam.edit.linkReferenceDefinitionsoffwikilink 引用定義生成策略withExtensions/withoutExtensions/offfoam.preview.embedNoteTypefull-card嵌入筆記的渲染風(fēng)格是否帶標(biāo)題full/content以及是否置于容器卡片中inline/cardfoam.dateLocaledefault日期變量如FOAM_DATE_DAY_NAME所用 locale可用 BCP 47 標(biāo)簽面板與圖譜配置項(xiàng)默認(rèn)值說(shuō)明foam.orphans.exclude[]從 Orphans 報(bào)告中排除的 globfoam.placeholders.exclude[]從 Placeholders 報(bào)告中排除的 globfoam.graph.titleMaxLength24圖譜節(jié)點(diǎn)標(biāo)題最大長(zhǎng)度超出截?cái)?關(guān)閉截?cái)鄁oam.graph.style{}圖譜自定義樣式節(jié)點(diǎn)顏色、分組等f(wàn)oam.graph.views[]命名圖譜視圖名為Default的視圖會(huì)在圖譜無(wú)參數(shù)打開(kāi)時(shí)自動(dòng)應(yīng)用foam.graph.onStartupfalse啟動(dòng)時(shí)是否自動(dòng)打開(kāi)圖譜foam.graph.navigateToPreviewfalse點(diǎn)擊圖譜節(jié)點(diǎn)時(shí)打開(kāi) Markdown 預(yù)覽而非源文件實(shí)驗(yàn)性功能與日志配置項(xiàng)默認(rèn)值說(shuō)明foam.experimentalfalse啟用實(shí)驗(yàn)性功能AI 相似/相關(guān)筆記、導(dǎo)出 HTML 頁(yè)面等。實(shí)驗(yàn)功能可能隨時(shí)變更或移除foam.logging.levelinfo日志級(jí)別off/debug/info/warn/error啟用foam.experimental后資源管理器中會(huì)出現(xiàn)Related Notes (AI)面板基于 Ollama 嵌入見(jiàn) src/ai/providers/ollama/ollama-provider.ts命令面板中也會(huì)出現(xiàn)Foam: Show Similar Notes、Foam: Build Embeddings Index、Foam: Export to HTML page等命令。六、倉(cāng)庫(kù)結(jié)構(gòu)讀懂 Foam 的代碼地圖如果你想深入擴(kuò)展甚至貢獻(xiàn)代碼可以按下面的路徑探索本倉(cāng)庫(kù)根目錄即 Foam 的 monorepo擴(kuò)展本體packages/foam-vscode/——VS Code 擴(kuò)展包含src/vscode/features/下的全部功能模塊導(dǎo)航、預(yù)覽、lint、標(biāo)簽、每日筆記、智能文件夾等核心引擎packages/foam-core/——數(shù)據(jù)模型model/、Markdown 解析services/markdown-parser.ts、圖譜model/graph.ts、查詢(xún)引擎query/含 DQL 與 JS 查詢(xún)、模板系統(tǒng)templates/與導(dǎo)出export/圖譜視圖packages/foam-graph/——在 Webview 中渲染圖譜的前端實(shí)現(xiàn)MCP 服務(wù)器packages/foam-mcp/——把 Foam 的圖譜、搜索、標(biāo)簽?zāi)芰Ρ┞稙?Model Context Protocol 工具CLI 工具packages/foam-cli/——提供daily、grep、links、lint、note、search、tag等命令行能力擴(kuò)展激活流程src/extension.ts——展示了“核心引擎 bootstrap → 功能模塊逐個(gè)注冊(cè) → 統(tǒng)一extendMarkdownIt聚合”的架構(gòu)模式也是理解 Foam 可擴(kuò)展性的最佳入口。由于擴(kuò)展將extendMarkdownIt作為各 feature 的統(tǒng)一出口src/extension.ts預(yù)覽側(cè)的 wikilink 導(dǎo)航、嵌入、查詢(xún)渲染、腳注等能力都是通過(guò)該鉤子注入 markdown-it 的這為第三方擴(kuò)展復(fù)用 Foam 的解析與渲染能力提供了穩(wěn)定的集成點(diǎn)。七、常見(jiàn)問(wèn)題、已知問(wèn)題與版本信息已知問(wèn)題Known Issues可查看倉(cāng)庫(kù) GitHub Issues 頁(yè)面跟蹤。版本更新Release Notes見(jiàn) packages/foam-vscode/CHANGELOG.md。調(diào)試日志通過(guò)Foam: Set Log Level調(diào)整日志級(jí)別輸出日志幫助定位問(wèn)題更詳細(xì)的日志說(shuō)明見(jiàn)文檔 docs/user/tools/foam-logging-in-vscode.md。此外Foam 生態(tài)里還有大量來(lái)自社區(qū)的使用場(chǎng)景recipes——自動(dòng) Git 同步、從移動(dòng)端記錄、PDF 導(dǎo)出、實(shí)時(shí)協(xié)作、剪藏網(wǎng)頁(yè)等可按需查閱 docs/user/recipes/recipes.md 尋找靈感把 Foam 塑造成適合你自己的知識(shí)工作流?!久赓M(fèi)下載鏈接】foamA personal knowledge management and sharing system for VSCode項(xiàng)目地址: https://gitcode.com/gh_mirrors/fo/foam創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考