Мне очень нравится пользовательский интерфейс комментариев Stack Overflow, и я пытаюсь реализовать то же самое на своем собственном веб-сайте. Я посмотрел на код, и похоже, что основным инструментом здесь является WMD , а JQuery TextArea Resizer играет вспомогательную роль.
WMD преобразует Markdown в HTML на стороне клиента. Это довольно хорошо, потому что это помогает с предварительным просмотром, но я сталкиваюсь с проблемой при отправке этого на сервер. Если есть ошибка проверки (скажем, пользователь ввел неверный адрес электронной почты в какой-то другой части формы комментария, или он, возможно, не ввел свое имя), то сервер отвечает, снова отображая форму с сообщением об ошибке и поля формы предварительно заполнены. Только теперь текст комментария - это HTML, а не Markdown, потому что сервер даже не видел Markdown. Но я бы хотел, чтобы это был Markdown, поскольку именно это вводил пользователь.
Есть идеи здесь?
Я рассмотрел различные идеи:
- Выполнить на стороне сервера преобразование HTML в Markdown . Не то, чтобы взволнован этой идеей. Кажется, легко снова преобразовать Markdown в HTML обратно в Markdown, и как пользователь я всегда раздражаю, когда программа переформатирует мой текст / код.
- Проверка на стороне клиента (для усиления проверки на стороне сервера, которую я бы, конечно, сохранил). Похоже, разумное направление, хотя в настоящее время я использую reCAPTCHA в своих формах комментариев, что означает, что мне нужно опубликовать хотя бы часть reCAPTCHA на сервере.
- Потерять ОМУ и использовать MarkdownJ для преобразования Markdown в HTML на сервере. Мне нужно искать какой-то другой механизм для выполнения функции предварительного просмотра, который я хочу сохранить.
В идеале был бы какой-то способ добраться до версии Markdown текста и отправить ее на сервер в дополнение к HTML, но мне не хватает парня из JavaScript, чтобы понять, реально ли это.
Любые предложения приветствуются.