爱意满满的作品展示区。
welcomezhangjun

做了一个浏览器本地处理的 Markdown 转换工具,分享几个文档转换里的坑

  •  
  •   welcomezhangjun · Aug 31 · 643 views

    最近一段时间,我经常需要把网页、Word 或编辑器里的内容搬到 Markdown 。真正麻烦的通常不是把标题变成 #、把列表变成 -,而是判断:来源里哪些东西有结构语义,哪些只是看起来像格式。

    先说明利益相关:MDFold 是我自己开发的网站,目前免费使用,不需要注册。它包含 Markdown 与 PDF 、Word 、HTML 、图片之间的一些转换工具。这次主要想分享富文本转 Markdown 这一段的实现体会,也想听听大家会拿什么输入来测试。

    1. 转换器无法恢复来源里不存在的语义

    有些编辑器里的“大号粗体字”看起来像标题,但剪贴板中可能只是带样式的 span ,并不是 h2 。类似地,蓝色下划线文字也不一定带有真实链接地址。

    如果来源只提供纯文本,转换器就不应该猜它原来是不是标题、链接或代码。猜错比少保留一点格式更危险。

    2. 表格不是简单地在文字中间加竖线

    普通二维表格可以转成 Markdown 表格,但合并单元格、复杂表头、嵌套内容和定位布局没有稳定的一一对应关系。即使页面预览看起来正常,也需要检查列数、分隔行以及第一行和最后一行有没有丢失。

    目前我的做法是保留普通表格,把合并单元格和展示型布局明确列为需要人工复查的边界。

    3. “转换成功”不等于文档可以发布

    我现在会把验收重点放在这些地方:

    • 标题层级是否连续;
    • 嵌套列表是否仍属于正确的父项;
    • 链接文字和目标地址是否同时保留;
    • 代码有没有被当成普通段落;
    • 表格列数是否一致;
    • 文档首尾的有效内容是否完整。

    工具页同时提供富文本粘贴和 HTML 源码两种入口,输出可以继续编辑,并用清理后的预览检查结构。这个转换过程在浏览器本地完成;但脚本、字体、颜色、任意间距、合并单元格和应用专属样式不会被伪装成“完整保留”。

    可以在这里试一下:

    https://mdfold.com/rich-text-to-markdown

    如果你们愿意帮忙拍砖,我最想知道两个问题:

    1. 你最常从 Word 、Notion 、Google Docs 、网页还是其他编辑器复制内容?
    2. 哪一种结构一旦转换错了,会让你直接放弃这个工具?

    最好只用不敏感的样例测试。如果遇到错误,也欢迎把最小复现贴出来,我会按输入结构继续修。因为这是自己做的项目,所以好的和不好的反馈我都想听。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1446 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:47 · PVG 00:47 · LAX 09:47 · JFK 12:47
    ♥ Do have faith in what you're doing.