Я планирую включить Markdown в будущий проект. Раньше я просто использовал предварительно упакованный серверный анализатор Markdown, повторно продезинфицировал вывод HTML (ненужный шаг?) И отправил его клиенту.
Я заинтересован в разгрузке по крайней мере эта часть визуализации представления клиенту. Раньше я с большим успехом использовал клиентские парсеры Javascript Markdown в приложениях Rails. Я бы поручил объекту body наблюдать за вставками в DOM класса markdown-parseme
или тому подобного, а затем анализировать его и заменять исходный текст результатом.
Но я впервые Я рассматриваю это как место для производства в дикой природе. Каковы проблемы и проблемы безопасности, когда клиенту разрешается обрабатывать рендеринг Markdown? Существуют ли какие-либо конкретные библиотеки, которые учитывают эти проблемы?
РЕДАКТИРОВАТЬ: очевидное беспокойство, которое приходит в голову, это «а как насчет тех, у кого нет Javascript». В наших силах обнаружение браузеров, в которых не включен Javascript, и реализация механизма, который позволит клиентам (возможно, вручную) отмечать, что у них нет JS, и переносить синтаксический анализ на серверную сторону. Я бы очень хотел исследовать, есть ли серьезные проблемы с передачей анализа Markdown клиенту, помимо этого обычного вопроса совместимости. Рендеринг страницы приличного размера без кэширования вывода приводит к значительному увеличению времени ответа и, следовательно, нагрузки на сервер, и было бы хорошо, если бы мы могли с уверенностью перенести эту задачу с сервера для 95% пользователей.