Markdown文件被标红主因是WebStorm默认启用语法检查,需关闭“Enable Markdown code insight”及两个“Show problems”选项,语言注入问题则需禁用代码块语言注入或局部抑制。

Markdown文件里为什么总被标红?
不是语法写错了,而是WebStorm默认把Markdown当作“带结构的代码”来分析,会检查链接是否真实存在、代码块语言是否合法、表格对齐是否规范等。这些检查在文档写作阶段纯属干扰——比如你还没写完README.md,就因为一个未创建的./src/index.ts链接被标红;或者Mermaid图表语法没装插件,预览里正常,编辑器却报Unknown language: mermaid。
关掉Markdown语法检查的两个关键开关
真正起作用的是这两处设置,缺一不可:
- 进
Settings / Preferences > Languages & Frameworks > Markdown,取消勾选Enable Markdown code insight(这个控制代码块注入、链接补全、语法高亮等“智能辅助”,关掉它,大部分红色波浪线就消失了) - 再往下找
Show problems in preview和Show problems in editor,两个都取消勾选(否则即使禁用code insight,预览窗或编辑器仍可能显示警告)
注意:Enable Markdown code insight 是总开关,不关它,单关下面某一项效果有限;而这两个“Show problems”选项是视觉开关,决定是否把检查结果画出来。
为什么关了还提示“Unknown language: xxx”?
这是语言注入(language injection)机制在作怪,和语法检查无关,但表现一样——标红+提示。常见于代码块开头写了```typescript但项目没配TS支持,或```mermaid但没装Mermaid插件。
解决方法有两个:
MarkItDown 托管 Markdown 生成器:可将文件转换为 Markdown。支持 PDF、Word (.docx)、Excel (.xlsx/.xls)、PowerPoint (.pptx)、HTML、CSV、JSON、XML、图片等。
- 全局禁用:回到
Settings > Languages & Frameworks > Markdown,取消勾选Inject language in code fences - 局部抑制:光标放在报错行,按
Alt+Enter→ 选Suppress for statement,IDE会插入<!-- markdownlint-disable-next-line -->类注释(仅对该代码块生效)
推荐先试第一种,干净利落;如果只有一两个特殊代码块需要保留注入(比如想对```sql保持高亮),再用第二种。
别误关拼写检查当成语法检查
很多人搜“Markdown不检查”最后关掉的是Spelling → Typo,这只会停掉单词拼写提示,对Link is unresolved、Table cell alignment mismatch这类真正的Markdown语法问题毫无影响。
如果你看到的波浪线出现在链接、表格、标题层级、列表缩进等位置,而不是驼峰变量名或中文拼音上,那就说明你还没找到正确的开关——回上面两节再核对一遍路径和选项名。
真正难搞的是那些嵌套场景:比如在.vue文件的<template></template>里写Markdown,或用VitePress的.mdx,这时Markdown检查可能由其他插件接管,得单独查对应插件的设置页。

















