56 Commits

Author SHA1 Message Date
erjemin d092cbdb5c add: правило для × 2026-03-19 13:16:40 +03:00
erjemin 465dd9e9e6 mod: улучшен алгоритм висячей пунктуации для правого вывешивания. Изменения в левом вывешивании. 2026-03-19 11:03:30 +03:00
erjemin 14ac3682ee mod: еще немного тестов левой висячей пунктуации. 2026-03-17 14:58:22 +03:00
erjemin ce3d1c146a mod: новая схема висячей левой пунктуации (с компенсирующими пробелами) 2026-03-16 13:27:39 +03:00
erjemin c7d8b18c68 ---: minor 2026-03-07 02:14:25 +03:00
erjemin 913f28f2f3 add: санитайзинг плейсхолдеров 2026-03-05 03:31:30 +03:00
erjemin 125c9560b4 mod: добавлены "компенсирующие" пробелы + немного оптимизации в конфигах. 2026-03-05 03:17:48 +03:00
erjemin 9695fe80aa mod: Отключена опция 'both' для висячей пунктуации 2026-03-04 16:00:51 +03:00
erjemin d917634787 fix: ошибка, когда тире приходится на границу еденицы измерения. 2026-02-26 19:10:55 +03:00
erjemin ace8b61ae3 fix: исправлено удаление двойного экранирования & 2026-02-26 14:29:54 +03:00
erjemin 00c80b79f1 mod: Use node separators and placeholders for robust HTML processing
1. Защита тегов: Защищенные теги (<code>, <script> и т.д.) теперь физически заменяются на плейсхолдеры (\uFFFC) в DOM-дереве перед обработкой. Это предотвращает "протекание" контекста (например, склеивание слов через код) и защищает содержимое тегов от изменений.

2. Маркеры границ: При сборке "супер-строки" (для контекстной обработки) между всеми текстовыми узлами вставляются специальные разделители (\uFFFF). Это позволяет корректно восстанавливать текст по узлам, даже если длина текста изменилась (например, Unbreakables удалил лишние пробелы). Раньше мы полагались на карту длин (lengths_map), что приводило к смещению текста при любых изменениях длины.
2026-02-03 02:04:46 +03:00
erjemin f3a651a54f fix: Protect tags with placeholders to prevent text shifting and context leakage
1. Защита тегов: Внедрили механизм _hide_protected_tags / _restore_protected_tags с использованием плейсхолдера ___ETPGRF_PROTECTED___. Это решило проблему "протекания" контекста через защищенные теги (например, союз "и" больше не прыгает через <code>).

