Darmowe narzędzie
Formatowanie tekstu na Telegramie, escapowanie już zrobione
W wiadomości jest cena, dywiz i kropka, a Bot API odpowiada "can't parse entities". MarkdownV2 rezerwuje 18 znaków, a zwykłe zdanie zawiera zwykle cztery albo pięć z nich. Napisz wiadomość tutaj, wybierz pogrubienie, spoiler albo blok kodu i skopiuj wynik, w którym każdy z tych znaków jest już wyescapowany.
Napisz swoją wiadomość
Zaznacz tekst i nałóż styl albo wpisz znaczniki sam. Pole pracuje w składni HTML Telegrama, więc to, co edytujesz, jest już poprawne dla jednego z dwóch wyników. Podgląd to obrazek wiadomości, a nie przycisk wysyłki: nic stąd nie opuszcza przeglądarki.
Znaki 198 z 4096
Powyżej 4096 znaków. Telegram odrzuci to jako jedną wiadomość, więc podziel ją albo przenieś długi fragment do pliku.
Telegram liczy znaki widoczne, więc samo znakowanie nic nie kosztuje. Encje i znaczniki formatowania nie wchodzą w limit.
Fixed: the CSV import dropped rows ending in a comma.
Reported by three of you on the same day.
Run
npm i -g entergram@2.4 to upgrade.The migration note is boring but mandatory.
MarkdownV2
*Release 2\.4 is out\.* Fixed: the CSV import dropped rows ending in a comma\. >Reported by three of you on the same day\. Run `npm i -g entergram@2.4` to upgrade\. The migration note is ||boring but mandatory||\.
Wyślij z parse_mode=MarkdownV2. Każdy zarezerwowany znak w zwykłym tekście jest wyescapowany; wewnątrz fragmentu kodu tylko ukośnik odwrotny i backtick.
HTML
<b>Release 2.4 is out.</b> Fixed: the CSV import dropped rows ending in a comma. <blockquote>Reported by three of you on the same day.</blockquote> Run <code>npm i -g entergram@2.4</code> to upgrade. The migration note is <tg-spoiler>boring but mandatory</tg-spoiler>.
Wyślij z parse_mode=HTML. Mniej rzeczy do wyescapowania i dlatego większość bibliotek ustawia go domyślnie.
Składnia w obu parse mode
Telegram przyjmuje trzy parse mode. Markdown jest ten stary i obsługuje cztery style; MarkdownV2 i HTML obsługują wszystkie dziesięć. Ta tabela zestawia MarkdownV2 i HTML obok siebie.
| Styl | MarkdownV2 | HTML |
|---|---|---|
| Pogrubienie | *bold* | <b>bold</b> |
| Kursywa | _italic_ | <i>italic</i> |
| Podkreślenie | __underline__ | <u>underline</u> |
| Przekreślenie | ~strike~ | <s>strike</s> |
| Spoiler | ||hidden|| | <tg-spoiler>hidden</tg-spoiler> |
| Kod w linii | `code` | <code>code</code> |
| Blok kodu | ```python code ``` | <pre><code class="language-python">code</code></pre> |
| Cytat blokowy | >quoted line | <blockquote>quoted</blockquote> |
| Link w tekście | [text](https://example.com) | <a href="https://example.com">text</a> |
| Własne emoji |  | <tg-emoji emoji-id="5368324170671202286">👍</tg-emoji> |
Podkreślenia i kursywy nie da się po prostu zagnieździć w MarkdownV2, bo __ i _ zderzają się na granicy. Kiedy potrzebujesz obu na tym samym fragmencie, użyj HTML.
Dlaczego MarkdownV2 wciąż odrzuca twoją wiadomość
MarkdownV2 rezerwuje osiemnaście znaków i poza encją kodu przed każdym z nich musi stanąć ukośnik odwrotny, nawet tam, gdzie nie dałoby się go odczytać jako znacznika. Lista wygląda tak: _ * [ ] ( ) ~ ` > # + - = | { } . ! oraz sam ukośnik odwrotny, bo to właśnie on jest znakiem escapującym.
Dwa z nich wywracają prawie każdego. Kropka kończy większość zdań. Dywiz pojawia się w datach, zakresach, flagach i wyrazach złożonych. Notka o wydaniu "Fixed: the 2.4-rc build" ma trzy zarezerwowane znaki na dziewięć słów, a API odrzuca całą wiadomość, zamiast przepuścić tekst.
Wewnątrz encji reguły się zmieniają i to jest drugi częsty błąd. W kodzie w linii i w bloku kodu specjalne są tylko ukośnik odwrotny i backtick, więc escapowanie reszty wstawia w twój kod widoczne ukośniki. W nawiasach linku albo własnego emoji specjalne są tylko nawias zamykający i ukośnik odwrotny. Narzędzie wyżej stosuje właściwą regułę dla każdego kontekstu i tego właśnie nie zrobi zwykłe znajdź i zamień.
Jeśli nic z tego cię nie przekonuje, weź HTML. Escapuje trzy znaki, &, < i >, i zagnieżdża się bez dwuznaczności. Jedyny powód, żeby wybrać MarkdownV2, to że lepiej się go czyta w repozytorium.
Limit 4096 znaków liczy tekst, a nie znaczniki
Wiadomość tekstowa na Telegramie mieści 4096 znaków. Formatowanie jedzie jako encje obok tekstu, a nie w nim, więc znaczniki, gwiazdki i ukośniki widoczne w wyniku nie liczą się. Licznik wyżej pokazuje długość widoczną i to jest liczba, którą sprawdza Telegram.
Obok są dwa limity, które warto znać, zanim zbudujesz nadawcę. Podpis pod multimediami mieści 1024 znaki, więc sformatowana wiadomość, która sama z siebie mieści się z zapasem, zostanie odrzucona, gdy dołączysz obrazek. Wiadomość ponad limit nie jest przycinana: API zwraca błąd i nie wysyła nic.
Pytania
Czy to działa dla postów na kanałach i zwykłych czatów, czy tylko dla botów?
Tabela składni dotyczy wszystkiego, co wysyła przez Bot API albo bibliotekę kliencką. Jeśli piszesz w Telegramie sam, aplikacja ma własne menu formatowania i MarkdownV2 w ogóle nie zobaczysz. To narzędzie jest na wypadek, gdy wysyła coś innego i potrzebuje tekstu już sformatowanego.
Którego parse mode użyć?
HTML, o ile nie masz powodu dla innego. Escapuje trzy znaki zamiast osiemnastu, zagnieżdża się przewidywalnie, a gdy popełnisz błąd, zwykle widać znacznik zamiast odrzuconej wiadomości. MarkdownV2 lepiej się czyta w pliku źródłowym i to jest uczciwy argument za nim.
Dlaczego wiadomość poszła, ale straciła formatowanie?
Prawie zawsze brakuje parse_mode. Bez niego Telegram traktuje tekst dosłownie, więc gwiazdki i znaczniki pokazują się jako znaki. Ustaw parse_mode na MarkdownV2 albo HTML przy wysyłce, zgodnie z wynikiem, który skopiowałeś.
Czy mogę zagnieździć pogrubienie w linku albo kursywę w pogrubieniu?
Tak, w obu parse mode, z jednym wyjątkiem: podkreślenie i kursywa razem w MarkdownV2 wymagają obejścia, bo ograniczniki się zderzają. Kod w linii i bloki kodu nie przyjmują w środku żadnego innego stylu, w żadnym z trybów.
Czym jest ID własnego emoji i skąd je wziąć?
To liczbowe ID własnego emoji z Premium, odczytywane z wiadomości, która już to emoji zawiera, a nie z publicznego katalogu. Nadawca musi mieć Telegram Premium albo być botem, do którego należy zestaw naklejek. Wszyscy pozostali zobaczą znak zapasowy, którym je otoczyłeś.
Czy cokolwiek, co tu wpisuję, jest wysyłane na serwer?
Nie. Konwersja działa w twojej przeglądarce, a strona nie ma kroku wysyłki, konta ani pamięci. Zamykasz kartę i wiadomość znika.
Idź dalej
Też za darmo: Telegram Group Finder , Telegram Lead Finder , Free QR Code Generator .
Jeśli to formatowanie jest do wiadomości, którą wyślesz do 200 osób
Wstępnie wyescapowany tekst to mniejsza połowa wysyłki masowej. Większa to nadanie jej z konta, na które ludzie naprawdę odpowiadają, rozłożenie tempa tak, żeby Telegram był spokojny, i zebranie odpowiedzi gdzieś poza telefonem. Tę część robi Entergram: prawdziwe osobiste konta Telegrama zamiast bota, każde na własnym proxy, a odpowiedzi trafiają do jednego interfejsu obok karty kontaktu.
Zobacz, jak działa wysyłka masowa