# telegram-markdown-formatter

TypeScript конвертер Markdown в HTML для Telegram Bot API. Перенос оригинального Python-модуля на TypeScript с улучшенной типизацией.

## Установка

```bash
npm install telegram-markdown-formatter
```

## Использование

### JavaScript/TypeScript

```typescript
import { telegramFormat } from 'telegram-markdown-formatter';

const markdown = `
# Заголовок
Это **жирный** и _курсивный_ текст.

\`\`\`python
print("Hello, World!")
\`\`\`

> Цитата
> Многострочная

- Список
- Элементы

[Ссылка](https://example.com)
`;

const html = telegramFormat(markdown);
console.log(html);
```

### CLI

```bash
# Установка глобально
npm install -g telegram-markdown-formatter

# Использование
tg-md file.md
echo "**bold** _italic_" | tg-md

# Разбиение на части <=4096 символов для Telegram
tg-md long-message.md --split
```

## Поддерживаемые форматы

- **Жирный**: `**текст**` → `<b>текст</b>`
- **Курсив**: `*текст*` или `_текст_` → `<i>текст</i>`
- **Подчеркнутый**: `__текст__` → `<u>текст</u>`
- **Зачеркнутый**: `~~текст~~` → `<s>текст</s>`
- **Спойлер**: `||текст||` → `<span class="tg-spoiler">текст</span>`
- **Заголовки**: `# Заголовок` → `<b>Заголовок</b>`
- **Списки**: `- элемент` → `• элемент`
- **Ссылки**: `[текст](URL)` → `<a href="URL">текст</a>`
- **Код**: `` `код` `` → `<code>код</code>`
- **Блоки кода**: ````python\nкод\n``` → `<pre><code class="language-python">код</code></pre>`
- **Цитаты**: `> текст` → `<blockquote>текст</blockquote>`
- **Расширяемые цитаты**: `**> текст` → `<blockquote expandable>текст</blockquote>`

## API

### `telegramFormat(text: string): string`

Конвертирует Markdown в HTML, совместимый с Telegram Bot API.

### `splitHtmlForTelegram(html: string): string[]`

Разбивает HTML на части <=4096 символов для отправки в Telegram.

## Разработка

```bash
# Клонирование
git clone https://github.com/lykov/ts-chatgpt-tg-formatter.git
cd ts-chatgpt-tg-formatter

# Установка зависимостей
npm install

# Сборка
npm run build

# Тесты
npm test

# Тесты в режиме watch
npm run test:watch
```

## Лицензия

MIT
