Форматирование
в RimTUB используется HTML разметка для форматирования сообщений.
Настоятельно рекомендуется использовать функции форматирования (которые здесь описаны) для форматирования текста
Почему?
- Безопасность: При использовании функций форматирования весь входной текст экранируется. Т.е. исключаются ошибки форматирования.
- Совместимость: Если обновится форматирование в Pyrogram (например, изменится название тега или аттрибута) не нужно будет переписывать все форматирование.
Быстрый свод функций форматирования
| Функция | Описание | пример |
|---|---|---|
escape("<text & <<>") | Экранирует текст для подстановки. Встроенно во все функции форматирования. | <text & <<> |
code('text') | моноширинный текст. Копируется при нажатии | text |
pre('code', "py") | Блок кода с подсветкой синтаксиса | |
emoji(5404799425245626483, "🌟") | Премиум емодзи. ID можно узнать командой .emjs | |
bq("text", True) | Блок цитаты. Второй аргумент, если True то цитату можно будет свернуть/развернуть | text |
blockquote("text", True) | тоже самое, что и bq. | text |
b('text') | Жирный текст | текст |
i('text') | Наклонный текст | текст |
s('text') | Зачеркнутый текст | |
u('text') | Подчеркнутый текст | текст |
a('text', 'https://t.me/RimTUB') | Ссылка | text |
spoiler('text') | Спойлер. Текст покажется только после нажатия | показать невозможно |
Все функции
escape
Экранирует специальные HTML символы в строке.
Аргументы:
text(str) - Текст для экранирования.
Возвращает: str - Экранированный текст.
Пример:
escape("<notag>Test & Test</notag>")
format_tag
Генерирует HTML тег.
Аргументы:
tag_name(str) - Имя тега. Например "a" или "div".content(str) = "" - Содержимое тега.escape_content(bool) = True - Нужно ли экранировать контент.close_tag(bool) = True - Нужен ли закрывающий тег.kwargs(dict) - Атрибуты тега.
Возвращает: str - Сгенерированный HTML тег.
Пример:
format_tag('new_formatting_on_TG', 'test text', color="Red")
code
Создает HTML тег для кода.
Аргументы:
text(str) - Код для размещения в теге.escape_html(bool) = True - Нужно ли экранировать HTML в коде.
Возвращает: str - Сгенерированный HTML тег для кода.
Пример:
code('print("Hello World")')
pre
Генерирует HTML тег для отображения блока кода.
Аргументы:
text(str) - Код для отображения в теге.lang(str) = "" - Язык программирования.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для отображения блока кода.
Пример:
pre('print("Hello World")', lang="python")
blockquote
Создает HTML тег для блока цитаты.
Аргументы:
text(str) - Текст для размещения в теге.expandable(bool) = False - Можно ли разворачивать цитату.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для блока цитаты.
Пример:
blockquote('This is a quote.', expandable=True)
bq
Тоже самое что и blockquote. Создает HTML тег для блока цитаты.
Аргументы:
text(str) - Текст для размещения в теге.expandable(bool) = False - Можно ли разворачивать цитату.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для блока цитаты.
Пример:
bq('This is a blockquote.', expandable=True)
b
Создает HTML тег для жирного текста.
Аргументы:
text(str) - Текст для размещения в теге.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для жирного текста.
Пример:
b('Bold text')
i
Создает HTML тег для курсива.
Аргументы:
text(str) - Текст для размещения в теге.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для курсива.
Пример:
i('Italic text')
a
Создает HTML тег для ссылки.
Аргументы:
text(str) - Текст ссылки.url(str) = "" - URL для ссылки.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для ссылки.
Пример:
a('Click Here', 'https://example.com')
u
Создает HTML тег для подчеркивания текста.
Аргументы:
text(str) - Текст для размещения в теге.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для подчеркивания текста.
Пример:
u('Underlined text')
s
Создает HTML тег для зачеркнутого текста.
Аргументы:
text(str) - Текст для размещения в теге.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для зачеркнутого текста.
Пример:
s('Strikethrough text')
spoiler
Создает HTML тег для спойлера.
Аргументы:
text(str) - Текст для размещения в теге.escape_html(bool) = True - Нужно ли экранировать HTML.
Возвращает: str - Сгенерированный HTML тег для спойлера.
Пример:
spoiler('This is a spoiler')
emoji
Создает HTML тег для премиум эмодзи.
Аргументы:
id(int) - ID кастомного эмодзи.emoticon(str) - Стандартный эмодзи, который будет показываться, если у пользователя нет Telegram Premium.
Возвращает: str - Сгенерированный HTML тег для кастомного эмодзи.
Пример:
emoji(5404799425245626483, "🌟")
remove_emoji_tags
Удаляет из текста премиум эмодзи.
Аргументы:
text(str) - Текст с эмодзи.
Возвращает: str - Текст без эмодзи.
Пример:
text_with_emojis = f"RimTUB {emoji(5404799425245626483, '🌟')}"
text = remove_emoji_tags(text_with_emojis)
# text = 'RimTUB 🌟'