Javascript 实现堆栈溢出式注释的思路
我非常喜欢Stack Overflow评论UI,我正在考虑在我自己的网站上实现同样的功能。我查看了代码,这里的主要工具似乎是JQuery,JQuery起到了支持作用 WMD在客户端将标记转换为HTML。这很好,因为它有助于预览,但在将预览发送到服务器时,我遇到了一个挑战。如果出现验证错误(例如,用户在注释表单的其他部分输入了无效的电子邮件地址,或者他没有输入自己的姓名),那么服务器将通过重新显示表单来响应,并显示错误消息和预填充的表单字段。只是现在注释文本是HTML,而不是Markdown,因为服务器甚至从未看到过Markdown。但我希望它是降价的,因为这是用户输入的内容 有什么想法吗 我考虑过各种想法:Javascript 实现堆栈溢出式注释的思路,javascript,comments,markdown,wmd,Javascript,Comments,Markdown,Wmd,我非常喜欢Stack Overflow评论UI,我正在考虑在我自己的网站上实现同样的功能。我查看了代码,这里的主要工具似乎是JQuery,JQuery起到了支持作用 WMD在客户端将标记转换为HTML。这很好,因为它有助于预览,但在将预览发送到服务器时,我遇到了一个挑战。如果出现验证错误(例如,用户在注释表单的其他部分输入了无效的电子邮件地址,或者他没有输入自己的姓名),那么服务器将通过重新显示表单来响应,并显示错误消息和预填充的表单字段。只是现在注释文本是HTML,而不是Markdown,因为
- 做一个服务器端测试。对这个想法没那么兴奋。似乎很难从标记转换为HTML再转换为标记,作为一个用户,当软件重新格式化我的文本/代码时,我总是感到恼火
- 客户端验证(以增强服务器端验证,我当然会保留它)。这似乎是一个合理的方向,尽管目前我在评论表单上使用了reCAPTCHA,这意味着我至少需要将reCAPTCHA部分发布到服务器上
- 丢失WMD并用于在服务器上将标记转换为HTML。我需要寻找一些其他机制来实现预览功能,我想保留它
感谢您的建议。我只是粗略地看了一下大规模杀伤性武器,但将文本区域提交给服务器似乎非常简单-事实上,如果文本区域是表单的一部分,我几乎看不出您可以避免它。据我所知,textarea包含标记,WMD将其转换为HTML以显示在页面的另一部分。只需在提交的表单中包含textarea,您就可以在服务器端看到它。查看此问题:(右侧导航上的“相关”框是的!)。我会将数据作为标记发送,然后在验证通过后让服务器将其转换为html。WMD有一个选项来指定它将发送到服务器的数据格式。加上
wmd_options = {
//Markdown or HTML
output: "Markdown"
};
在调用wmd之前是的,我们检索并存储用户在此处输入的“原始”文本,完全按照您描述的方式!是的,我让它提交文本区域很好…只是浏览器正在向服务器发送HTML,而不是降价。但从Chris的反应来看,WMD的一个选项是将其作为降价发送到服务器。唉,被RTFM咬了一口-汉克斯·克里斯。这正是我想要的。我想这次是被RTFR咬了。