Formatting
Telegrinder has builtin formatter HTMLFormatter
.
It can be imported as follows:
Formatter is derived from FormatString
to work string formatting with the following formats:
block_quote(string: str) -> TagFormat
|quote text
bold(string: str) -> TagFormat
| bold textchannel_boost_link(channel_id: str | int, string: str | None = None) -> TagFormat
| tg://resolve?domain=channel123&boostcode_inline
|inline text
escape(string: str) -> EscapedString
| escaping stringitalic(string: str) -> TagFormat
| italic textlink(href: str, string: str | None = None) -> TagFormat
| https://linkmention(string: str, user_id: int) -> TagFormat
| mention entitypre_code(string: str, lang: str | ProgrammingLanguage | None = None) -> TagFormat
|pre code
resolve_domain(username: str, string: str | None = None) -> TagFormat
| tg://resolve?domain=usernamespoiler(string: str) -> TagFormat
-> ||spoiler text||start_bot_link(bot_id: str | int, data: str, string: str | None = None) -> TagFormat
| tg://resolve?domain=bot123&start=datastart_group_link(bot_id: str | int, data: str, string: str | None = None) -> TagFormat
| tg://resolve?domain=bot123&startgroup=datastrike(string: str) -> TagFormat
-> ~~strikethrough text~~tg_emoji(string: str, emoji_id: int) -> TagFormat
| telegram emoji by emoji idunderline(string: str) -> TagFormat
-> underline textuser_open_message(user_id: int, message: str | None = None, string: str | None = None) -> TagFormat
| tg://openmessage?user_id=123456789&msg?text=AnyMessage
Also formatter has a .format(self, *args, **kwargs)
method for formatting a string with {}
, it can support specifiers whose names are the same as the format names (other than special):
Union formats:
To use special formats, you have to use special dataclasses:
* BaseSpecFormat
-> This class is inherited into other dataclasses to implement special formats.
* ChannelBoostLink(channel_id: str | int, string: str | None = None)
-> channel_boost_link
* InviteChatLink(invite_link: str, string: str | None = None)
-> invite_chat_link
* Link(href: str, string: str | None = None)
-> link
* Mention(string: str, user_id: int)
-> mention
* PreCode(string: str, lang: str | ProgrammingLanguage | None = None)
-> pre_code
* ResolveDomain(username: str, string: str | None = None)
-> resolve_domain
* StartBotLink(bot_id: str | int, data: str, string: str | None = None)
-> start_bot_link
* StartGroupLink(bot_id: str | int, data: str, string: str | None = None)
-> start_group_link
* TgEmoji(string: str, emoji_id: int)
-> tg_emoji
* UserOpenMessage(user_id: int, message: str | None = None, string: str | None = None)
-> user_open_message
HTMLFormatter also has a property of parse mode string.
It can be accessed like this:
And you can import ParseMode
which has two properties:
* MARKDOWNV2
* HTML