name: '🧼 Telegram message escape' description: 'Automatically escapes dots, dashes, and exclamation marks for Telegram MarkdownV2' inputs: message: description: 'The raw text string to escape' required: true outputs: escaped_message: description: 'The safely escaped string ready for Telegram' value: ${{ steps.escape.outputs.result }} runs: using: 'composite' steps: - id: escape shell: python env: RAW_MESSAGE: ${{ inputs.message }} ESCAPED_MESSAGE: $GITHUB_OUTPUT run: | import os raw_text = os.environ.get("RAW_MESSAGE", "") output_file = os.environ.get("ESCAPED_MESSAGE") def escape_text(text): escape_chars = ["-", ".", "!"] for char in escape_chars: text = text.replace(char, f"\\{char}") return text parts = raw_text.split("`") processed_parts = [] for i, part in enumerate(parts): if i % 2 == 0: processed_parts.append(escape_text(part)) else: processed_parts.append(f"\\`{part}\\`") escaped_text = "".join(processed_parts) with open(output_file, "a", encoding="utf-8") as f: f.write("result<