我非常喜欢 Stack Overflow 评论 UI,我正在考虑在我自己的网站上实现同样的功能。我查看了代码,看起来这里的主要工具是WMD,而 JQuery TextArea Resizer起到了辅助作用。
WMD 在客户端将 Markdown 转换为 HTML。这非常好,因为它有助于预览,但是在将其发送到服务器时遇到了挑战。如果出现验证错误(比如用户在评论表单的其他部分输入了无效的电子邮件地址,或者他可能没有输入他的姓名),那么服务器会通过重新显示带有错误消息的表单和预先填充的表单字段。只是现在评论文本是 HTML,而不是 Markdown,因为服务器甚至从未见过 Markdown。但我希望它是 Markdown,因为这是用户输入的内容。
这里有什么想法吗?
我考虑了各种想法:
- 进行服务器端HTML 到 Markdown 的转换。对这个想法并不那么兴奋。从 Markdown 转换为 HTML 再转换回 Markdown 似乎很笨拙,作为用户,当软件重新格式化我的文本/代码时,我总是觉得它很烦人。
- 客户端验证(以增强服务器端验证,我当然会保留)。尽管目前我在评论表单上使用 reCAPTCHA,但这似乎是一个合理的方向,这意味着我至少需要将 reCAPTCHA 部分发布到服务器。
- 丢失 WMD 并使用MarkdownJ将 Markdown 转换为服务器上的 HTML。我需要寻找其他一些机制来完成我想要保留的预览功能。
理想情况下,除了 HTML 之外,还有一些方法可以获取文本的 Markdown 版本并将其提交到服务器,但我还不足以知道这是否是一个真正的可能性。
任何建议表示赞赏。