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.
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.
npm install telegram-markdown-sanitizer
- 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.
We are actively working on adding more features, including:
- Formatting: Support for bold, italic, underline, and strikethrough text.
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);
Sanitizes markdown input by:
- Escaping backticks inside multiline code blocks.
- Preserving content inside single line code blocks.
- Escaping all other special markdown symbols.
input
: The markdown input (possibly invalid markdown).
- Sanitized markdown string (always valid markdown).
Contributions are welcome! Please feel free to submit pull requests, report bugs, or suggest features.
This project is licensed under the MIT License.