能无损映射为 Markdown 的 HTML 标签仅限语义明确、结构扁平者:h1–h6、p、strong/b、em/i、a、ul/ol+li;div/span/section 等容器标签无对应语法;table 和 img 转换限制多,class/style 原生不支持。

哪些 HTML 标签能直接映射成 Markdown 语法
不是所有 HTML 都能转成 Markdown,真正能无损映射的只有少数语义明确、结构扁平的标签。像 <div>、<code><span></span>、<section></section> 这类容器标签没有对应 Markdown 语法,强行“转换”只会丢失结构或引入非标准扩展。
核心可用映射包括:
-
<h1></h1>–<h6></h6>→#到######(注意空格和换行) -
<p></p>→ 段落就是空行分隔,无需标签 -
<strong></strong>/<b></b>→**text**(推荐用双星号,<b></b>语义弱,部分解析器不支持) -
<em></em>/<i></i>→*text*或_text_(优先用星号,下划线在词内可能被误解析) -
<a href="...">link</a>→[link](...)(注意 URL 中不能含空格或未编码字符) -
<ul></ul>/<ol></ol>+<li>→- item或1. item(序号数字只是占位,渲染不依赖它)
遇到 inline-style 或 class 怎么办
Markdown 原生不处理样式和类名,style="color:red" 或 class="note" 在标准 Markdown 解析器里直接被忽略。如果你依赖这些做高亮、提示框或响应式排版,转换后会丢内容或失效。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
可行路径只有两条:
立即学习“前端免费学习笔记(深入)”;
- 用支持 HTML 混写的 Markdown 解析器(如 GitHub Flavored Markdown、marked 启用
sanitize: false),保留原<span class="warning">...</span>标签 - 提前把 class 映射为自定义语法(例如把
<span class="tip"></span>替换成> ? Tip: ...),但需配套修改渲染逻辑 - 完全放弃 class 语义,改用通用 Markdown 扩展(如 MDX、Obsidian 的 callout 语法),但跨平台兼容性差
<table> 和 <code><img alt="HTML怎么转换为Markdown_HTML标签对应语法对照【方法】" > 的坑最多
表格看起来有 Markdown 对应语法,但实际限制极多:不支持 colspan/rowspan、不支持嵌套、表头必须用 |---| 分隔线且不能缺列。原始 HTML 表格一旦带属性或复杂结构,基本只能人工重写。
<img src="..." alt="..." title="..."> 转成  看似简单,但容易漏掉三点:
-
title属性在多数静态站点生成器(如 Jekyll、Hugo)里默认不渲染,加了也白加 -
src是相对路径时,Markdown 渲染器的根路径可能和 HTML 不一致,导致图片 404 - 如果原图带
loading="lazy"或width/height,Markdown 语法无法表达,需额外加 HTML 片段或用插件
自动转换工具选哪个、怎么用才不翻车
别信“一键完美转换”的宣传。真实可用的就两个方向:
- 轻量文本替换:用正则批量处理(比如
<strong>(.*?)</strong>→**$1**),适合纯内容、无嵌套的 HTML 片段;但遇到<strong>hello <em>world</em></strong>就会套错括号 - 解析器驱动转换:用
cheerio(Node.js)或BeautifulSoup(Python)先 parse 成 DOM,再按节点类型递归生成 Markdown 字符串——这是唯一能正确处理嵌套、属性、边缘 case 的方式 - 现成工具中,
html-to-md(npm)比to-markdown更积极维护,但默认仍会丢class和style,需手动 patchrules配置项
最常被忽略的是换行和空白符处理:HTML 里连续空格、<br>、 在 Markdown 里全靠 \n 和两个空格控制,不统一清理会导致段落粘连或意外折行


















