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

推荐订阅源

WordPress大学
WordPress大学
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
GRAHAM CLULEY
P
Privacy International News Feed
L
LINUX DO - 热门话题
C
Cisco Blogs
T
Tor Project blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
Project Zero
Project Zero
Attack and Defense Labs
Attack and Defense Labs
Latest news
Latest news
The Last Watchdog
The Last Watchdog
Apple Machine Learning Research
Apple Machine Learning Research
Simon Willison's Weblog
Simon Willison's Weblog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cloudbric
Cloudbric
Last Week in AI
Last Week in AI
S
Security Affairs
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
有赞技术团队
有赞技术团队
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
P
Palo Alto Networks Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Security @ Cisco Blogs
V
V2EX
S
Secure Thoughts
人人都是产品经理
人人都是产品经理
月光博客
月光博客
博客园_首页
T
Troy Hunt's Blog
爱范儿
爱范儿
N
News and Events Feed by Topic
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Privacy & Cybersecurity Law Blog
V
Vulnerabilities – Threatpost

山月

在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之方法 – 山月 于YunoHost网页版后台装pgAdmin4失败之解决方法 – 山月 解决WordPress多站点网络下异域名子站登录失败的问题 – 山月 Linux的SWAP配置建议与方法 – 山月 如何从一个.sql文件中恢复(导入)数据到MySQL数据库 – 山月 橙色的天,金色的鯉魚 – 山月 設置SoftBank光IP地址固定分配時MAC地址報錯之解決方法 – 山月 解决自托管WordPress与Jetpack通信之不畅 – 山月 解决WordPress上传超过100M文件失败的问题——用Cloudflare作为CDN服务时 – 山月 自托管WordPress迁至新服务器时可能遇到的一些问题 – 山月 Jetpack server port value报错之解决方法 – 山月 Nextcloud服务器目录中/data/updater-(12个英数字)文件夹可删除 – 山月 使WP IndieBlocks、Webmention两插件配合工作 – 山月 导致WordPress钩子(hooks)重复调用的一个可能性——插件重复安装 – 山月 为WordPress自定义贴文类型设置默认格式(post format) – 山月 为Micropub客户端所发内容设置默认post type – 山月 让WordPress的自定义post type支持post formats – 山月 在WordPress通过古腾堡块编辑器验证您的Mastodon身份 – 山月 如何将Mastodon上关注的人导入至Friendica – 山月 在WordPress上发Mastodon的一个选项:Shortnotes+Share on Mastodon – 山月 祝WordPress 20周年快乐!(节译) – 山月 更改IndieBlocks札记(note)、喜欢(like)slug之方法 – 山月 改变Friendica域名之方法 – 山月 爲WordPress添上在線Markdown、HTML互轉工具 – 山月 內排散記 – 山月 长毛象(Mastodon)简介:多中心化、细粒度公开、多样时间轴 – 山月 教ChatGPT讲福州话 – 山月 WordPress项目管理插件使用心得 – 山月 汉字词“地震”之前,日语中表达地震的本土词 – 山月 “幸”与“福”的区别 – 山月 Koha 22.05安装教程(于Ubuntu 20.04 LTS) – 山月 《日本外來語辭典》讀書筆記 – 山月 “传毒”——童年游戏回忆一则 – 山月 WordPress多站点网络分布于不同主域名时登录管理后台出现cookie错误的解决方案 – 山月 如何为WordPress多站点设置不同的子目录、子域名,甚至主域名? – 山月 重温《日语的历史》 – 山月 东京教父:关于爱与救赎 – 山月 2021年末,豆瓣更新了它的条款…… – 山月 WordPress报错“Briefly unavailable for scheduled maintenance.”的解决方法 – 山月 日语里的「原形」「辞书形」「终止形」是什么? – 山月 《福州方言大词典》读后感 – 山月 一種美觀的由Hubzilla分享RSS資訊的方法 – 山月 《我们仨》中与《宋诗选注》相关的记载 – 山月 亂彈文忠公宴番仔事 – 山月 一本清代土腔谜语集引发的回忆 – 山月 迎圣火 – 山月 凝滞在方言里的时光 – 山月 站在新庄园门前 – 山月 长星照耀州府 – 山月 虚拟币与赛博矿难 – 山月 记忆、记录与创造 – 山月 几日来写作微信推文的反思 – 山月 对OKR工作管理法的归纳总结 – 山月 同人誌之夢 – 山月 那里人很爱诗词 – 山月 从语言学看两性语言差异 – 山月 南门兜素菜馆 – 山月 闽海痛史 – 山月 东京的西方建筑遗产 – 山月 真实的华人电影 – 山月 记观《只有野兽知道》 – 山月 记早稻田祭 – 山月 《鬼灭之刃》日语札记 – 山月 颱風前夜的仙草凍 – 山月 首篇博文 – 山月 我到底是转厝了 – 山月 CM96暴走记 – 山月 薄暮逐島 – 山月 人与神的共振 – 山月 逐集罔讲罔听 – 山月 以往不谏 – 山月
在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驅動的版本管理環境。