内容提要
markdown 包已被 litedown 包取代,前者是后者的严格子集,建议改用 litedown。文章回顾了 R Markdown v1 的历史:它基于 markdown 包而非 Pandoc,仅支持 HTML 输出,语法混乱,功能远弱于 v2(rmarkdown)。后来 Jeroen Ooms 开发 commonmark 包,作者据此重写 markdown 包,在功能上取 commonmark 与 Pandoc 之间的折中。作者强调此文并非鼓励使用 v1,多数人应选 v2 或 Quarto,markdown 包只求满足少数人需求,不以功能丰富为目标。
延伸解读
从 v1 到 litedown:技术栈的变迁
文章指出,R Markdown v1 基于 markdown 包而非 Pandoc,仅支持 HTML 输出,语法混乱。后来 Jeroen Ooms 开发 commonmark 包,作者据此重写 markdown 包,在 commonmark 与 Pandoc 之间取折中。如今 markdown 包又被 litedown 取代,后者是前者的严格超集。这一脉络反映了 R 生态中 Markdown 工具从实验性到标准化、再到进一步整合的演进过程。
“功能完备”的真实含义
作者声明“功能完备”并非拒绝所有未来功能请求,而是表明“功能丰富”不是该包的目标。尤其需要大量工作的新功能不太可能加入。读者应理解,这一定位意味着 markdown 包只求满足少数人的特定需求,而非与 rmarkdown 或 Quarto 竞争。提出新功能请求时需降低预期,避免将其误解为项目已停止维护或不再接受反馈。
谁该用 v1,谁该用 v2 或 Quarto
文章明确表示,此文并非鼓励使用 R Markdown v1。相反,作者认为对大多数人而言,v2(rmarkdown)和 Quarto 是更好的选择。v1 仅适合极少数有特殊需求的用户,例如需要轻量级、仅 HTML 输出的场景。读者在选择工具时,应优先考虑 v2 或 Quarto 以获得更完整的功能和持续支持,除非明确知道自己需要 v1 的局限性。
Q&A
R Markdown v1 和 v2 主要有什么区别?
R Markdown v1 基于 markdown 包而非 Pandoc,仅支持 HTML 输出,语法混乱且功能远弱于 v2;v2(即 rmarkdown 包)基于 Pandoc 和 knitr,功能更强大,支持多种输出格式。
markdown 包现在被什么取代了?
markdown 包已被 litedown 包取代,前者是后者的严格子集,建议改用 litedown。
为什么 markdown 包会被重写?
因为 Jeroen Ooms 开发了 commonmark 包,作者据此重写了 markdown 包,移除了旧的 C 库,并在 commonmark 和 Pandoc 的 Markdown 功能之间做了折中。
作者对使用 R Markdown v1 的态度是什么?
作者并不鼓励使用 v1,认为对大多数人来说 v2 和 Quarto 是更好的选择;重写 markdown 包只是希望满足少数人的需求,不以功能丰富为目标。
markdown 包宣称“功能完备”是什么意思?
“功能完备”并不意味着拒绝所有未来功能请求,而是表示“功能丰富”不是该包的目标,特别是需要大量工作的新功能不太可能被添加。
markdown 包支持哪些 Markdown 特性?
文章提到可以阅读相关章节了解该包支持的特性,但未具体列出;作者表示其特性是 commonmark 和 Pandoc 之间的折中。