惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
J
Java Code Geeks
P
Proofpoint News Feed
Recent Announcements
Recent Announcements
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
雷峰网
雷峰网
D
DataBreaches.Net
B
Blog RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
V
Visual Studio Blog
Apple Machine Learning Research
Apple Machine Learning Research
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
Engineering at Meta
Engineering at Meta

山月

在Windows通过LM Studio使用Zotero MCP – 山月 禁用WordPress中Jetpack的AI助手按钮 – 山月 WordPress/MCP Adapter安装与维护指南 – 山月 WordPress服务器权限与所有权配置详解 – 山月 在Windows上為GnuCash啟用線上報價 (Finance::Quote) – 山月 Gitea Docker /var/empty 权限问题除错总结 – 山月 Bookwyrm由0.7.5升级至Production(e217a17)完整过程及疑难解答 – 山月 用正则表达式修改ruby标签 – 山月 为WordPress Syndication Links插件添加新的站点与图标的实现方法 – 山月 进入不断重启的Docker容器的命令行之方法 – 山月 自建Bookwyrm无法查询远端用户?——开启数据库扩展 – 山月 BookWyrm无法增添书本、作者、阅读进度……?——解决数据库自增序列问题 – 山月 俾Docker容器中的应用访问宿主机上的数据库服务 – 山月 QNAP NAS使用者注意!千万莫对MariaDB做这件事…… – 山月 解决Wikibase手动导入数据后无法新建实体之问题 – 山月 辰年再訪神保町 – 山月 PHP-FPM站点池配置调优以解决WordPress过度占用系统资源之问题 – 山月 如果Linux软件包常规升级失败——以python3-update-manager为例 – 山月 解决站点526报错:SSL证书配置错误 – 山月 風挾着陽光來 – 山月 和A.N.R.GHG插件说bye-bye – 山月 WordPress页面链接末尾出现“?swcfpc=1”后缀,是怎么回事? – 山月 安装、维护Monica PRM的一些笔记 – 山月 清理服务器空间的着手点 – 山月 关于Joplin Server文件上传大小上限 – 山月 如何优化PHP文件上传大小:完整指南 – 山月 WordPress站点部分地出现“严重错误”的一些可能的解法 – 山月 批量更改WordPress媒体URL – 山月 自托管WordPress编辑文章出现问题的排查法 – 山月 於Docker安裝sudo之方法 – 山月
在VS Code配置Obsidian風格Markdown編輯環境 – 山月
2026-03-30 · via 山月

本文整理一套在VS Code中配置Markdown工作流的方法,使其在wikilink、附件管理與多媒體預覽上接近Obsidian。

未有旨在複製Obsidian的界面。重點在於讓編輯、貼圖與預覽行為盡量一致。

插件組合

建議安裝以下3類插件:

  1. Foam:提供wikilink解析、反向連結與檔案重新命名時的連結同步。
  2. Markdown Preview Enhanced:提供較完整的Markdown預覽、wikilink支援與HTML5多媒體嵌入。
  3. 貼圖插件:本文示例使用Markdown Image。Paste Image也能完成本地貼圖,只是設定鍵不同;如果你已經習慣Paste Image,可自行替換對應配置。

配置原則

這套做法分成兩層:

  1. 工作區層:放進.vscode/settings.json.vscode/obsidian-preview.css,讓整個專案的Markdown行為保持一致。
  2. 使用者層:只保留個人偏好,例如Markdown Preview Enhanced採用哪個預覽主題。這類設定不建議寫進工作區,否則容易和不同人的深色或淺色主題衝突。

工作區預覽樣式

.vscode目錄建立obsidian-preview.css。這份樣式只處理版面與可讀性,顏色直接讀取VS Code主題變數,避免在深色模式下出現亮底預覽。

(按:body下的font-family,我配置了"Source Han Sans"及其各地區變體〈思源黑體〉,有助于中日韓〈CJK〉語文下的閱讀。)

