# rss-formatting-preserve Сохранять форматирование RSS-новостей (абзацы, разметка) при скачивании и в предпросмотре. ## Why Пользователь: в RSS omarchy внутри текста новости есть HTML-символы, мы их выкидываем из текста, поэтому вся новость в предпросмотре — сплошной текст, ничего не понять. Нужно при скачивании из RSS сохранять заложенное форматирование. ## What Changes - **crawler/rss_crawler.py**: html_to_text() вставляет переносы вокруг блочных тегов (p/li/h1-6/blockquote/pre), чтобы абзацы и списки сохранялись; parse_entries() больше не схлопывает все пробелы в один — нормализует: 3+ переноса → 2, пробелы по краям строк убираются, внутренние сохраняются. - **web/app.py**: новый фильтр `safe_html` (bleach.clean allowlist + linkify) для безопасного рендера HTML-разметки исходных RSS-текстов в предпросмотре. - **web/templates/candidates.html / selected.html**: `| safe_html` для `selected.text`. - **requirements.txt**: +bleach. ## Impact - Тексты в БД: появляются абзацы (\n\n), форматирование сохраняется читаемым. - Предпросмотр кандидатов/отобранных: разметка (b/i/a/списки) рендерится безопасно. - Markdown-пересказы (rewritten_text) и комментарии не задеваются — md_filter без изменений. - Публикация (card.py) — plain text, абзацы \n\n дойдут в Telegram.