2. Фикс тестов: Обновили тесты, чтобы они учитывали реальное поведение BeautifulSoup (закрытие тегов) и Unbreakables (схлопывание пробелов).
2026-02-03 00:57:46 +03:00
erjemin d94815d7ee mod: избавляемся от паразитного "обертывания" в <html> и <body>... 2026-01-11 18:41:42 +03:00
erjemin cb31c5a3b7 add: добавлены тесты, для проверки обёртывания в <html> и <body> 2026-01-11 17:08:41 +03:00
erjemin 22ddf6ef11 add: Висячая пунктуация работает (кроме редких случаев когда пробел, или его отуствие, попадает на следующий bs-узел) 2025-12-23 17:10:56 +03:00
erjemin cd1be6bf27 mod: Санитайзер добавлен в конвейер типографа 2025-12-19 14:33:46 +03:00
erjemin 48c90409b8 mod: Санитайзер для очистки от HTML (несколько режимов) 2025-10-28 23:46:38 +03:00
erjemin 57fb4914d8 mod: немного описания в тесте самозакрывающихся тегов 2025-10-28 23:45:14 +03:00
erjemin 579903cc6d mod: двухпроходный конвейер типографа (теперь проблеы перед предлогами и кавычками не ломаются из-за html-тегов) 2025-10-12 20:16:02 +03:00
erjemin 4e26952c8b mod: закрывающая кавычка перед точкой + 2025-10-09 12:27:58 +03:00
erjemin d77f1db5c2 mod: закрывающая кавычка перед точкой 2025-10-09 12:18:32 +03:00
erjemin 78604a83f5 mod: тесты конвейера + 2025-10-05 18:12:34 +03:00
erjemin fff9dda8a0 mod: исправлена ошибка с союзом "и" и "как" 2025-10-05 18:07:08 +03:00
erjemin 5adad34fa2 mod: Конвейер типографа с рекурсивным обходом DOM 2025-10-05 14:12:09 +03:00
erjemin b814504d1e add: Препозиционные сокращения ('AO', 'ЗАО', 'НКО', и прочее-прочее) 2025-10-03 01:14:28 +03:00
erjemin 79cc4e03cf add: Препозиционные сокращения ('и.о.', 'т.о.', 'т.к.', 'т.е.' и прочее-прочее) 2025-10-03 01:00:03 +03:00
erjemin 38e8e3229b add: Финальные сокращения ('т.д.', 'т.п.', 'др.' и 'пр.') 2025-10-01 13:10:11 +03:00
erjemin fb9d7f9072 add: LayoutProcessor - обработка едениц измерения (кажется все++ и реализована безопасность от CHAR_UNIT_SEPARATOR) 2025-09-22 10:26:25 +03:00
erjemin 21d85c984d add: LayoutProcessor - обработка едениц измерения (кажется все) 2025-09-22 01:27:45 +03:00
erjemin 67c5bd805a add: LayoutProcessor - обработка едениц измерения (кажется все) 2025-09-22 01:04:38 +03:00
erjemin c3e65700b1 add: LayoutProcessor - обработка едениц измерения (draft) 2025-09-21 20:23:04 +03:00
erjemin a26c9107f2 add: LayoutProcessor - обработка тонких пробелов в инициалах и акронимах 2025-08-31 15:41:44 +03:00
erjemin 4918645496 add: LayoutProcessor - обработка неразрывных пробелов вокруг тире и инициалов 2025-08-25 18:15:10 +03:00
erjemin 9a37467bfc add: SymbolsProcessor - обработка тире и псевдографики 2025-08-22 15:45:38 +03:00
erjemin 39ef02884e mod: переименование переменных для символов 2025-08-22 15:37:02 +03:00
erjemin b4248db063 add: обработка кавычек 2025-08-17 01:12:09 +03:00
erjemin 40fd4b5891 mod: +++++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-11 22:18:06 +03:00
erjemin c4df3ba9c1 mod: +++++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-11 21:38:49 +03:00
erjemin 960ec97093 mod: ++++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-09 11:31:30 +03:00
erjemin a16d4f7416 mod: ++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-08 18:16:35 +03:00
erjemin 679c9770f0 mod: +++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-05 23:32:28 +03:00
erjemin 34bd07bac0 mod: ++тесты html-мнемоник для decode_to_unicode() 2025-08-05 23:18:08 +03:00
erjemin 3684088fd0 mod: +тесты html-мнемоник для decode_to_unicode() .. 2025-08-05 22:38:28 +03:00
erjemin 65970f3170 mod: тесты всех html-мнемоник для decode_to_unicode() . 2025-08-05 12:40:31 +03:00
erjemin 1684649607 mod: тесты всех html-мнемоник для decode_to_unicode() 2025-08-05 12:29:32 +03:00
erjemin 134f3807b2 add: config.py как единый источник правды (на базе html.entities) 2025-08-03 20:00:59 +03:00
erjemin cf047a2552 mod: исправления utf <-> менемоники и тесты 2025-08-02 18:17:45 +03:00
erjemin 27c950f28d mad: тест кодека, ещё больше html-мнемоник.. 2025-08-02 11:46:35 +03:00
erjemin 6ad0da6097 add: тест кодека html-мнемоник. 2025-08-02 11:01:32 +03:00
erjemin 6c29d3e5fb add: тест кодека html-мнемоник 2025-08-01 20:18:31 +03:00