Autobot::Channels::MarkdownToTelegramHTML
Converts Markdown to Telegram-safe HTML.
Telegram supports: , , , , , , ,
All <, >, & outside tags must be escaped. Code/pre cannot contain other tags.
Constants
BLOCKQUOTE_REGEX = /^>\s*(.*)$/m
BOLD_STAR_REGEX = /\*\*(.+?)\*\*/
BOLD_UNDERSCORE_REGEX = /__(.+?)__/
BULLET_LIST_REGEX = /^[-*]\s+/m
CODE_BLOCK_PREFIX = "\u0000CB"
CODE_BLOCK_REGEX = /```(\w*)\n?([\s\S]*?)```/
HEADER_REGEX = Regex.new("^\#{1,6}\\s+(.+)$", Regex::Options::MULTILINE)
HR_REGEX = /^[-*_]{3,}\s*$/m
HTML_CODE_CLOSE = "</code></pre>"
HTML_CODE_OPEN = "<pre><code"
Prefix (no closing ">") so it matches both
and
; the full open tag is recovered later.
HTML_TAG_REGEX = /<(\/?)(b|i|code|pre|a|s|u)(?:\s[^>]*)?>/
INLINE_CODE_PREFIX = "\u0000IC"
INLINE_CODE_REGEX = /`([^`]+)`/
ITALIC_REGEX = /(?<![a-zA-Z0-9])_([^_]+)_(?![a-zA-Z0-9])/
LINK_REGEX = /\[([^\]]+)\]\(([^)]+)\)/
STRIKETHROUGH_REGEX = /~~(.+?)~~/
STRIP_HTML_REGEX = /<\/?(?:b|i|code|pre|a|s|u)(?:\s[^>]*)?>/
SUFFIX = "\u0000"
TELEGRAM_MAX_LENGTH = 4096
UNDERSCORE_PREFIX = "\u0000US"
UNDERSCORE_RUN_REGEX = /_{3,}/