Working With Formating Options
Formating options (parse mode) tgsnake uses @tgsnake/parser
as a framework for parsing text.
We have 2 parse mode first html
and markdown
.
Markdown
**bold**
__italic__
~~strike~~
`code`
```pre```
[text](link)
--underline--
||spoiler||
>blockquote
**>expandable blockquote
HTML
<!-- bold text -->
<b>bold</b>
<strong>bold</strong>
<!-- italic text -->
<i>italic</i>
<em>italic</em>
<!-- strikethrough text -->
<s>strike</s>
<del>strike</del>
<!-- mono text -->
<code>code</code>
<!-- code block -->
<pre>
<code>pre</code>
</pre>
<pre>
<code language-javascript >pre</code>
</pre>
<!-- text with link -->
<a href="link">text</a>
<!-- underline text -->
<u>underline</u>
<!-- mark text as spoiler -->
<spoiler>spoiler</spoiler>
<sp>spoiler</sp>
<tg-spoiler>spoiler</tg-spoiler>
<span class="tg-spoiler">spoiler</span>
<!-- customize emoji (premium emoji) -->
<tg-emoji id="1"
>text<tg-emoji>
<span id="1" class="tg-emoji"
>text<span>
<!-- blockquote -->
<blockquote>blockquote</blockquote>
<blockquote expandable>expandable blockquote</blockquote></span
></span
></tg-emoji
></tg-emoji
>
For further information, please read the comparison table below.
Entities Type | Markdown style | HTML style | Description |
---|---|---|---|
Bold | *text* | <b>text</b> or <strong>text</strong> | |
Italic | __text__ | <i>text</i> or <em>text</em> | |
~~text~~ | <s>text</s> or <del>text</del> | ||
Code | `text` | <code>text</code> | |
Pre | ```text``` | <pre><code>text</code></pre> or <pre language-javascript><code>text</code></pre> | |
Link | [text](link) | <a href="link">text</a> | You can fill the link params with tg://user?id=123456 for mentioning user and tg://emoji?id=123456 for custom emoji. |
Underline | --text-- | <u>text</u> | |
Spoiler | ||text|| | <spoiler>text</spoiler> or <sp>text</sp> or <tg-spoiler>text</tg-spoiler> or <span class="tg-spoiler">text</span> | |
Custom Emoji | [text](tg://emoji?id=123456) | <tg-emoji id="123456">text</tg-emoji> or <emoji id="123456">text</emoji> or <span class="tg-emoji" id="123456">text</span> | HTML tag has 2 way to define the emojiId. First using id attribute and seconds use emojiId attribute. |
Blockquote | >text | <blockquote>text</blockquote> |
Escaping content.
To prevent content from being parsed as formatted text, you can follow these instructions.
On markdown mode, escaping content with add backslash (\
) before markdown syntax.
'\\**bold\\**';
'\\__italic\\__';
'\\~~strike\\~~';
'\\`code\\`';
'\\```pre\\```';
'[text]\\(link)';
'\\--underline\\--';
'\\||spoiler\\||';
'\\>blockquote';
'\\**>expandable blockquote';
On html mode, escaping content with replace <
to <
, >
to &rt;
, &
to &
"<b&rt;bold</b&rt;" || "<strong&rt;bold</strong&rt;"
"<i&rt;italic</i&rt;" || "<em&rt;italic</em&rt;"
"<s&rt;strike</s&rt;" || "<del&rt;strike</del&rt;"
"<code&rt;code</code&rt;"
"<pre&rt;<code&rt;pre</code&rt;</pre&rt;" || "<pre&rt;<code language-javascript &rt;pre</code&rt;</pre&rt;"
"<a href="link"&rt;text</a&rt;"
"<u&rt;underline</u&rt;"
"<spoiler&rt;spoiler</spoiler&rt;" || "<sp&rt;spoiler</sp&rt;" || "<tg-spoiler&rt;spoiler</tg-spoiler&rt;" || '<span class="tg-spoiler"&rt;spoiler</span&rt;'
"<blockquote&rt;blockquote</blockquote&rt;"