diff --git a/etpgrf/layout.py b/etpgrf/layout.py index f587a22..9032e9a 100644 --- a/etpgrf/layout.py +++ b/etpgrf/layout.py @@ -98,7 +98,7 @@ class LayoutProcessor: units_pattern_part_clean = '|'.join(map(regex.escape, [u.replace('.', '') for u in sorted_units])) # Простые единицы: число + единица - self._post_units_pattern = regex.compile(rf'({self._NUMBER_PATTERN})\s+({units_pattern_part_full})(?!\w)') + self._post_units_pattern = regex.compile(rf'({self._NUMBER_PATTERN}|{sep})\s+({units_pattern_part_full})(?!\w)') # Составные единицы: ищет пару "единица." + "единица" self._complex_unit_pattern = regex.compile(r'\b(' + units_pattern_part_clean + r')\.(\s*)(' + units_pattern_part_clean + r')(?!\w)') diff --git a/tests/test_typograph.py b/tests/test_typograph.py index 65b3be5..b9de3d9 100644 --- a/tests/test_typograph.py +++ b/tests/test_typograph.py @@ -103,6 +103,12 @@ TYPOGRAPHER_HTML_TEST_CASES = [ f'

Текст с{CHAR_NBSP}картинкой image и{CHAR_NBSP}текстом.

'), ('unicode', '

Текст с <br>
А это новая строка.

', f'

Текст с{CHAR_NBSP}<br>
А{CHAR_NBSP}это новая строка.

'), + + # --- Тесты на стыке тегов --- + ('mixed', '

Текст с тире --- после закрытого тега.

', + '

Текст с тире — после закрытого тега.

'), + ('mixed', '

Целых 100 т веса.

', + '

Целых 100 т веса.

'), ] @@ -177,7 +183,7 @@ HTML_STRUCTURE_TEST_CASES = [ ('
Заголовок
', '
Заголовок
'), - # 6. Исправленный тест на защищенные теги с немаскированными HTML внутри + # 6/ Исправленный тест на защищенные теги с немаскированными HTML внутри # (все незакрытые теги будут закрыты через BS, а тег удалены) ('
Заголовок
', '
Заголовок
'),