Commit Graph

43 Commits

Author SHA1 Message Date
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
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
48c90409b8 mod: Санитайзер для очистки от HTML (несколько режимов) 2025-10-28 23:46:38 +03:00
579903cc6d mod: двухпроходный конвейер типографа (теперь проблеы перед предлогами и кавычками не ломаются из-за html-тегов) 2025-10-12 20:16:02 +03:00
5adad34fa2 mod: Конвейер типографа с рекурсивным обходом DOM 2025-10-05 14:12:09 +03:00
b814504d1e add: Препозиционные сокращения ('AO', 'ЗАО', 'НКО', и прочее-прочее) 2025-10-03 01:14:28 +03:00
79cc4e03cf add: Препозиционные сокращения ('и.о.', 'т.о.', 'т.к.', 'т.е.' и прочее-прочее) 2025-10-03 01:00:03 +03:00
38e8e3229b add: Финальные сокращения ('т.д.', 'т.п.', 'др.' и 'пр.') 2025-10-01 13:10:11 +03:00
f1b59332f1 add: LayoutProcessor - обработка едениц измерения (кажется все++) 2025-09-22 01:35:50 +03:00
d096fb6ec8 add: LayoutProcessor - обработка едениц измерения (кажется все+) 2025-09-22 01:32:57 +03:00
21d85c984d add: LayoutProcessor - обработка едениц измерения (кажется все) 2025-09-22 01:27:45 +03:00
67c5bd805a add: LayoutProcessor - обработка едениц измерения (кажется все) 2025-09-22 01:04:38 +03:00
c3e65700b1 add: LayoutProcessor - обработка едениц измерения (draft) 2025-09-21 20:23:04 +03:00
a26c9107f2 add: LayoutProcessor - обработка тонких пробелов в инициалах и акронимах 2025-08-31 15:41:44 +03:00
39ef02884e mod: переименование переменных для символов 2025-08-22 15:37:02 +03:00
73fa57e47e mod: +приоритет языков и кавычки 2025-08-17 01:11:23 +03:00
40fd4b5891 mod: +++++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-11 22:18:06 +03:00
c4df3ba9c1 mod: +++++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-11 21:38:49 +03:00
960ec97093 mod: ++++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-09 11:31:30 +03:00
f052ec5eb1 mod: +++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-09 00:48:34 +03:00
a16d4f7416 mod: ++++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-08 18:16:35 +03:00
679c9770f0 mod: +++приоритеты и тесты html-мнемоник для decode_to_unicode() 2025-08-05 23:32:28 +03:00
34bd07bac0 mod: ++тесты html-мнемоник для decode_to_unicode() 2025-08-05 23:18:08 +03:00
3684088fd0 mod: +тесты html-мнемоник для decode_to_unicode() .. 2025-08-05 22:38:28 +03:00
134f3807b2 add: config.py как единый источник правды (на базе html.entities) 2025-08-03 20:00:59 +03:00
cf047a2552 mod: исправления utf <-> менемоники и тесты 2025-08-02 18:17:45 +03:00
27c950f28d mad: тест кодека, ещё больше html-мнемоник.. 2025-08-02 11:46:35 +03:00
6c29d3e5fb add: тест кодека html-мнемоник 2025-08-01 20:18:31 +03:00
3a61294d70 mod: еще больше html-мнемокода (стрелки2) 2025-07-30 16:06:16 +03:00
863ae131bc mod: еще больше html-мнемокода (стрелки) 2025-07-29 23:45:39 +03:00
6977b6ef88 mod: еще больше html-мнемокода (умляуты) 2025-07-28 15:26:51 +03:00
762edf671e mod: еще больше html-мнемокода (греческие) 2025-07-28 09:04:21 +03:00
359f766115 mod: еще больше html-мнемокода 2025-07-25 23:43:46 +03:00
7ff18dc2e8 add: codec (внутренний utf-8 и мнемокод для in/out 2025-07-21 14:46:13 +03:00
1c5fe77706 add: обработка html (теги исклчены из типографа). 2025-07-19 23:00:41 +03:00
6b72da89c4 add: неразрывные пробелы для предлогов, союзов, частиц и т.п. (с пре-позицией и пост-позицией) 2025-07-18 00:31:02 +03:00
f7ec259a7e mod: minor 2025-05-14 00:18:28 +03:00
b593c0148b add: русская дореволюционная орфография для переносов 2025-05-13 16:04:26 +03:00
5390e0583e add: изменение настроек типографа через defaults.py 2025-05-13 15:25:45 +03:00
f48dd5bb53 mod: minor . 2025-05-13 00:46:36 +03:00
f0b9784737 add: разделены правила для языков + провеки на языки-алфавиты 2025-05-12 18:36:05 +03:00
ab63e02634 add: настройки языков и режима перенесены в config 2025-05-11 21:55:07 +03:00
bc20296729 mod: разделение функциональности по файлам 2025-05-11 18:56:50 +03:00