Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Safely format messages and keep their source code maintainable.

License

Notifications You must be signed in to change notification settings

grammyjs/parse-mode

Repository files navigation

Parse Mode plugin for grammY

This library provides simplified formatting utilities for the grammY Telegram Bot framework. It enables you to compose richly formatted messages using a declarative, type-safe API.

With this plugin, you can:

  • Use tagged template literals and formatters (like bold, italic, link, etc) to build formatted messages and captions
  • Apply formatting to text and media captions using the fmt function

The plugin is compatible with both Deno and Node.js, and is designed to work as a drop-in enhancement for grammY bots that need robust formatting capabilities.

Usage (Using fmt)

import { Bot } from "grammy";
import { b, fmt, u } from "@grammyjs/parse-mode";

const bot = new Bot("");

bot.command("demo", async (ctx) => {
  // Using return values of fmt
  const combined = fmt`${b}bolded${b} ${ctx.msg.text} ${u}underlined${u}`;
  await ctx.reply(combined.text, { entities: combined.entities });
  await ctx.replyWithPhoto(photo, {
    caption: combined.caption,
    caption_entities: combined.caption_entities,
  });
});

bot.start();

Usage (Using FormattedString)

import { Bot } from "grammy";
import { FormattedString } from "@grammyjs/parse-mode";

const bot = new Bot("");

bot.command("demo", async (ctx) => {
  // Using return values of Fmt
  const combined = FormattedString.b("bolded").plain(ctx.msg.text).u(
    "underlined",
  );
  await ctx.reply(combined.text, { entities: combined.entities });
  await ctx.replyWithPhoto(photo, {
    caption: combined.caption,
    caption_entities: combined.caption_entities,
  });
});

bot.start();

About

Safely format messages and keep their source code maintainable.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 10