Django: Как заменить / перезаписать / обновить / изменить файл FileField?

Я планирую включить Markdown в будущий проект. Раньше я просто использовал предварительно упакованный серверный анализатор Markdown, повторно продезинфицировал вывод HTML (ненужный шаг?) И отправил его клиенту.

Я заинтересован в разгрузке по крайней мере эта часть визуализации представления клиенту. Раньше я с большим успехом использовал клиентские парсеры Javascript Markdown в приложениях Rails. Я бы поручил объекту body наблюдать за вставками в DOM класса markdown-parseme или тому подобного, а затем анализировать его и заменять исходный текст результатом.

Но я впервые Я рассматриваю это как место для производства в дикой природе. Каковы проблемы и проблемы безопасности, когда клиенту разрешается обрабатывать рендеринг Markdown? Существуют ли какие-либо конкретные библиотеки, которые учитывают эти проблемы?

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

5
задан Steven 24 January 2011 в 21:17
поделиться