Сохранение содержимого элемента управления WMD

Я пытаюсь реализовать редактор WMD, используемый в StackOverflow, для создания некоторых базовых функций в стиле Wiki. Я до такой степени, что мне нужно сохранить базу данных, но я не уверен, что я должен сохранить.

Если я сохраню созданный HTML, то я смогу получить и отобразить его правильно, но при повторном редактировании я столкнулся с редактированием HTML, а не Markdown. Однако, если я сохраню Markdown, я не вижу никакого способа конвертировать это обратно в HTML для отображения, и, глядя на StackOverflow, он отправляет браузер HTML.

Я предполагаю, что мне не нужно сохранять оба, так что простую вещь мне не хватает?

Ответ 1

Абсолютно сохранить код Markdown, введенный пользователем.

Затем вам понадобится конвертер Markdown, который преобразует его в HTML для его отображения.

Вы найдете кучу их на сайте http://en.wikipedia.org/wiki/Markdown#Converters
и
http://markdown.infogami.com/

Я бы проголосовал против использования JS в вашем случае. Кажется, существует .NET реализация, но я не могу сказать вам, насколько это хорошо.

При рендеринге вашей страницы вам нужно передать код Markdown в конвертер, как указано выше, а затем вывести возвращаемый HTML.

Если производительность является проблемой, вы можете также рассмотреть возможность сохранения кода Markdown (для последующего редактирования) и кода HTML (для отображения) в базе данных. Таким образом, он будет преобразован только один раз.

Ответ 2

Я бы предложил сохранить точный введенный текст в базу данных, поэтому редактирование будет работать с исходной уценкой или HTML.

Когда вы извлекаете текст для отображения, вы анализируете его на стороне сервера и при необходимости конвертируете в HTML

[Изменить] На комментарий: Кажется, у вас есть способ разбора и преобразования в HTML, если я правильно понимаю ваш вопрос. Здесь вы говорите о выпуске HTML.

Если я сохраню созданный HTML, то я могу получить и отобразить его правильно, но при повторном редактировании я столкнулся с редактированием HTML, а не Markdown