16.янв.2026

Журнал изменений

На этой странице задокумен­тированы заметные изменения в проекте: настоящего сайта для онлайн-типографа и библиотеки etpgrf.

Формат основан на Keep a Changelog, и придер­живается Semantic Versioning.

Сайт typograph.cube2.ru

Исходный код сайта онланй-типографа etpgrf доступен в нескольких репози­ториях (GitHub, GitVerse и Сube2. Наиболее заметные изменения сайта онлайн-типографа приводятся ниже в хронологическом порядке. Для полного списка изменений, включая мелкие фиксы и коммиты, пожалуйста, обратитесь к истории репозитория.

[0.2.8] - 2026–10–04

Добавлено
  • Локальная статика для внешних фронтенд-библиотек (Bootstrap 5, Bootstrap Icons, HTMX, Alpine.js, CodeMirror 6) для работы интер­фейса при недос­тупности CDN.
  • Стратегия fallback-подключения в шаблонах: автома­тическое переклю­чение на локальную статику при сбое или блокировке CDN.
  • Скрипт копиро­вания production-ассетов frontend-assembly/copy-vendor.js и обновление сборки через frontend-assembly/assembly_via_npm.sh.
  • Автомати­ческие тесты проверки наличия стати­ческих вендорных ассетов и коррект­ности ренде­ринга fallback-подключений в typograph/tests.py.
Изменено
  • Обновлен и структу­рирован .gitignore с подроб­ными коммен­тариями.

[0.2.7] - 2026–03–22

Изменено
  • Обновление всех пактов, включая etpgrf (v0.1.5 → v0.1.6.post1).

Исправлено

  • canonical для страниц учитывает https/http.

[0.2.6] - 2026–02–28

Изменено
  • Подключена новая версия библиотеки etpgrf (v0.1.4 → v0.1.5).

[0.2.5] — 2026–02–13

Добавлено
  • Редизайн списка постов в блоге: шахматный порядок, вертикальные разделители, улучшенная адаптивность для мобильных устройств.
  • Поле updated_at (Дата обновления) в модели, админке, блогах, страницах, sitemaps.xml и микро­разметке Schema.org для улучшения SEO, GEO и LLMO.
  • README.md с описанием проекта онлайн-типографа, его особенностей, технического стека и инструкциями по установке и запуску.
  • Отображение заголовков постов в списке админки без HTML-мнемоник (декоди­рование   и др.).
Изменено
  • Исправлены ошибки в шаблоне post_list.html (и полностью переработан дизайн в целом).
    • Улучшено отображение даты и скрытие декоративных изображений в списке постов на мобильных устройствах.
    • Оптими­зированы отступы и типографика в списке постов.
  • Формирование slug из title при сохранении поста или страницы с исполь­зованием библиотеки pytils для трансли­терации с очистикой от HTML-мнемоник и создания URL-дружес­твенных строк.
  • Дизайн и вёрстка страниц для постов блога и вспомо­гательных страниц для мобильных устройств (адаптивность, скрытие картинки-обложки).

[0.2.4] — 2026–02–12

Добавлено
  • Микро­разметка Schema.org (JSON-LD) для постов и страниц для улучшения SEO и понимания контента поисковиками и ИИ.
  • Файл llms.txt для предоста­вления информации о сайте и API для больших языковых моделей (LLM) в соответвиии со стандартом GEO и LLMO.
  • Кастомный фильтр unescape для очистки мета-тегов от HTML-сущностей и переводов строк.
Исправлено
  • Исправлена ошибка, при которой счетчик символов не обновлялся при восста­новлении вкладки из истории браузера.
  • Исправлена ошибка экрани­рования кавычек в JSON-LD, Title и Description.
  • В docker-compose.yaml додавлен перезапуск watchtower при его остановке.

[0.2.3] — 2026–02–11

Изменено
  • Добавлена кнопка очистки текста во вводном поле и счетчик вводимых символов.

[0.2.2] — 2026–02–03

Изменено
  • В онлайн-типографе подключена новая версия библиотеки etpgrf (v0.1.3 → v0.1.4).
  • Незначи­тельные улучшения в оформлении.

v0.2.1 — 2026–01–30

Исправлено
  • Исправление ошибок при формировании мета-тегов, картинок, alt под картинками и т. п.
  • Исправлена ошибка в настройках nginx внутри docker-контейнера возникавшая при отдаче media-файлов.
Изменено
  • При создании записи в блог или страницы «тизер» обязателен!

v0.2.0 — 2026–01–28

Добавлено
  • Приложение blog (для страниц и постов) и соответ­ствующие изменения в моделях базы, добавление новых view и шаблонов.
  • Песочница (шаблон blog/templates/blog/tmp.html для тестирования верстки (доступен только в режиме debug).
  • Динамическое создание sitemap.xml
  • robots.txt
  • Изменения в шапке сайта (меню и бургер)
Изменено
  • Спрятан url админки типографа. Его расположение теперь задается через переменные окружения в .env.
  • favicon.ico оптими­зирована для Яндекс (120х120px).
  • Исправлено поведение шапки и логотива для мобильных устройств.

v0.1.8 — 2026–01–23

Коммит: 846c066

v0.1.7 — 2026–01–23

Коммит: d74bee2

v0.1.6 — 2026–01–23

Коммит: 6b4dbaf

v0.1.5 — 2026–01–21

Коммит: 78174a8

v0.1.4 — 2026–01–20

Коммит: 2d09aef

v0.1.3 — 2026–01–19

Коммит: 66f2228

v0.1.2 — 2026–01–18

Коммит: 92711f5

v0.1.1 — 2026–01–16

v0.1.1 Коммит: 5d5d48d

v0.1.0 — 2026–01–16

Коммит: 3a7bb29

Библиотека etpgrf

Исходный код etpgrf-типографа доступен в нескольких репози­ториях (GitHub, GitVerse, Сube2, и PyPI), распрос­траняется под лицензией MIT, может быть установлен локально, на ваш сайт или интегри­рован в ваши проекты как Python-библиотека.

[0.1.6.post1] - 2026–03–19

Изменено
  • Новый алгоритм «висячей пунктуации» (HangingPunctuationProcessor). Добавлены компенси­рующие пробелы для висячих символов, чтобы избежать наложения на соседние слова. Теперь «висячие символы» (кавычки, скобки и т. п.) обора­чиваются в <span> вместе с ближайшим словом и пробелом, что обеспечивает отсутствие визуальных смещений внутри строки. Режим both (для одновре­менного вывешивания в обе стороны) отключен из-за потенци­альных конфликтов компенси­рующих пробелов и проблем с выравни­ванием при исполь­зовании CSS text-justify.

Исправлено

  • Автоматическая замена символов x, X, х, Х, стоящих между числами, на знак умножения ×, чтобы выражения вида 100x100 или 100 х 100 корректно обрабатывались и выглядели типографски правильными (100×100 или 100&nbsp;×&nbsp;100).

[0.1.5] - 2026–02–27

Исправлено
  • Исправлена ошибка, из-за которой &amp; в исходном тексте некорректно преобразовывался в &. Теперь &amp;; и его маскирование (&amp;amp;, &amp;lt; и т. д.) сохраняются в итоговом HTML.
  • Исправлена (частично) расстановка неразрывных пробелов &nbsp; на границах закрывающих тегов (например, <b>Текст</b> — слово теперь корректно обрабатывается, в <b>Текст</b>&nbsp;— слово).

[0.1.4] - 2026–02–03

Изменено
  • Архите­ктурное улучшение: Полностью переработан механизм обработки HTML.
  • Внедрены маркеры границ узлов (\uFFFF) при сборке текста. Это позволяет корректно восста­навливать структуру HTML даже если длина текста изменилась в процессе обработки (например, при удалении лишних пробелов).
  • Внедрены плейсхолдеры (\uFFFC) для защищенных тегов (<code>, <script> и др.). Теперь содержимое этих тегов физически изолируется перед обработкой, что предот­вращает «протекание» контекста (например, склеивание слов, разделенных кодом).
Исправлено
  • Исправлена ошибка смещения текста при наличии спецсимволов (мнемоник) или при изменении длины строки.
  • Исправлена обработка кавычек, стоящих вплотную к границам тегов (например, "<b>Текст</b>").

v0.1.3 — 2026–01–11

Исправлено
  • Исправлена проблема с появлением лишних тегов <html> и <body> при обработке фрагментов HTML (когда исполь­зуется парсер lxml). Теперь типограф автома­тически определяет, был ли на входе полноценный документ или фрагмент, и возвращает соответ­ствующий результат.

v0.1.2 — 2025–12–27

Исправлено
  • Критическое исправление: Добавлена отсут­ствующая зависимость regex в pyproject.toml. Без неё библиотека падала при импорте.

v0.1.1 — 2025–12–23

Добавлено
  • Ссылки на зеркала репозитория (GitVerse, Gitea) в pyproject.toml и README.md.
  • Раздел Credits в документации.

v0.1.0 — 2025–12–23

Добавлено
  • Первый публичный релиз библиотеки etpgrf.
  • Основные модули:
    • Typographer: основной класс-оркестратор.
    • Hyphenator: расстановка мягких переносов (алгоритм Ляна-Кнута).
    • QuotesProcessor: замена кавычек («ёлочки», „лапки“).
    • Unbreakables: неразрывные пробелы для предлогов, союзов и частиц.
    • LayoutProcessor: типографика тире, инициалов, акронимов, единиц измерения, устойчивых сокращений (постпо­зиционных и препози­ционных).
    • SymbolsProcessor: псевдо­графика (тире, стрелочки, копирайт и т. п.)
    • HangingPunctuationProcessor: висячая пунктуация.
    • SanitizerProcessor: очистка HTML перед обработкой.
  • Поддержка русского, русского дорефо­рменного и английского языков.
  • Поддержка обработки HTML (через BeautifulSoup).