:root {
  --obsidian-text: var(--vscode-editor-foreground, #2a2a2a);
  --obsidian-bg: var(--vscode-editor-background, #ffffff);
  --obsidian-muted: var(--vscode-descriptionForeground, #6b7280);
  --obsidian-link: var(--vscode-textLink-foreground, #5b7db1);
  --obsidian-border: var(--vscode-panel-border, #d7dce3);
  --obsidian-code-bg: var(--vscode-textCodeBlock-background, #f5f7fa);
}

body {
  margin: 0 auto;
  max-width: 860px;
  background: var(--obsidian-bg);
  color: var(--obsidian-text);
  font-family: "Source Han Sans", "Source Han Sans HC", "Source Han Sans TC",
    "Source Han Sans JP", sans-serif;
  line-height: 1.75;
}

code,
pre,
kbd,
samp {
  font-family: Consolas, "Cascadia Code", monospace;
}

a {
  color: var(--obsidian-link);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

img,
video,
audio {
  max-width: 100%;
}

blockquote {
  margin-left: 0;
  padding-left: 1rem;
  border-left: 3px solid var(--obsidian-border);
  color: var(--obsidian-muted);
}

pre,
code {
  background: var(--obsidian-code-bg);
}

pre {
  padding: 0.9rem 1rem;
  border-radius: 8px;
}

table {
  border-collapse: collapse;
}

th,
td {
  border: 1px solid var(--obsidian-border);
  padding: 0.5rem 0.75rem;
}

如果你不想綁定預覽字體,可以刪除body中的font-family一行。

這份CSS主要服務VS Code內建Markdown預覽,讓它在不同主題下都維持穩定的可讀性。

工作區settings.json

以下示例只保留和Markdown工作流直接相關的設定。

{
  "markdown.updateLinksOnFileMove.enabled": "always",
  "markdown.copyFiles.destination": {
    "/**/*.md": "_resources/"
  },
  "markdown.preview.scrollEditorWithPreview": true,
  "markdown.preview.scrollPreviewWithEditor": true,
  "markdown.styles": [
    ".vscode/obsidian-preview.css"
  ],
  "foam.files.exclude": [
    ".venv/**/*",
    ".vscode/**/*",
    ".git/**/*",
    "node_modules/**/*",
    "**/desktop.ini",
    "**/.DS_Store"
  ],
  "foam.files.newNotePath": "currentDir",
  "foam.templates.folder": "Templates",
  "foam.links.sync.enable": true,
  "foam.links.hover.enable": true,
  "markdown-preview-enhanced.enableWikiLinkSyntax": true,
  "markdown-preview-enhanced.useGitHubStylePipedLink": false,
  "markdown-preview-enhanced.wikiLinkTargetFileExtension": ".md",
  "markdown-preview-enhanced.scrollSync": true,
  "markdown-preview-enhanced.automaticallyShowPreviewOfMarkdownBeingEdited": true,
  "markdown-preview-enhanced.enableHTML5Embed": true,
  "markdown-preview-enhanced.HTML5EmbedUseImageSyntax": true,
  "markdown-image.base.uploadMethod": "Local",
  "markdown-image.local.path": "_resources",
  "markdown-image.local.referencePath": "",
  "[markdown]": {
    "editor.wordWrap": "on",
    "files.trimTrailingWhitespace": false
  }
}

這裡有兩點需要特別說明:

  • markdown.copyFiles.destination控制拖放或複製附件時,VS Code內建Markdown功能使用的附件目錄。
  • markdown-image.local.path控制Markdown Image貼圖時的儲存位置。本文使用_resources,表示圖片儲存在當前Markdown檔同級的_resources目錄。若你想改成工作區根目錄的統一附件倉,應寫成/_resources

可選:修正Markdown Preview Enhanced中的代碼塊背景

如果你在Markdown Preview Enhanced中採用none.css之類較少干預的預覽主題,有時會遇到fenced code block背景不一致,出現整塊底色與局部小底色混在一起的情況。這時可在工作區根目錄建立.crossnote/style.less

.markdown-preview.markdown-preview pre {
  background: var(--vscode-textCodeBlock-background, #1f252d) !important;
}

.markdown-preview.markdown-preview pre code,
.markdown-preview.markdown-preview pre code *,
.markdown-preview.markdown-preview pre tt,
.markdown-preview.markdown-preview pre tt * {
  background: transparent !important;
  box-shadow: none !important;
}

這份樣式只影響pre中的程式碼,不會改動行內code

可選:保留Markdown Preview Enhanced的主題選擇在使用者層

若你希望Markdown Preview Enhanced正文不額外套主題,而是盡量跟隨VS Code本身的明暗風格,可以把這類偏好放在使用者自己的settings.json中,而不要寫進工作區:

{
  "markdown-preview-enhanced.previewTheme": "none.css",
  "markdown-preview-enhanced.codeBlockTheme": "github-dark.css"
}

這屬於個人閱讀偏好,不屬於專案必需配置。

需按自己情況調整的項目

  • 附件目錄:如果你的Obsidian附件規則不是當前檔案同級的_resources,就同步修改markdown.copyFiles.destinationmarkdown-image.local.path
  • 模板目錄:如果你的模板資料夾不是Templates,就調整foam.templates.folder
  • 忽略規則:foam.files.exclude應按自己的vault與工作區結構增刪,不必照抄。
  • 貼圖插件:如果你使用Paste Image,就把文中的markdown-image.*配置換成對應的pasteImage.*鍵;若已切到Markdown Image,記得清理舊的pasteImage.*殘留設定。
  • 預覽字體:如果你不想指定字體,可刪除obsidian-preview.css中的font-family

啟用方式

  1. 在命令面板執行Developer: Reload Window
  2. 打開任意Markdown檔案,使用Markdown Preview Enhanced: Open Preview to the Side作為主要預覽窗格。
  3. 測試一次wikilink跳轉、圖片貼上與多媒體引用,確認附件路徑與預覽結果符合自己的Obsidian習慣。

完成後,VS Code即可在編輯、預覽與附件管理上提供一套接近Obsidian的Markdown工作流,同時保留VS Code本身的擴充能力與由Git驅動的版本管理環境。