Сохранение содержимого элемента управления WMD Editor
-
02-07-2019 - |
Вопрос
Я пытаюсь реализовать редактор WMD, используемый в StackOverflow, для создания некоторых базовых функций в стиле Wiki.Я дошел до того момента, когда пришло время сохранять в базу данных, но я не уверен относительно того, что мне следует сохранять.
Если я сохраню созданный HTML-код, то смогу извлечь и отобразить его корректно, но при повторном редактировании я сталкиваюсь с редактированием HTML, а не Markdown.Однако, если я сохраню Markdown, я не вижу никакого способа преобразовать это обратно в HTML для отображения, и, просматривая StackOverflow, он отправляет браузеру HTML.
Я предполагаю, что мне не нужно сохранять оба варианта, так какую простую вещь я упускаю?
Решение
Обязательно сохраните код уценки в том виде, в каком он был введен пользователем.
Затем вам понадобится конвертер Markdown, который преобразует его в HTML для отображения.
Вы найдете множество таких в
http://en.wikipedia.org/wiki/Markdown#Converters
и
http://markdown.infogami.com/
Я бы проголосовал против использования JS в вашем случае.Там, по-видимому, есть Реализация .NET но я не могу передать вам, насколько это хорошо.
Во время рендеринга вашей страницы вам нужно будет передать код Markdown в конвертер, подобный приведенному выше, а затем вывести возвращенный HTML-код.
Если возникает проблема с производительностью, вы также можете рассмотреть возможность сохранения как кода Markdown (для последующего редактирования), так и HTML-кода (для отображения) в базе данных.Таким образом, он будет преобразован только один раз.
Другие советы
Я бы предложил сохранить точный введенный текст в базу данных, чтобы редактирование работало с исходным markdown или HTML.
Когда вы извлекаете текст для отображения, вы анализируете его на стороне сервера и при необходимости преобразуете в HTML
[Редактировать] В комментарии:Похоже, у вас уже есть способ синтаксического анализа и преобразования в HTML, если я правильно понял ваш вопрос.Здесь вы рассказываете о созданном HTML.
Если я сохраню созданный HTML, то смогу извлечь и отобразить его корректно, но при повторном редактировании я сталкиваюсь с редактированием HTML, а не Markdown