Маркдаун в формат Эгеи

Эгея использует свой синтаксис, очень похожий на Markdown.

Иногда требуется опубликовать заметку которая сохранена в маркдаун разметке, например гугл документ можно экспортировать в маркдаун.

Для этого можно использовать скрипт на питоне

import re

def convert_to_egea(markdown_text):
    # Convert headers
    egea_text = re.sub(r'^### (.*)$', r'### \1', markdown_text, flags=re.MULTILINE)
    egea_text = re.sub(r'^## (.*)$', r'## \1', egea_text, flags=re.MULTILINE)
    egea_text = re.sub(r'^# (.*)$', r'# \1', egea_text, flags=re.MULTILINE)
    
    # Convert bold (leave as is)
    # Make sure to selectively replace *italic* with //italic// by considering ___not both_bold and italic___
    egea_text = re.sub(r'\*\*(.*?)\*\*', r'**\1**', egea_text)
    
    # Convert italic
    egea_text = re.sub(r'(?<!\*)\*(?!\*)(.*?)\*(?!\*)(?<!\*)', r'//\1//', egea_text)
    
    # Convert strikethrough (leave as is)
    egea_text = re.sub(r'~~(.*?)~~', r'--\1--', egea_text)
    
    # Convert links
    egea_text = re.sub(r'\[(.*?)\]\((.*?)\)', r'((\2 \1))', egea_text)
    
    # Convert blockquotes
    egea_text = re.sub(r'^> (.*)$', r'> \1', egea_text, flags=re.MULTILINE)
    
    # Convert unordered lists
    egea_text = re.sub(r'^\* (.*)$', r'- \1', egea_text, flags=re.MULTILINE)
    
    # Convert ordered lists
    egea_text = re.sub(r'^\d+\. (.*)$', r'1. \1', egea_text, flags=re.MULTILINE)
    
    # Convert images
    egea_text = re.sub(r'!\[(.*?)\]\((.*?)\)', r'\2 \1', egea_text)

    # Convert tables
    egea_text = re.sub(
        r'((?:\|.*\|\n)+)', 
        lambda match: f"-----\n{match.group(1)}-----\n", 
        egea_text
    )
  
    return egea_text

# Usage example:
markdown_text = """
# Заголовок первого уровня

## Заголовок второго уровня

### Заголовок третьего уровня

**Жирный текст**

*Курсивный текст*

~~Зачеркнутый текст~~

[Ссылка](http://example.com)

> Цитата

- Элемент ненумерованного списка

1. Элемент нумерованного списка

![Изображение](http://example.com/image.jpg)

**Основные выводы и тезисы мастер-класса Максима Ильяхова о соцсетях**

| Покупка | Ссылка в шапке Кнопка продажи Директ |
| one | two | three |
| 1 | 2 | 3 |
| raz | dva | tri |
| un | deux | trois |
"""

egea_text = convert_to_egea(markdown_text)
print(egea_text)

В переменную markdown_text — вставляем наш текст, на выходе получаем сконвертированный текс в переменной
egea_text

Результат выполнения, в разметке Эгея

Скрипт на гитхабе

Отправить
Поделиться
Твитнуть
Запинить