bold и прочее, потом появился spoiler (его ведь нет в html), соответственно я перешел на MARKDOWN_V2 (не разбираюсь в разнице от MARKDOWN), но все текcта стали выдавать ошибку, что что-то не экранировано, думал это автоматизировать с помощью import escape или re, но тогда страдает cам markdown
в итоге пришел к следующей схеме:
text = re.sub(r'([\.\-\+\!\^\$\#\{\}\<\>])', r'\\\1', text)
await message.answer(text=text, parse_mode=ParseMode.MARKDOWN_V2)
# Есть MARKDOWN_V2
# *bold*
# _italic_
# underline
# inline monospaced text
# block monospaced text
# ~strike~
# spoiler
# [hyperlink](https://google.com)
# [user mention](tg://user?id=12345)
# -----------------------
# Но при этом я должен помнить об простых символах и их экранировать \|, \_, \`, \*, \~, \[, \], \(, \) <- потому что они исползуются в MARKDOWN_V2
То есть если я буду писать (что то в скобочках), то мне нужно будет ручками все это экранировать, все из за того что скобки используются, например тут [hyperlink](https://google.com) в этом MARKDOWN_V2
в общем вопрос в том: есть ли решение элегентнее?
В хтмл разве нет спойлера? Проверил, у меня работает
В html <spoiler></spoiler>
1) обновляешь aiogram 2) убираешь свои костыли с заменой символов (выпиливаешь re нахер) 3) юзаешь HTML или MarkdownV2 4) ??????? 5) PROFIT!!!
Причём целых два вида спойлеров, лул
Лучше только хтмл ну его нахуй этого вашего Марк Дауна
1. Есть поддержка тегов спойлера 2. В aiogram есть готовые методы экранирования
не понял: не работает , text = f"<spoiler>test</spoiler>" await message.answer(text=text, parse_mode=ParseMode.HTML) какой второй?
у меня вот такое вытягивается из message.html_text: <span class="tg-spoiler">Ghhhhhhhhh</span>
<tg-spoiler> https://core.telegram.org/bots/api#html-style
Обсуждают сегодня