Skip to content

Commit 44a392a

Browse files
committed
Update 5.send.md
1 parent 233b3d5 commit 44a392a

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

docs/5.send.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,29 @@ for (int i = 0; i < ids_len; i++) {
116116
}
117117
```
118118

119+
### Форматирование
120+
Режимы форматирования текста HTML и Markdown поддерживают только конкретные теги, см. API Telegram:
121+
- [HTML](https://core.telegram.org/bots/api#html-style)
122+
- [Markdown](https://core.telegram.org/bots/api#markdownv2-style)
123+
124+
Для настройки режима нужно просто указать его:
125+
126+
```cpp
127+
fb::Message msg;
128+
msg.mode = fb::Message::Mode::MarkdownV2;
129+
msg.text...
130+
```
131+
132+
#### Markdown
133+
Для режима Markdown нужно соблюдать [некоторые правила](https://core.telegram.org/bots/api#markdownv2-style):
134+
- Любой символ может быть экранирован с помощью `\`, чтобы выводиться просто символом, а не разметкой MD. Например `"test\\_"` выведет `test_`, без экранирования будет ошибка
135+
- Внутри блоков кода символы `` ` `` и `\` должны быть экранированы с помошью `\`
136+
- Внутри блока ссылки в (круглых скобках) все `)` и `\` должны быть экранированы с помошью `\`
137+
- Во всех остальных случаях символы `_`, `*`, `[`, `]`, `(`, `)`, `~`, `` ` ``, `>`, `#`, `+`, `-`, `=`, `|`, `{`, `}`, `.`, `!` должны быть экранированы с помошью `\`
138+
139+
> FastBot2 не экранирует символы! Это нужно делать самостоятельно
140+
> Например для вывода текста `[hello] - world!` нужно писать `"\\[hello\\] \\- world\\!"`
141+
119142
## Отправка вручную
120143
Библиотека поддерживает самостоятельную сборку пакетов для отправки на сервер согласно API Telegram. Для сборки используется линейный сборщик json строк `gson::string` - вот [документация](https://github.com/GyverLibs/GSON?tab=readme-ov-file#gsonstring). Создание и отправка пакета выглядит так:
121144
- Начать пакет с указанием [команды](https://core.telegram.org/bots/api#available-methods)
@@ -224,27 +247,4 @@ res2.reset();
224247
fb::Result res3 = bot.sendMessage(fb::Message("hello!", "12312424353"));
225248
res3.stringify(Serial);
226249
res3.reset();
227-
```
228-
229-
### HTML и Markdown
230-
Режимы текста HTML и Markdown поддерживают только конкретные теги, см. API Telegram:
231-
- [HTML](https://core.telegram.org/bots/api#html-style)
232-
- [Markdown](https://core.telegram.org/bots/api#markdownv2-style)
233-
234-
Для настройки режима нужно просто указать его:
235-
236-
```cpp
237-
fb::Message msg;
238-
msg.mode = fb::Message::Mode::MarkdownV2;
239-
msg.text...
240-
```
241-
242-
#### Markdown
243-
Для режима Markdown нужно соблюдать [некоторые правила](https://core.telegram.org/bots/api#markdownv2-style):
244-
- Любой символ может быть экранирован с помощью `\`, чтобы выводиться просто символом, а не разметкой MD. Например `"test\\_"` выведет `test_`, без экранирования будет ошибка
245-
- Внутри блоков кода символы `` ` `` и `\` должны быть экранированы с помошью `\`
246-
- Внутри блока ссылки в (круглых скобках) все `)` и `\` должны быть экранированы с помошью `\`
247-
- Во всех остальных случаях символы `_`, `*`, `[`, `]`, `(`, `)`, `~`, `` ` ``, `>`, `#`, `+`, `-`, `=`, `|`, `{`, `}`, `.`, `!` должны быть экранированы с помошью `\`
248-
249-
> FastBot2 не экранирует символы! Это нужно делать самостоятельно
250-
> Например для вывода текста `[hello] - world!` нужно писать `"\\[hello\\] \\- world\\!"`
250+
```

0 commit comments

Comments
 (0)