HTML转Markdown,这件事并非想象中简单 关于HTML转Markdown,有几个核心判断:html2text最为稳定,正确设置关键参数是关键;pandoc保真度高但对表格结构敏感;turndown已停止维护,Node.js环境下推荐使用cheerio+remark-html;在线工具不可控,
关于HTML转Markdown,有几个核心判断:html2text最为稳定,正确设置关键参数是关键;pandoc保真度高但对表格结构敏感;turndown已停止维护,Node.js环境下推荐使用cheerio+remark-html;在线工具不可控,本质上HTML到Markdown不是翻译,而是降维取舍。
先看一张图。既然开头已放置图片,我们就从最可靠的方案开始讨论。
长期稳定更新的攒劲资源: >>>点此立即查看<<<

直接使用html2text命令行工具最为稳妥,不依赖浏览器,支持批量处理,参数可控;pandoc保真度高,但对表格结构敏感;turndown适合前端或Node.js环境定制,但已停止维护,不建议用于处理复杂HTML。
html2text默认按79字符自动折行,导致段落被切断、列表缩进错乱、代码块变形。关键参数设置如下:
-b 0参数禁用body width限制(-b为body_width的缩写)--unicode-snob正确处理中文引号、破折号等Unicode符号-g启用GitHub兼容模式,使表格生成标准Markdown语法for f in *.html; do html2text -b 0 --unicode-snob -g "$f" > "${f%.html}.md"; done注意:html2text不解析JavaScript,不执行DOM渲染,只进行纯文本解析——因此无法转换动态插入的内容,这与浏览器环境工具有本质区别。
像“Markdown Preview Enhanced”或cloudconvert.com这类方案,本质上是调用后端服务或走简化版解析逻辑,不可控因素较多: 真正的难点从来不是转换本身,而是转换后是否需要删除 侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述pandoc -f html -t markdown在处理表格时容易丢行或少列,根本原因在于它将和作为独立结构进行列数校验。常见错误现象:Warning: Ignoring invalid table row。
内的 / 数量一致,尤其注意 colspan和rowspan属性——必须提前展开或删除
style="display:none"隐藏的单元格,pandoc会照常解析,导致列数错位--wrap=none防止换行干扰列识别;更可靠的做法是先使用html2text -b 0提取结构化文本,再手动补充分隔行Node.js环境下推荐remark-html,而非turndown
turndown已归档,不再维护,且对自定义标签(如、)支持较弱;当前推荐组合为cheerio + remark-html:
cheerio加载HTML后,可精准过滤广告class、展开为带alt的Markdown图片
remark-html(而非rehype-html),它能正确处理嵌套强调、列表缩进、空行逻辑在线工具和浏览器插件为何频繁出错
可能被转成普通段落,的语言标识直接丢失或内联style时,多数工具静默跳过,不报错也不提示colspan、补充空单元格、将中的class作为语义保留——这些决策无法自动化。相关攻略
更多
同类更新
更多
热游推荐
更多
下载
下载
下载
下载
下载