StackExchange站点使用MarkDown语法编写问题和答案。这是在客户端使用PageDown,在服务器端使用MarkDownSharp和Jeff's HTML sanitizer构建的。我正在考虑自己构建一个非常类似的东西。
我理解为什么我需要清理服务器端的HTML。但是MarkDownSharp的用途是什么呢?为什么我不能在客户端用PageDown完成MarkDown到HTML语言的转换,然后发送给服务器呢?
发布于 2012-03-15 18:28:50
最重要的原因是:
当然,当你没有JavaScript作为需求的时候,你不能要求客户端呈现Markdown。
我,一个邪恶的垃圾邮件发送者,发布以下答案:
因为你可以在这个很棒的网站上出海...(LOGO中海龟的线程安全用法的长文本) ...希望这能有所帮助!1:http://almost-real-rolex-watches.biz
但我提交了一个渲染版本,其中的链接实际上指向一个关于turtle并发的错综复杂的相关站点。因为服务器需要来自我的Markdown源代码和呈现的HTML,所以它相信其中一个是由另一个生成的。
随之而来的是Sean Sceat,著名的Stack Overflow用户,仅在徽标标签上就有12万的声誉。他看到链接确实转到了一个相关的页面,点赞了答案,并发布了一个“很棒的答案;你链接的网站有大量有用的内容!”注释后,他修复了拼写错误"sea“-> "see”(垃圾邮件发送者故意这样做)。
但在他点击“编辑”之后,编辑器中的Markdown不再包含相关链接;它包含Rolex链接。因此,在Sean不知情的情况下,他不仅修复了打字错误,还更改了链接,转到垃圾邮件发送者的网站。
现在你有了一篇帖子,最后的编辑来自一个受信任的用户,认可了答案,但带有一个我们不希望人们点击的链接。
和修订历史(参见第2点),甚至不会显示链接已更改。
应该注意的是,WMD编辑器的原始版本实际上具有您所描述的功能;您可以将其设置为将呈现的JavaScript提交到服务器。当我们以"PageDown“的名字发布我们的重构版本时,我们最终删除了这个功能,因为我们从来没有使用过它,维护过它,老实说,我不知道它是否还能工作。
https://stackoverflow.com/questions/9717403
复制相似问题