add: LayoutProcessor - обработка едениц измерения (кажется все)
This commit is contained in:
@@ -63,6 +63,10 @@ CHAR_ARROW_LR = '\u27f7' # Длинная двунаправленная ст
|
||||
CHAR_ARROW_L_LONG_DOUBLE = '\u27f8' # Длинная двойная стрелка влево
|
||||
CHAR_ARROW_R_LONG_DOUBLE = '\u27f9' # Длинная двойная стрелка вправо
|
||||
CHAR_ARROW_LR_LONG_DOUBLE = '\u27fa' # Длинная двойная двунаправленная стрелка
|
||||
CHAR_MIDDOT = '\u00b7' # Средняя точка (· иногда используется как знак умножения) / ·
|
||||
CHAR_UNIT_SEPARATOR = '\u25F0' # Символ временный разделитель для составных единиц (◰), чтобы не уходить
|
||||
# в "мертвый" цикл при замене на тонкий пробел. Можно взять любой редкий символом.
|
||||
|
||||
|
||||
# === КОНСТАНТЫ ПСЕВДОГРАФИКИ ===
|
||||
# Для простых замен "строка -> символ" используем список кортежей.
|
||||
@@ -92,28 +96,6 @@ 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-МНЕМНОИКОВ ===
|
||||
# --- ЧЕРНЫЙ СПИСОК: Символы, которые НИКОГДА не нужно кодировать в мнемоники ---
|
||||
@@ -185,7 +167,7 @@ CUSTOM_ENCODE_MAP = {
|
||||
'\u0026': '&', # & / & / &
|
||||
'\u003e': '>', # > / > / >
|
||||
'\u003c': '<', # < / < / <
|
||||
'\u00b7': '·', # · / · / · / ·
|
||||
CHAR_MIDDOT: '·', # · / · / · / ·
|
||||
'\u0060': '`', # ` / ` / `
|
||||
'\u00a8': '¨', # ¨ / ¨ / ¨ / ¨ / ¨
|
||||
'\u00b1': '±', # ± / ± / ±
|
||||
@@ -637,4 +619,28 @@ ENCODE_MAP = _build_translation_maps()
|
||||
# --- Публичный API модуля ---
|
||||
def get_encode_map():
|
||||
"""Возвращает готовую карту для кодирования."""
|
||||
return ENCODE_MAP
|
||||
return ENCODE_MAP
|
||||
|
||||
|
||||
# === КОНСТАНТЫ ДЛЯ ЕДИНИЦ ИЗМЕРЕНИЯ ===
|
||||
# ТОЛЬКО АТОМАРНЫЕ единицы измерения: 'г', 'м', 'с', 'км', 'кв', 'куб', 'ч' и так далее.
|
||||
# Никаких сложных и составных, типа: 'кв.м.', 'км/ч' или "до н.э." ...
|
||||
# Пост-позиционные (10 км).
|
||||
DEFAULT_POST_UNITS = [
|
||||
# Русские
|
||||
'гг', 'г.', 'в.', 'вв', 'н', 'э',
|
||||
'кг', 'мг', 'ц', 'т',
|
||||
'кв', 'куб', 'мм', 'см', 'м', 'км', 'л', 'мл', 'сот', 'га',
|
||||
'сек', 'с.', 'мин', 'ч',
|
||||
'руб', 'коп',
|
||||
'тыс', 'млн', 'млрд', 'трлн', 'трлрд',
|
||||
'пп', 'стр', 'рис', 'табл', 'гл', 'п', 'шт', 'об'
|
||||
# Английские
|
||||
'pp', 'p', 'para', 'sect', 'fig', 'vol', 'ed',
|
||||
]
|
||||
# Пред-позиционные (№ 5, $ 10)
|
||||
DEFAULT_PRE_UNITS = ['№', '$', '€', '£', '₽', '#']
|
||||
|
||||
# Операторы, которые могут стоять между единицами измерения (км/ч)
|
||||
# Сложение и вычитание здесь намеренно отсутствуют.
|
||||
UNIT_MATH_OPERATORS = ['/', '*', '×', CHAR_MIDDOT, '÷']
|
Reference in New Issue
Block a user