Expand description
Text formatting parsers: HTML and Markdown ↔ Telegram [MessageEntity]
§Markdown (Telegram-flavoured)
§Parsing (parse_markdown)
| Syntax | Entity |
|---|---|
**bold** or *bold* | Bold |
__italic__ or _italic_ | Italic |
~~strike~~ | Strikethrough |
||spoiler|| | Spoiler |
`code` | Code |
```lang\npre\n``` | Pre (code block) |
[text](url) | TextUrl |
[text](tg://user?id=123) | MentionName |
 | CustomEmoji |
\*, \_, \~ … | Escaped literal char |
§Generating (generate_markdown)
Produces the same syntax above for all supported entity types.
Underline has no unambiguous markdown delimiter and is silently skipped.
§HTML
Supported tags: <b>, <strong>, <i>, <em>, <u>, <s>, <del>,
<code>, <pre>, <tg-spoiler>, <a href="url">,
<tg-emoji emoji-id="id">text</tg-emoji>
§Feature gates
html: enablesparse_html/generate_htmlvia the built-in hand-rolled parser (zero extra deps).html5ever: replacesparse_htmlwith a spec-compliant html5ever tokenizer.generate_htmlis always the same hand-rolled generator.
Functions§
- generate_
html - Generate Telegram-compatible HTML from plain text + entities.
- generate_
markdown - Generate Telegram markdown from plain text + entities.
- parse_
html html5ever - Parse a Telegram-compatible HTML string into (plain_text, entities).
- parse_
markdown - Parse Telegram-flavoured markdown into (plain_text, entities).