【问题标题】:How can I disallow all HTML using markdown (PHP and JS)?如何使用 markdown(PHP 和 JS)禁止所有 HTML?
【发布时间】:2011-03-02 10:40:04
【问题描述】:

我正在使用 PHP markdown 库:http://michelf.com/projects/php-markdown/ 和 Javascript markdown 库:http://attacklab.net/showdown/

我想禁止所有 HTML,markdown 的两个版本似乎都允许它不加选择。我的第一次尝试只是在输入 markdown 之前转义所有 html 实体。不过这也避开了<hyperlink><email> 语法,这非常有用。

我想转义所有 HTML(不是删除)但保留所有 markdown 语法。

【问题讨论】:

  • 快速问题:为什么要在 JavaScript 和 PHP 中翻译它?从 DRY 的角度来看,AJAX 翻译不是更有意义吗?只是我的 2c。
  • PHP 处理现有内容的所有降价转换。我在编辑时使用javascript即时转换markdown,就像SO一样。

标签: php javascript html markdown


【解决方案1】:

你有两个选择。

首先,您实际上可以关心用户提交的 HTML 并对其进行处理。试试 Cal Henderson(Flickr 成名)的 lib_filter 或者像 HTMLPurifier 这样更重量级的东西。

其次,如果您真的只想中和所有 HTML 但保留特殊语法,请使用htmlspecialchars,然后使用正则表达式撤消您正在寻找的确切字符串的转换。那可能有点毛茸茸。 ;)

是的,这些都是 PHP 实现,而不是 Javascript。当用户暂时停止输入时,对专用预览生成脚本的 ajax 调用应该足够快。或者让他们按下按钮。

【讨论】:

  • 我考虑了正则表达式选项,但是用正则表达式匹配 URL 和电子邮件地址有点恶心。我会检查 HTMLPurifier,谢谢。
猜你喜欢
  • 2021-09-29
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
相关资源
最近更新 更多