Как организовать редактирование статей и хранение в БД на сайте
Объясните пожалуйста, как работают современные сайты со статьями, которые пишут пользователи, которые потом сохраняются в базу. Я предполагаю, что статьи редактируются во встроенных в сайт редактором (например, этот вопрос я пишу в таком редакторе). Насколько я знаю, он форматирует текст с помощью Markdown. В связи с этим у меня есть несколько связанных вопросов:
- Как установить общий стиль для такого текста? Если стиль сайта будет меняться (Например, каждый заголовок нумеруется по порядку и т.п., или блоку цитаты я захочу задать другой стиль)
- Как запретить встраиваемый код в текст редактора (чтобы не было возможности различных иньекций в код)? Область отображения статьи должна специальным образом парсить текст так, чтобы он воспринимался как текст, а не как часть сайта)... Через регулярки и разбор текста перед записью на сервер?
- Есть ли уже готовые бесплатные решения подобного рода, или необходимо писать собственный парсер?
Если эти проблемы решить, то, как я предполагаю, можно хранить такой текст в базе данных.
Как я это себе представляю сейчас: в телеграме сообщения форматируются с помощью markdown. Но там и не написать какой-нибудь встаиваемый код, т.к. сообщение - это отдельный объект, а не страница html с кучей наворотов и бессвязных дополнений. В базе, текст таких сообщений хранится в виде разметки, которая специальным образом преобразуется для отображения. С сайтами сложнее. Если разрешить пользователям писать текст в формате HTML, то может возникнуть риск встраиваемого кода (например, javaScript, или собственные стили для элементов). Markdown не парсится HTML... Предполагаю, что такая разметка с помощью какого-то движка конвертируется в HTML.
Пожалуйста, дайте наводки на технологии и темы, которые можно рассмотреть для изучения данного вопроса. Спасибо!