我如何在 PHP 中实现类似 StackOverflow 的 Markdown?

How would I implement a StackOverflow-like Markdown in PHP?

我在寻找什么?

我正在寻找一种与 Whosebug 上使用的语言类似的降价语言。

可能的解决方案

我可以去写我自己的标记语言,但我认为这会浪费时间。不过这是有可能的。

我真正想知道的是 Whosebug markdown 语言是否是开源的,或者是否有类似的开源包可用于 PHP。

降价实施

您应该寻找可以插入和使用的现有库。

首先你需要在两大组降价实现之间做出决定

  • 基本
  • 扩展(表格等)

Stackexchange 使用我所说的基本或原始降价。

您应该探索的一些搜索词:

  • 基本
    • 约翰·格鲁伯降价
    • CommonMark
    • PHP 降价
  • 扩展
    • Fletcher Penney MultiMarkdown
    • PHP 额外降价
    • PHP MultiMarkdown
    • PHP 解析

我使用 PHP Parsedown。我发现它有效但有点古怪和不宽容。

您应该注意到 Markdown 定义非常分散,除了 CommonMark 之外,原始实现和其他实现使用的标记定义不明确,因此不同的实现通常会产生不同的结果并支持不同的功能。

安全

存在一些安全问题。最终用户可访问的 Markdown 允许他们插入任意 HTML,这可能会引入跨站点脚本和其他安全问题。您可能需要预处理标记或 post 处理 HTML 以删除有问题的元素。由于这个原因,Stackexchange 只允许 HTML 的有限子集。