mod: оптимизация CSS и спрятана часть tailwind "класс-колбас"
HYPN0 Build and Push Docker Image / build-and-push (push) Successful in 31s
HYPN0 Build and Push Docker Image / build-and-push (push) Successful in 31s
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import hashlib
|
||||
from html import unescape
|
||||
import re
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import models, transaction, IntegrityError
|
||||
from django.db.models import F
|
||||
@@ -159,6 +161,17 @@ class TbHypn0Item(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return f"{self.s_title} ({self.s_hash_id})"
|
||||
|
||||
@property
|
||||
def s_title_plain(self) -> str:
|
||||
"""
|
||||
Возвращает чистый заголовок картины без HTML-тегов и с декодированными мнемониками ( и др.)
|
||||
для безопасного использования в HTML-атрибутах (title, aria-label, alt, meta).
|
||||
"""
|
||||
if not self.s_title:
|
||||
return ""
|
||||
text = re.sub(r"<[^>]+>", "", self.s_title)
|
||||
return unescape(text).replace("\xa0", " ").strip()
|
||||
|
||||
def get_absolute_url(self) -> str:
|
||||
"""Возвращает канонический URL детальной страницы картины."""
|
||||
return reverse("hypn0_site:gallery_detail", kwargs={"hash_id": self.s_hash_id})
|
||||
@@ -564,6 +577,17 @@ class TbBlogPost(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return self.s_title
|
||||
|
||||
@property
|
||||
def s_title_plain(self) -> str:
|
||||
"""
|
||||
Возвращает чистый заголовок статьи без HTML-тегов и с декодированными мнемониками
|
||||
для безопасного использования в мета-тегах и атрибутах.
|
||||
"""
|
||||
if not self.s_title:
|
||||
return ""
|
||||
text = re.sub(r"<[^>]+>", "", self.s_title)
|
||||
return unescape(text).replace("\xa0", " ").strip()
|
||||
|
||||
def get_absolute_url(self) -> str:
|
||||
"""Возвращает канонический URL статьи блога."""
|
||||
return f"/blog/{self.slug}" if self.slug else f"/blog/{self.pk}"
|
||||
|
||||
Reference in New Issue
Block a user