Сохранение содержимого редактора WMD - PullRequest
11 голосов
/ 24 сентября 2008

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

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

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

Ответы [ 2 ]

6 голосов
/ 24 сентября 2008

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

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

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

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

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

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

0 голосов
/ 24 сентября 2008

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

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

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

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

...