Каков наилучший способ сохранить и отобразить введенный текст?
Я заметил, что редактор wmd может выводить HTML или уценку. Имеет ли смысл хранить ввод пользователя (в базе данных) как уценку или HTML? Если в качестве уценки лучше всего отображать ее на веб-странице позже (любые примеры были бы очень благодарны).
Учитывая, что рекомендация хранит его как уценку, существуют ли какие-либо стандартные конвертеры/таблицы стилей/что-то еще, чтобы фактически отобразить их после?
Ответы
Ответ 1
Я бы сказал, что проще хранить уценку в базе данных и обрабатывать ее в HTML при ее отображении.
Вы можете сохранить ввод как HTML, а затем, когда пользователь захочет его отредактировать, используйте что-то вроде markdownify, чтобы преобразовать его обратно в markdown - но вы действительно ничего не получаете и теряете много (исходное форматирование уценки, для одного). Это также довольно круто-бой (вы конвертируете уценку в HTML, храните ее. Затем конвертируйте HTML в уценку, разрешите пользователю редактировать его, преобразовать обратно в HTML и сохранить его.)
Если вас беспокоит производительность разборки разметки на каждом просмотре страницы: кешируйте выходной HTML-код где-то временным (в памяти или на диске). HTML легче воссоздать, чем исходная уценка
Ответ 2
Говоря от почти полного незнания уценки и wmd:
Если вы хотите, чтобы пользователь мог редактировать запись позже, не нужно ли хранить ее как уценку?
При извлечении/отображении вам нужно будет запустить его через средство рендеринга уценки.
Ответ 3
Шаг к этому почти 10-летнему вопросу случайно.
Смотрите Typora.io, он поддерживает все виды популярного экспорта файлов (который фактически основан на проекте pandoc).
Кроме того, пользовательский интерфейс редактирования великолепный.
Ответ 4
Похоже, что есть подробности о том, как сгенерировать соответствующий HTML для сохраненного уценки на другом потоке.
Ответ 5
Я думаю, что лучший способ разрешить последующее редактирование - хранить файл уценки. После того, как пользователь отредактировал или загрузил его, файл в синтаксисе уценки сохранит его и сгенерирует html и сохранит созданный html.
Вам нужно только "повторно генерировать" html, когда пользователь обновляет файл разметки.
Я не уверен, какую технологию вы используете, но есть процессор уценки python, там пигменты для выделения синтаксиса кода и python-markdown встроены в поддержку pygments, поэтому в одной строке вы получаете html из файла markdown и всего исходного кода выделены.
Вам нужно обновить css, чтобы включить стили для выделения кода, вы можете сбросить стиль по умолчанию из пигментов и прикрепить его к вашему стилю страницы.
Вот пример того, как использовать markdown и pygments с Blogger.