Commit Graph

79 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
aa2112669f mod: правки для версии 0.1.3 2026-01-11 19:04:04 +03:00
d94815d7ee mod: избавляемся от паразитного "обертывания" в <html> и <body>... 2026-01-11 18:41:42 +03:00
80dde55f42 mod: Висячая пунктуация в конвейре 2025-12-23 17:19:42 +03:00
22ddf6ef11 add: Висячая пунктуация работает (кроме редких случаев когда пробел, или его отуствие, попадает на следующий bs-узел) 2025-12-23 17:10:56 +03:00
d4aa437558 mod: Санитайзер оптимизирован и должен работать быстрее. 2025-12-19 14:48:55 +03:00
cd1be6bf27 mod: Санитайзер добавлен в конвейер типографа 2025-12-19 14:33: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
d77f1db5c2 mod: закрывающая кавычка перед точкой 2025-10-09 12:18:32 +03:00
ab82f2ffd8 mod: исправлена ошибка с союзом "и" и "как" + 2025-10-05 18:10:06 +03:00
fff9dda8a0 mod: исправлена ошибка с союзом "и" и "как" 2025-10-05 18:07:08 +03:00
38581221b4 mod: Порядок правил 2025-10-05 16:53:51 +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
ddeb7c6d99 add: LayoutProcessor - обработка едениц измерения (кажется все++ и реализована безопасность от CHAR_UNIT_SEPARATOR) 2025-09-22 10:27:59 +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
4918645496 add: LayoutProcessor - обработка неразрывных пробелов вокруг тире и инициалов 2025-08-25 18:15:10 +03:00
9a37467bfc add: SymbolsProcessor - обработка тире и псевдографики 2025-08-22 15:45:38 +03:00
39ef02884e mod: переименование переменных для символов 2025-08-22 15:37:02 +03:00
66cd6e41d2 mod: минор 2025-08-17 01:12:34 +03:00
b4248db063 add: обработка кавычек 2025-08-17 01:12:09 +03:00
73fa57e47e mod: +приоритет языков и кавычки 2025-08-17 01:11:23 +03:00
1deae2fa16 mod: +приоритет языков (ru+en -- кто первый, у того и приоритет) 2025-08-17 01:07:30 +03:00
78b78bf949 mod: спецсимволы (&nbsp; и &shy;) берутся из config.py 2025-08-11 22:19:40 +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
68ad5d7823 mod: минор (из-за изменений в config.py) 2025-08-05 22:43:24 +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
0b0847843b mod: изменен поиск суфиксов в английских словах 2025-07-30 19:28:34 +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