diff --git a/formatter.py b/formatter.py
index d4b0ec6..6600adf 100644
--- a/formatter.py
+++ b/formatter.py
@@ -37,6 +37,7 @@ def replace_vk_links(text):
Заменяет ссылки на сообщества ВК в форматах:
[club123|Название сообщества] -> Название сообщества
[id456|Имя пользователя] -> Имя пользователя
+ [текст](url) -> текст (для Telegram)
[url|текст] -> текст (для Telegram)
"""
if not text:
@@ -47,6 +48,27 @@ def replace_vk_links(text):
vk_pattern = r'\[(?:club|id)\d+\|([^\]]+)\]'
text = re.sub(vk_pattern, r'\1', text)
+ # Затем обрабатываем Markdown-ссылки [текст](url) и преобразуем их в HTML-ссылки
+ def replace_markdown_link(match):
+ link_text = match.group(1).strip()
+ url = match.group(2).strip()
+
+ # Проверяем, что URL похож на ссылку (содержит http://, https://, или начинается с /)
+ # Это предотвращает обработку обычного текста в квадратных скобках как ссылки
+ if not (url.startswith('http://') or url.startswith('https://') or url.startswith('/') or url.startswith('#')):
+ # Если это не похоже на URL, возвращаем исходный текст без изменений
+ return match.group(0)
+
+ # Экранируем кавычки в URL для безопасности
+ url = url.replace('"', '"')
+ # Экранируем HTML-сущности в тексте ссылки
+ link_text = link_text.replace('&', '&').replace('<', '<').replace('>', '>')
+ return f'{link_text}'
+
+ # Регулярное выражение для поиска Markdown-ссылок формата [текст](url)
+ markdown_pattern = r'\[([^\]]+)\]\(([^\)]+)\)'
+ text = re.sub(markdown_pattern, replace_markdown_link, text)
+
# Затем обрабатываем ссылки формата [url|текст] и преобразуем их в HTML-ссылки
def replace_url_link(match):
url = match.group(1).strip()