diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e97f4b..feef195 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Semantic Versioning](https://semver.org/lang/ru/). +## [0.2.4] - 2025-02-12 + +### Добавлено +- Микроразметка `Schema.org` (JSON-LD) для постов и страниц для улучшения SEO и понимания контента поисковиками и ИИ. +- Файл `llms.txt` для предоставления информации о сайте и API для больших языковых моделей (LLM). +- Кастомный фильтр `unescape` для очистки мета-тегов от HTML-сущностей и переводов строк. + +### Исправлено +- Исправлена ошибка, при которой счетчик символов не обновлялся при восстановлении вкладки из истории браузера. +- Исправлена ошибка экранирования кавычек в JSON-LD, Title и Description. +- Перезапуск watchtower при его остановке. + ## [0.2.3] - 2025-02-11 ### Изменено diff --git a/config/nginx/etpgrf--internal-nginx.conf b/config/nginx/etpgrf--internal-nginx.conf index 511ffec..324ce72 100644 --- a/config/nginx/etpgrf--internal-nginx.conf +++ b/config/nginx/etpgrf--internal-nginx.conf @@ -99,6 +99,14 @@ http { expires 30d; } + # llms.txt (для ИИ) + location = /llms.txt { + alias /app/public/static_collected/llms.txt; + access_log off; + log_not_found off; + expires 30d; + } + location / { # --- ЗАЩИТА ОТ БРУТФОРСА --- # Применяем зону 'one', разрешаем "всплеск" до 10 запросов. diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 7edcb95..14f1459 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -112,6 +112,7 @@ services: # Если нужно указать реестр явно (обычно watchtower сам понимает из имени образа) # - WATCHTOWER_REGISTRY_URL=git.cube2.ru command: --interval 1800 --cleanup # Проверять каждые 30 минут + restart: always volumes: diff --git a/etpgrf_site/__init__.py b/etpgrf_site/__init__.py index 1301720..c4cc724 100644 --- a/etpgrf_site/__init__.py +++ b/etpgrf_site/__init__.py @@ -2,7 +2,7 @@ Основные возможности: - Веб-интерфейс для ввода текста и настройки параметров типографики. """ -__version__ = "0.2.2" +__version__ = "0.2.4" __author__ = "Sergei Erjemin" __email__ = "erjemin@gmail.com" __license__ = "MIT" diff --git a/etpgrf_site/blog/templates/blog/page_detail.html b/etpgrf_site/blog/templates/blog/page_detail.html index 2a500df..06ad7f6 100644 --- a/etpgrf_site/blog/templates/blog/page_detail.html +++ b/etpgrf_site/blog/templates/blog/page_detail.html @@ -1,13 +1,32 @@ {% extends 'typograph/base.html' %} -{% load static %} -{% load typograph_extras %} - - +{% load static typograph_extras %} +{# --- SEO --- #} {% block title %}{% if page.seo_title %}{{ page.seo_title }}{% else %}{{ page.title|striptags|unescape|safe }}{% endif %} — ETPGRF{% endblock %} {% block description %}{% if page.seo_description %}{{ page.seo_description }}{% else %}{{ page.excerpt|striptags|unescape|safe|truncatechars:160 }}{% endif %}{% endblock %} {% block keywords %}{% if page.seo_keywords %}{{ post.seo_keywords }}{% else %}типограф, типографика, блог типограф, онлайн типограф, подготовка текста для веба, html типограф, неразрывные пробелы, кавычки елочки, длинное тире, очистка текста от мусора, интернет верстка, муравьев, лебедев{% endif %}{% endblock %} +{# --- Schema.org --- #} + {% block schema %}{% endblock %} + {% block og_title %}{% if page.seo_title %}{{ page.seo_title }}{% else %}{{ page.title|striptags|unescape|safe }}{% endif %}{% endblock %} {% block og_description %}{% if page.seo_description %}{{ page.seo_description }}{% else %}{{ page.excerpt|safe|striptags|unescape|truncatechars:160 }}{% endif %}{% endblock %} {% block og_image %}{% if page.image %}{{ request.scheme }}://{{ request.get_host }}{{ page.image.url }}{% else %}{{ request.scheme }}://{{ request.get_host }}{% static 'img/etpgrf-logo-for-fb-vk-x.gif' %}{% endif %}{% endblock %} @@ -31,7 +50,6 @@ {# Правая колонка: Контент #}