Журнал изменений
На этой странице задокументированы заметные изменения в проекте: настоящего сайта для онлайн-типографа и библиотеки 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
Коммит: 846c066v0.1.7 — 2026–01–23
Коммит: d74bee2v0.1.6 — 2026–01–23
Коммит: 6b4dbafv0.1.5 — 2026–01–21
Коммит: 78174a8v0.1.4 — 2026–01–20
Коммит: 2d09aefv0.1.3 — 2026–01–19
Коммит: 66f2228v0.1.2 — 2026–01–18
Коммит: 92711f5v0.1.1 — 2026–01–16
v0.1.1 Коммит: 5d5d48dv0.1.0 — 2026–01–16
Коммит: 3a7bb29Библиотека etpgrf
Исходный код etpgrf-типографа доступен в нескольких репозиториях (GitHub, GitVerse, Сube2, и PyPI), распространяется под лицензией MIT, может быть установлен локально, на ваш сайт или интегрирован в ваши проекты как Python-библиотека.
[0.1.6.post1] - 2026–03–19
Изменено
- Новый алгоритм «висячей пунктуации» (HangingPunctuationProcessor). Добавлены компенсирующие
пробелы для висячих символов, чтобы избежать наложения на соседние слова. Теперь «висячие символы» (кавычки,
скобки и т. п.) оборачиваются в
<span>вместе с ближайшим словом и пробелом, что обеспечивает отсутствие визуальных смещений внутри строки. Режимboth(для одновременного вывешивания в обе стороны) отключен из-за потенциальных конфликтов компенсирующих пробелов и проблем с выравниванием при использовании CSStext-justify.
Исправлено
- Автоматическая замена символов
x,X,х,Х, стоящих между числами, на знак умножения×, чтобы выражения вида100x100или100 х 100корректно обрабатывались и выглядели типографски правильными (100×100или100 × 100).
[0.1.5] - 2026–02–27
Исправлено
- Исправлена ошибка, из-за которой
&в исходном тексте некорректно преобразовывался в&. Теперь&; и его маскирование (&amp;,&lt;и т. д.) сохраняются в итоговом HTML. - Исправлена (частично) расстановка неразрывных пробелов
на границах закрывающих тегов (например,<b>Текст</b> — словотеперь корректно обрабатывается, в<b>Текст</b> — слово).
[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).