Плагин Parse Mode (parse-mode
)
Этот плагин предоставляет трансформатор для установки parse
по умолчанию, а также middleware для взаимодействия Context
с привычными методами reply
, reply
, reply
и т.д.
Использование (Улучшение опыта форматирования)
ts
import { Bot, Context } from "grammy";
import { bold, fmt, hydrateReply, italic, link } from "@grammyjs/parse-mode";
import type { ParseModeFlavor } from "@grammyjs/parse-mode";
const bot = new Bot<ParseModeFlavor<Context>>("");
// Установка плагина
bot.use(hydrateReply);
bot.command("demo", async (ctx) => {
await ctx.replyFmt(fmt`${bold("полужирный!")}
${bold(italic("полужирно-курсивный!"))}
${
bold(fmt`полужирный ${link("полужирная ссылка", "example.com")} полужирный`)
}`);
// fmt также может быть вызвана как любая другая функция.
await ctx.replyFmt(
fmt(
["", " и ", " и ", ""],
fmt`${bold("полужирный")}`,
fmt`${bold(italic("полужирно-курсивный"))}`,
fmt`${italic("курсивный")}`,
),
);
});
bot.start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
js
const { Bot, Context } = require("grammy");
const { bold, fmt, hydrateReply, italic, link } = require(
"@grammyjs/parse-mode",
);
const bot = new Bot("");
// Установка плагина
bot.use(hydrateReply);
bot.command("demo", async (ctx) => {
await ctx.replyFmt(fmt`${bold("полужирный!")}
${bold(italic("жирно-курсивный!"))}
${
bold(
fmt`полужирный ${link("полу-жирная ссылка", "example.com")} полужирный`,
)
}`);
// fmt также может быть вызвана как любая другая функция.
await ctx.replyFmt(
fmt(
["", " и ", " и ", ""],
fmt`${bold("полужирный")}`,
fmt`${bold(italic("полужирно-курсивный"))}`,
fmt`${italic("курсивный")}`,
),
);
});
bot.start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
ts
import { Bot, Context } from "https://deno.land/x/grammy@v1.33.0/mod.ts";
import {
bold,
fmt,
hydrateReply,
italic,
link,
} from "https://deno.land/x/grammy_parse_mode@1.10.0/mod.ts";
import type { ParseModeFlavor } from "https://deno.land/x/grammy_parse_mode@1.10.0/mod.ts";
const bot = new Bot<ParseModeFlavor<Context>>("");
// Установка плагина
bot.use(hydrateReply);
bot.command("demo", async (ctx) => {
await ctx.replyFmt(fmt`${bold("полужирный!")}
${bold(italic("жирно-курсивный!"))}
${
bold(
fmt`полужирный ${link("полу-жирная ссылка", "example.com")} полужирный`,
)
}`);
// fmt также может быть вызвана как любая другая функция.
await ctx.replyFmt(
fmt(
["", " и ", " и ", ""],
fmt`${bold("полужирный")}`,
fmt`${bold(italic("полужирно-курсивный"))}`,
fmt`${italic("курсивный")}`,
),
);
});
bot.start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Использование (parse mode и методы ответа по умолчанию)
ts
import { Bot, Context } from "grammy";
import { hydrateReply, parseMode } from "@grammyjs/parse-mode";
import type { ParseModeFlavor } from "@grammyjs/parse-mode";
const bot = new Bot<ParseModeFlavor<Context>>("");
// Установка плагина
bot.use(hydrateReply);
// Установите parse_mod по умолчанию для ctx.reply.
bot.api.config.use(parseMode("MarkdownV2"));
bot.command("demo", async (ctx) => {
await ctx.reply("*Это* `форматирование` _по_ умолчанию");
await ctx.replyWithHTML(
"<b>Это</b> <code>форматирование</code> с помощью <i>HTML</i>",
);
await ctx.replyWithMarkdown("*Это* `форматирование` с помощью _Markdown_");
await ctx.replyWithMarkdownV1(
"*Это* `форматирование` с помощью _MarkdownV1_",
);
await ctx.replyWithMarkdownV2(
"*Это* `форматирование` с помощью _MarkdownV2_",
);
});
bot.start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
js
const { Bot, Context } = require("grammy");
const { hydrateReply, parseMode } = require("@grammyjs/parse-mode");
const bot = new Bot("");
// Установка плагина
bot.use(hydrateReply);
// Установите parse_mod по умолчанию для ctx.reply.
bot.api.config.use(parseMode("MarkdownV2"));
bot.command("demo", async (ctx) => {
await ctx.reply("*Это* `форматирование` _по_ умолчанию");
await ctx.replyWithHTML(
"<b>Это</b> <code>форматирование</code> с помощью <i>HTML</i>",
);
await ctx.replyWithMarkdown("*Это* `форматирование` с помощью _Markdown_");
await ctx.replyWithMarkdownV1(
"*Это* `форматирование` с помощью _MarkdownV1_",
);
await ctx.replyWithMarkdownV2(
"*Это* `форматирование` с помощью _MarkdownV2_",
);
});
bot.start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ts
import { Bot, Context } from "https://deno.land/x/grammy@v1.33.0/mod.ts";
import {
hydrateReply,
parseMode,
} from "https://deno.land/x/grammy_parse_mode@1.10.0/mod.ts";
import type { ParseModeFlavor } from "https://deno.land/x/grammy_parse_mode@1.10.0/mod.ts";
const bot = new Bot<ParseModeFlavor<Context>>("");
// Установка плагина
bot.use(hydrateReply);
// Установите parse_mod по умолчанию для ctx.reply.
bot.api.config.use(parseMode("MarkdownV2"));
bot.command("demo", async (ctx) => {
await ctx.reply("*Это* `форматирование` _по_ умолчанию");
await ctx.replyWithHTML(
"<b>Это</b> <code>форматирование</code> с помощью <i>HTML</i>",
);
await ctx.replyWithMarkdown("*Это* `форматирование` с помощью _Markdown_");
await ctx.replyWithMarkdownV1(
"*Это* `форматирование` с помощью _MarkdownV1_",
);
await ctx.replyWithMarkdownV2(
"*Это* `форматирование` с помощью _MarkdownV2_",
);
});
bot.start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31