2

我在 textarea 中的输入在什么阶段从原始文本变为 HTML?例如,假设我缩进 4 个空格

like this

然后 WMD Showdown.js 将在我输入的这个文本区域下方正确呈现它。但文本区域仍然包含

    like this

那么 PHP 服务器端是否负责将 showdown.js 所做的所有相同的事情永久转换为 SoF 数据库中的 HTML?

4

2 回答 2

8

这里还有一些其他的帖子,但基本上它是这样工作的。或者至少这是我在我的网站上使用 WMD 的方式;如果您有兴趣查看我的 WMD 实施,请查看我的个人资料。

  1. 用户在客户端输入 Markdown,并showdown.js在浏览器中实时运行(纯客户端 JavaScript;没有 AJAX 或类似的东西)给用户预览。
  2. 然后当用户发布到服务器时,WMD 发送 Markdown(你必须配置 WMD 来执行此操作;默认情况下,WMD 发送 HTML)。
  3. 运行showdown.js服务器端将 Markdown 转换为 HTML。理论上,您可以使用其他方法,但尝试在服务器上获得与用户在客户端上看到的相同的转换是有意义的,而不是您想要在服务器端进行的任何 HTML 标记过滤。
  4. 如前所述,您需要进行适当的 HTML 标记过滤以避免跨站点脚本 (XSS) 问题。这既重要又不平凡,所以要小心。
  5. 将 Markdown 和 HTML 都保存在数据库中 - Markdown 因为如果用户想要编辑他们的帖子,您希望给他们 Markdown 和 HTML,这样您就不必每次显示答案时都将 Markdown 转换为 HTML。

这里有一些相关的帖子。

于 2009-02-06T06:35:38.390 回答
1

首先,StackOverflow 是建立在 ASP.NET 上的,但是基本上富文本框中的字符会被来回翻译。

于 2009-02-06T06:35:01.603 回答