add: LayoutProcessor - обработка едениц измерения (draft)

This commit is contained in:
2025-09-21 20:23:04 +03:00
parent a26c9107f2
commit c3e65700b1
3 changed files with 148 additions and 14 deletions

View File

@@ -92,6 +92,29 @@ STR_TO_SYMBOL_REPLACEMENTS = [
('~=', CHAR_AP), # Приблизительно равно (≈)
]
# === КОНСТАНТЫ ДЛЯ ЕДИНИЦ ИЗМЕРЕНИЯ ===
# Пост-позиционные (10 км)
DEFAULT_POST_UNITS = [
# Русские
'гг', 'г.', 'кг', 'мг', 'ц', 'т',
'кв.м', 'куб.м', 'мм', 'см', 'м', 'км', 'л', 'мл', 'сот', 'га',
'сек', 'с.', 'мин', 'ч',
'руб', 'коп',
'тыс', 'млн', 'млрд',
'пп', 'стр', 'рис', 'табл', 'гл', 'п', 'шт',
# Английские
'pp', 'p', 'para', 'sect', 'fig', 'vol', 'ed',
]
# Пред-позиционные (№ 5, $ 10)
DEFAULT_PRE_UNITS = ['', '$', '', '£', '', '#']
# === КОНСТАНТЫ ДЛЯ СЛОЖНЫХ (СОСТАВНЫХ) ЕДИНИЦ ИЗМЕРЕНИЯ ===
# Эти единицы будут автоматически "склеены" неразрывными пробелами внутри LayoutProcessor
DEFAULT_COMPLEX_UNITS = [
'до н. э.',
'н. э.',
]
# === КОНСТАНТЫ ДЛЯ КОДИРОВАНИЯ HTML-МНЕМНОИКОВ ===
# --- ЧЕРНЫЙ СПИСОК: Символы, которые НИКОГДА не нужно кодировать в мнемоники ---
NEVER_ENCODE_CHARS = (frozenset(['!', '#', '%', '(', ')', '*', ',', '.', '/', ':', ';', '=', '?', '@',