fix: исправление мета-тегов, картинок, альтов под картинками и т.п.

This commit is contained in:
2026-01-31 01:48:09 +03:00
parent 884e00f730
commit 4791b9ed16
3 changed files with 74 additions and 60 deletions

View File

@@ -1,5 +1,6 @@
from django import template
from django.utils.safestring import mark_safe
import html
register = template.Library()
@@ -40,6 +41,25 @@ def humanize_num(value):
formatted = formatted.replace(",", " ").replace(".", ",")
return mark_safe(f"{formatted}{suffix}")
except (ValueError, TypeError):
return value
@register.filter(name='unescape')
def unescape_filter(value):
"""
Декодирует HTML-сущности (  -> ' ', — -> —)
и удаляет лишние пробелы и переводы строк.
Полезно для мета-тегов (title, description, og:title).
"""
if not value:
return ""
# 1. Декодируем сущности
text = html.unescape(str(value))
# 2. Удаляем лишние пробелы и переводы строк
# split() без аргументов разбивает по любым пробельным символам (\n, \t, space)
# " ".join(...) собирает обратно через один пробел
return " ".join(text.split())