mod: правки для версии 0.1.3
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Библиотека etpgrf: Контекст и Спецификация для LLM
|
||||
# Библиотека etpgrf: Контекст и Спецификация
|
||||
|
||||
Этот документ описывает архитектуру и API библиотеки `etpgrf` (Electro-Typographer), предназначенной для типографирования текста в вебе. Используйте этот контекст при разработке зависимых проектов (например, веб-сайтов).
|
||||
|
||||
@@ -16,14 +16,20 @@
|
||||
* **Язык:** Python 3.10+.
|
||||
* **Зависимости:** `beautifulsoup4`, `lxml`, `regex`.
|
||||
* **Главный класс:** `etpgrf.Typographer`.
|
||||
* **Принцип работы:**
|
||||
1. Принимает текст или HTML.
|
||||
2. Если HTML: парсит через `BeautifulSoup` (lxml), очищает от старой разметки (Sanitizer).
|
||||
3. Извлекает текстовые узлы, склеивает их в "супер-строку" для контекстных правил (кавычки).
|
||||
4. Применяет правила к тексту.
|
||||
5. Восстанавливает структуру HTML.
|
||||
6. Применяет висячую пунктуацию (модификация дерева DOM).
|
||||
7. Возвращает строку.
|
||||
* **Принцип работы (Pipeline):**
|
||||
1. **Анализ структуры:** Типограф проверяет, является ли входной текст полным HTML-документом (есть `<html>`, `<body>`) или фрагментом. Это важно для корректной сборки на выходе.
|
||||
2. **Парсинг и Санитизация:** Текст парсится через `BeautifulSoup` (предпочтительно `lxml`). Если включен санитайзер, происходит очистка от старой разметки (удаление висячей пунктуации или всех тегов).
|
||||
3. **Подготовка (Токенизация):** Извлекаются все текстовые узлы (`NavigableString`), которые склеиваются в одну "супер-строку". Это позволяет правилам видеть контекст через границы тегов (например, кавычка в `<b>` и слово после него).
|
||||
4. **Контекстная обработка:** К "супер-строке" применяются правила, требующие глобального контекста:
|
||||
* `QuotesProcessor`: расстановка кавычек.
|
||||
* `Unbreakables`: привязка предлогов и союзов.
|
||||
5. **Восстановление структуры:** Обработанная "супер-строка" аккуратно нарезается обратно и раскладывается по исходным текстовым узлам DOM-дерева.
|
||||
6. **Локальная обработка:** Запускается рекурсивный обход дерева. К каждому текстовому узлу применяются локальные правила:
|
||||
* `SymbolsProcessor`: псевдографика.
|
||||
* `LayoutProcessor`: тире, спецсимволы.
|
||||
* `Hyphenator`: расстановка переносов.
|
||||
7. **Висячая пунктуация:** Модифицируется само DOM-дерево. Символы пунктуации оборачиваются в теги `<span>` с классами для CSS-коррекции.
|
||||
8. **Финальная сборка:** Дерево сериализуется в строку. Если на входе был фрагмент, возвращается только содержимое `<body>`, чтобы не плодить лишние теги.
|
||||
|
||||
## 3. API: Класс Typographer
|
||||
|
||||
|
||||
Reference in New Issue
Block a user