粘网页源码,或直接把 Word / 网页里的内容 Ctrl+V 贴进富文本框,自动转成 Markdown,丢掉 class、style 与脚本,表格转成 GFM 表格。
优先用「富文本粘贴框」:在框里按 Ctrl/Cmd+V,浏览器给的是带 text/html 的剪贴板数据,比让你去复制网页源代码成功率高得多。
正在载入工具…
两种输入对应两类来源:富文本粘贴框吃剪贴板里的 text/html(Word、网页、公众号后台复制的内容都是这种);HTML 源码框吃你手工复制的源码片段。实测本机富文本粘贴 paste 事件能拿到 text/html(本机回显成功),粘贴 485 B 的 Word 片段 → 158 字符 Markdown,读 HTML 源码剪贴板 本页不主动读剪贴板(要授权),富文本走 paste 事件;navigator.clipboard.read 存在。
转换是自己实现的分词 + 重组:标签树按 Markdown 能表达的写法映射——h1–h6 成 #,strong/b 成 **,em/i 成 *,a 成 [文字](地址)(保留 title),img 成 ,pre/code 成围栏代码块,blockquote 成 >,ul/ol 按嵌套深度出标记并补齐缩进,table 转成 GFM 管道表格。
丢掉的和不丢的要说清楚。class、style、id、data-*、on* 属性在 Markdown 里没有对应写法,全部丢弃;script、style、iframe、form、input 等标签整个丢掉(连内容);Word 带来的 o:p、span 外壳会被拆掉只留文字。卡片下面那行「垃圾属性」就是按这套规则统计出来的数量。
Markdown 结果落在可以继续编辑的框里(不是只读),右侧同时给这份结果的渲染预览,方便你确认转换后的语义有没有跑偏。
| 操作 | 实测结果 |
|---|---|
| 示例 HTML → Markdown | # 标题 → 带 **粗** 与 [链接](/a "t")、嵌套列表、GFM 表格、```js 围栏、引用 |
| 表格转成 GFM 管道表 | 表格转成 GFM 管道表并按显示宽度补齐 |
| Word 粘贴内容(text/html) | Word 片段(含 MsoNormal/style/o:p)→ 只剩文字与结构,9 行结果 |
| 嵌套列表转出的缩进 | 嵌套列表保留层级,后续项没丢符号 |
| Markdown → HTML → Markdown 往返 | 6 组「MD → HTML → MD」,回渲与原渲染一致 6 组(100%) |
富文本粘贴需要浏览器授权读取剪贴板;被拒绝或浏览器不给 text/html 时会自动退回 text/plain(只保文字,格式丢失),此时请改粘源码。实测:本页不主动读剪贴板(要授权),富文本走 paste 事件;navigator.clipboard.read 存在。
MD→HTML→MD 的往返不承诺逐字节相同:class、内联样式、原始 HTML 片段是单向丢失的;承诺的是「渲染出来的内容一致」。