mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
rss-formatting-preserve: сохранять абзацы и разметку из RSS (html_to_text/extract_full_text normalize; safe_html bleach для предпросмотра; пересборка старых постов)
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user