Penna Markdown 编辑器
项目简介
Penna Markdown 是一款下一代 Markdown 编辑器,专注于提供优秀的写作体验和丰富的扩展语法支持。
Note
项目采用 TypeScript 开发,遵循 MIT 开源协议。
关联项目
Tip
欢迎 Star 支持!如有问题请提 Issue,若有改进建议欢迎提交 PR。
为什么重复造轮子
早期我打算给 Ankio的文档系统 找个靠谱的 Markdown 编辑器。
一开始直接用的 Typora,但它的所见即所得(WYSIWYG) 模式跟我的自定义语法完全不搭,编辑时的排版看着很别扭。
后面看见腾讯开源了 CherryMarkdown。—— 一个基于正则解析,支持自定义语法的 Markdown 编辑器。
但是由于塞了太多我觉得没必要的东西,所以去年在此基础上做了精简版 Cherry Muse 。
原版 CherryMarkdown 的问题非常多:
- 语法测试用例太少,可以说几乎没有测试;
- 代码结构混乱,JS 和 TS 混用,到处是
.d.ts和JSDoc,乱七八糟的; - 补丁代码太多,你见过还没开始编辑先预处理的编辑器么;
- 高度耦合的主题代码,还丑,我甚至一度怀疑他们开发组的人是不是都没有审美;
再加上我的CherryMuse已经改得面目全非,和官方更新的功能保持同步也不太容易。
综上,评估下来CherryMuse 及 CherryMarkdown已不再适合维护,继续维护只是在屎山上拉屎。
所以干脆在 2026 年 6 月 的时候建立了一个叫 Cherry Markdown Next 的项目,写完发现跟原版已经几乎没什么联系1了,遂改名叫 Penna Markdown。
前后花了大概 40 天,在 AI 的辅助下顺利完成初步版本。
优势
- 面向测试开发,对齐 GFM 测试用例,通过率 在 97%。
- 结合
VuePress和社区的常用扩展,在 GFM 的基础上拓展成新的规范:Ankio Flavored Markdown,简称AFM。 - 增量更新。
- 架构解耦,可以根据需求不同分别引入
penna-markdown/transformer作为纯语法解析器、penna-markdown/renderer带有JS绑定互动效果(例如代码复制、高亮)的纯渲染器、penna-markdown完整的markdown编辑器功能。
因为解析核心使用的是AST而非正则。 ↩︎