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