From bb1fcc71e04ccf7e84773053b91e3f7751236e73 Mon Sep 17 00:00:00 2001 From: erjemin Date: Fri, 27 Feb 2026 01:04:13 +0300 Subject: [PATCH] mod: v0.1.5 --- CHANGELOG.md | 7 ++++++- README.md | 14 +++++++++++--- etpgrf/__init__.py | 15 ++------------- pyproject.toml | 2 +- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39b6edc..c58a740 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,12 @@ Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.1.4] - 2025-02-03 +## [0.1.5] - 2024-02-18 +### Исправлено +- Исправлена ошибка, из-за которой `&` в исходном тексте некорректно преобразовывался в `&`. Теперь `&` и его варианты (`&`, `<`) сохраняются в итоговом HTML. +- Исправлена (частично) расстановка неразрывных пробелов ` ` на границах закрывающих тегов (например, `Текст -- слово` теперь корректно обрабатывается, в `Текст &endash; слово`). + +## [0.1.4] - 2024-02-13 ### Изменено - **Архитектурное улучшение:** Полностью переработан механизм обработки HTML. - Внедрены **маркеры границ узлов** (`\uFFFF`) при сборке текста. Это позволяет корректно восстанавливать структуру HTML даже если длина текста изменилась в процессе обработки (например, при удалении лишних пробелов). diff --git a/README.md b/README.md index 0626093..9371c3d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![License](https://img.shields.io/pypi/l/etpgrf.svg)](https://pypi.org/project/etpgrf/) -# Типограф для веба +# Типограф для веба Экранная типографика для веба — способствует повышению читабельности текста в интернете, приближая его к печатной типографике. @@ -14,12 +14,12 @@ Исходный код доступен на нескольких площадках: * [Gitea](https://git.cube2.ru/erjemin/2025-etpgrf) (Основной self-hosted) -* [GitHub](https://github.com/erjemin/etpgrf) (Главное зеркало & homepage/issues) +* [GitHub](https://github.com/erjemin/etpgrf) (Главное зеркало) * [GitVerse](https://gitverse.ru/erjemin/etpgrf) (Зеркало на GitVerse) ## Демострация / Demo -Работа etpgrf-типографа представлена по адресу: [typograph.cube2.ru](https://typograph.cube2.ru/). Подготовьте верстку +Работа etpgrf-типографа представлена по адресу: [typograph.cube2.ru](https://typograph.cube2.ru/). Подготовьте верстку вашего текста, сайтов, статей и постов к публикации в интернете за один клик. ## Установка @@ -352,6 +352,14 @@ typo = etpgrf.Typographer(hanging_punctuation=['blockquote', 'h2', 'h3']) .etp-r-dot, .etp-r-comma, .etp-r-colon { right: -0.15em; } /* . , : */ ``` +## Известные особенности и ограничения + +При обработке сложного HTML-кода типограф стремится сохранить структуру документа, но некоторые пограничные случаи могут обрабатываться не так, как ожидается. В частности: + +* **Обработка на стыке тегов:** Правила, требующие анализа контекста (например, расстановка неразрывных пробелов у тире или единиц измерения), могут работать некорректно, если анализируемые части текста разделены тегами . Например, конструкция `$100` не будет обработана (между $ и 100 не будет вставлен неразрывный пробел), так как типограф не видит их как соседние элементы. +* **"Ремонт" HTML:** Библиотека использует `BeautifulSoup` для парсинга, который может "чинить" невалидный HTML (например, закрывать незакрытые теги). Это может привести к неожиданным изменениям в структуре, если исходный код был некорректен. Так же может меняться порядок атрибутов тега. + +Мы знаем об этих особенностях и работаем над улучшением алгоритмов для более точной обработки сложных случаев. ## P.S. diff --git a/etpgrf/__init__.py b/etpgrf/__init__.py index 7b52cb0..88c877c 100644 --- a/etpgrf/__init__.py +++ b/etpgrf/__init__.py @@ -8,19 +8,8 @@ etpgrf - библиотека для экранной типографики т - Висячая пунктуация - Очистка и обработка HTML """ -__version__ = "0.1.4" +__version__ = "0.1.5" __author__ = "Sergei Erjemin" __email__ = "erjemin@gmail.com" __license__ = "MIT" -__copyright__ = "Copyright 2025 Sergei Erjemin" - -import etpgrf.defaults -import etpgrf.logger - -from etpgrf.hyphenation import Hyphenator -from etpgrf.layout import LayoutProcessor -from etpgrf.quotes import QuotesProcessor -from etpgrf.sanitizer import SanitizerProcessor -from etpgrf.symbols import SymbolsProcessor -from etpgrf.typograph import Typographer -from etpgrf.unbreakables import Unbreakables +__copyright__ = "(с) 2025-2026, Sergei Erjemin" diff --git a/pyproject.toml b/pyproject.toml index de3d17b..58c8d1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "etpgrf" -version = "0.1.4" +version = "0.1.5" description = "Electro-Typographer: Python library for advanced web typography (non-breaking spaces, hyphenation, hanging punctuation and ." readme = "README.md" requires-python = ">=3.10"