telegram-markdown-sanitizer
TypeScript icon, indicating that this package has built-in type declarations

0.0.11 • Public • Published

Telegram Markdown Sanitizer ✈️

Overview 🌐

telegram-markdown-sanitizer is a zero-dependency, TypeScript library ensuring Markdown used with the Telegram Bot API's Markdown V2 mode is valid. It sanitizes Markdown to comply with Telegram's Markdown Specification, transforming potentially invalid markdown into Telegram-compliant format by escaping invalid characters and maintaining valid markdown structures.

Problem Description 🚨

Using Telegram Bot API with Markdown V2 requires valid markdown conforming to Telegram's specifications. Invalid markdown input can lead to message failures or display errors. This library preprocesses markdown input, converting it to a valid format by escaping all inappropriate characters while preserving valid markdown elements.

Live Demo 👀

Installation 💻

npm install telegram-markdown-sanitizer

Features 🌟

  • Multiline Code Blocks**: Detects multiline code blocks and escapes backticks inside.
  • Single Line Code Blocks: Detects single line code blocks without escaping anything inside.
  • Links: Detects links and escapes special symbols inside them.
  • Special Symbols: Detects all other special symbols and escapes them, ensuring valid markdown output.

Upcoming Features 🔜

We are actively working on adding more features, including:

  • Formatting: Support for bold, italic, underline, and strikethrough text.

Usage 🛠️

Here is a basic example of how to use telegram-markdown-sanitizer:

import { sanitizeMarkdown } from 'telegram-markdown-sanitizer';

const inputMarkdown = "Your markdown string here";
const sanitizedMarkdown = sanitizeMarkdown(inputMarkdown);

console.log(sanitizedMarkdown);

API Documentation 📖

sanitizeMarkdown(input: string): string

Sanitizes markdown input by:

  • Escaping backticks inside multiline code blocks.
  • Preserving content inside single line code blocks.
  • Escaping all other special markdown symbols.

Parameters:

  • input: The markdown input (possibly invalid markdown).

Returns:

  • Sanitized markdown string (always valid markdown).

Contributing 🤝

Contributions are welcome! Please feel free to submit pull requests, report bugs, or suggest features.

License 📄

This project is licensed under the MIT License.

Author 👨‍💻

Illia Kurochkin

Readme

Keywords

Package Sidebar

Install

npm i telegram-markdown-sanitizer

Weekly Downloads

106

Version

0.0.11

License

MIT

Unpacked Size

48.5 kB

Total Files

22

Last publish

Collaborators

  • illyakurochkin