mod: v0.1.5
This commit is contained in:
@@ -5,7 +5,12 @@
|
|||||||
Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
Формат основан на [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
и этот проект придерживается [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [0.1.4] - 2025-02-03
|
## [0.1.5] - 2024-02-18
|
||||||
|
### Исправлено
|
||||||
|
- Исправлена ошибка, из-за которой `&` в исходном тексте некорректно преобразовывался в `&`. Теперь `&` и его варианты (`&`, `<`) сохраняются в итоговом HTML.
|
||||||
|
- Исправлена (частично) расстановка неразрывных пробелов ` ` на границах закрывающих тегов (например, `<b>Текст</b> -- слово` теперь корректно обрабатывается, в `Текст</b> &endash; слово`).
|
||||||
|
|
||||||
|
## [0.1.4] - 2024-02-13
|
||||||
### Изменено
|
### Изменено
|
||||||
- **Архитектурное улучшение:** Полностью переработан механизм обработки HTML.
|
- **Архитектурное улучшение:** Полностью переработан механизм обработки HTML.
|
||||||
- Внедрены **маркеры границ узлов** (`\uFFFF`) при сборке текста. Это позволяет корректно восстанавливать структуру HTML даже если длина текста изменилась в процессе обработки (например, при удалении лишних пробелов).
|
- Внедрены **маркеры границ узлов** (`\uFFFF`) при сборке текста. Это позволяет корректно восстанавливать структуру HTML даже если длина текста изменилась в процессе обработки (например, при удалении лишних пробелов).
|
||||||
|
|||||||
10
README.md
10
README.md
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
Исходный код доступен на нескольких площадках:
|
Исходный код доступен на нескольких площадках:
|
||||||
* [Gitea](https://git.cube2.ru/erjemin/2025-etpgrf) (Основной self-hosted)
|
* [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)
|
* [GitVerse](https://gitverse.ru/erjemin/etpgrf) (Зеркало на GitVerse)
|
||||||
|
|
||||||
## Демострация / Demo
|
## Демострация / Demo
|
||||||
@@ -352,6 +352,14 @@ typo = etpgrf.Typographer(hanging_punctuation=['blockquote', 'h2', 'h3'])
|
|||||||
.etp-r-dot, .etp-r-comma, .etp-r-colon { right: -0.15em; } /* . , : */
|
.etp-r-dot, .etp-r-comma, .etp-r-colon { right: -0.15em; } /* . , : */
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Известные особенности и ограничения
|
||||||
|
|
||||||
|
При обработке сложного HTML-кода типограф стремится сохранить структуру документа, но некоторые пограничные случаи могут обрабатываться не так, как ожидается. В частности:
|
||||||
|
|
||||||
|
* **Обработка на стыке тегов:** Правила, требующие анализа контекста (например, расстановка неразрывных пробелов у тире или единиц измерения), могут работать некорректно, если анализируемые части текста разделены тегами . Например, конструкция `$<b>100</b>` не будет обработана (между $ и 100 не будет вставлен неразрывный пробел), так как типограф не видит их как соседние элементы.
|
||||||
|
* **"Ремонт" HTML:** Библиотека использует `BeautifulSoup` для парсинга, который может "чинить" невалидный HTML (например, закрывать незакрытые теги). Это может привести к неожиданным изменениям в структуре, если исходный код был некорректен. Так же может меняться порядок атрибутов тега.
|
||||||
|
|
||||||
|
Мы знаем об этих особенностях и работаем над улучшением алгоритмов для более точной обработки сложных случаев.
|
||||||
|
|
||||||
## P.S.
|
## P.S.
|
||||||
|
|
||||||
|
|||||||
@@ -8,19 +8,8 @@ etpgrf - библиотека для экранной типографики т
|
|||||||
- Висячая пунктуация
|
- Висячая пунктуация
|
||||||
- Очистка и обработка HTML
|
- Очистка и обработка HTML
|
||||||
"""
|
"""
|
||||||
__version__ = "0.1.4"
|
__version__ = "0.1.5"
|
||||||
__author__ = "Sergei Erjemin"
|
__author__ = "Sergei Erjemin"
|
||||||
__email__ = "erjemin@gmail.com"
|
__email__ = "erjemin@gmail.com"
|
||||||
__license__ = "MIT"
|
__license__ = "MIT"
|
||||||
__copyright__ = "Copyright 2025 Sergei Erjemin"
|
__copyright__ = "(с) 2025-2026, 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
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "etpgrf"
|
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 ."
|
description = "Electro-Typographer: Python library for advanced web typography (non-breaking spaces, hyphenation, hanging punctuation and ."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|||||||
Reference in New Issue
Block a user