yuebin's blog

记录生活

yuebin's blog

test md

Parsedown 是一个特点非常鲜明的 Markdown 解析器。它的定位是 “极简、极快”,用起来直接,但在扩展性和标准化程度上有所取舍。

👍 核心优势:快与简

  • 性能强悍:这是它最大的卖点。在多项基准测试中,它的解析速度通常显著快于 league/commonmark 等库,对于追求渲染速度的场景很有吸引力。
  • 零依赖单文件:整个库就是一个 Parsedown.php 文件,包含即可使用,没有 Composer 依赖负担,部署和集成非常简单。
  • GitHub 风味:它原生支持许多 GFM 特性(如删除线、表格等),对日常写文档来说基本够用。

👎 主要短板:扩展性差与标准妥协

  • 扩展性差,改造困难:很多开发者反馈,Parsedown 的代码结构“太简单”,导致自定义渲染效果或添加新语法时非常困难。有用户就是因为这个原因,最终从 Parsedown 迁移到了 league/commonmark。
  • CommonMark 兼容性不完整:它只通过了“大多数”CommonMark 测试,在一些边缘情况或不常见的语法上,行为可能和标准规范有出入。
  • 安全需自行处理:Parsedown 本身不会对生成的 HTML 进行安全过滤。如果用它渲染用户提交的内容,必须配合 HTML Purifier 之类的工具,否则存在 XSS 风险。

🔄 近期状态与安全修复

值得注意的是,Parsedown 在 2026 年初发布了 1.8.0 版本,这是时隔六年多的首个稳定版。这次更新主要带来了:

  • 安全修复:修复了潜在的 ReDoS(正则表达式拒绝服务)漏洞,并改进了 Safe Mode 的嵌套元素清理逻辑。
  • 兼容性提升:最低要求 PHP 7.1,并修复了在 PHP 8.4+ 上的弃用警告。
  • 规范靠拢:调整了列表、标题等行为,使其更符合 CommonMark 规范。

💎 总结:适合谁,不适合谁

Parsedown 依然是一个轻量、快速、开箱即用的好选择,尤其适合对性能敏感、内容简单、不需要复杂定制的场景(比如博客评论、简单文档)。

但如果你需要严格的 CommonMark 合规性、强大的扩展能力(如自定义语法、复杂插件),或者处理的是不可信的用户输入,那么 league/commonmark 或 tempest/markdown 这类更现代的库会是更稳妥的长期选择。

评论(8)

  1. 测试读者甲
    这是从 WordPress 后台发出的一条测试评论,用来验证 WP → D1 → 静态单页的完整链路。

发表评论

邮箱不会被公开。带 * 的为必填项。