Metadata-Version: 2.2
Name: odt2md
Version: 0.1.5
Summary: Tools to convert LibreOffice document to Church-Slavonic Markdown flavor
Author-email: Mike Kroutikov <pgmmpk@gmail.com>
Maintainer-email: Mike Kroutikov <pgmmpk@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/slavonic/odt2md/
Project-URL: Source, https://github.com/slavonic/odt2md
Keywords: odt,LibreOffice,markdown
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Religion
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: regex
Requires-Dist: lxml>4.9.1
Requires-Dist: lxmlx
Provides-Extra: dev
Requires-Dist: odt2md; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: twine; extra == "dev"

# odt2md

Конвертирует LibreOffice документ в церковнослявянский вариант Markdown.

## Установка

Требования:

* Python 3

Устанавливаем из репозитория `pip`:

    pip install odt2md

Другой вариант установки - для разработчика:

    git clone https://github.com/slavonic/odt2md.git
    cd odt2md
    python3 -m venv .venv
    . .venv/bin/activate
    pip install -e .[dev]

## Тестирование

Установите в варианте для разработчика, затем

    make test

## Запуск и работа

### Конвертирование

Чтобы сконвертировать в Markdown документ `sample.odt`, запустите команду `odt2md`:

    python -m odt2md.odt2md sample.odt sample.zip

Результатом работы будет архив `sample.zip`, содержащий основной Markdown файл с именем
`content.md`, а также картинки в под-директории `Pictures`.

### Настройка профиля

Профиль управляет логикой отображения стиля LibreOffice на стиль Markdown.

В выходном документе Markdown могут активироваться следующие стилевые сегменты:

1. `bold` - выделение жирным шрифтом (`True`/`False`)
2. `italic` - выделение наклоном (`True`/`False`)
3. `kinovar` - выделение киноварью (красным) (`True`/`False`)
4. `wide` - выделение разрядкой (`True`/`False`)

Во входном документе LibreOffice мы имеем следующие параметры:

1. `font` - имя шрифта. Например: `Times Roman Cyrillic`
2. `color` - цвет. Например: `#ff0000`
3. `size` - размер. Например: `17pt`
4. `bold` - жирность шрифта. Например: `normal`, `bold`
5. `italic` - наклонный шрифт. Например: `normal`, `italic`

Любое из этих значений может быть `None`, что означает что используется значение
по умолчанию.

Профиль по умолчанию делает так:

1. Если входной шрифт `bold`, то устанавливает Markdown стиль `bold=True`
2. Если входной шрифт `italic`, то устанавливает Markdown стиль `italic=True`
3. Когда цвет шрифта `color=="#ff0000`, то устанавливает Markdown стиль `kinovar=True`
4. Никогда не активирует Markdown стиль с разрядкой

Профиль по умолчанию таков:

```python
from odt2md.emphasis import MarkdownStyle

def profile(font, color, size, bold, italic):
    '''
    Default transformation from LibreOffice to Markdown style
    '''
    bold = (bold == 'bold')
    italic = (italic == 'italic')
    kinovar = (color == '#ff0000')

    return MarkdownStyle(
        bold=bold,
        italic=italic,
        kinovar=kinovar,
        wide=False
    )
```

Для настройки своего профиля, надо создать файл с определением желаемого преобразования
и передать его в `odt2md` с помощью ключа `--profile`. Например:

    python -m odt2md.odt2md --profile sample_profile.py sample.odt sample.zip

Проще всего начать с того, что скопировать профиль по умолчанию в `sample.md` и затем
отредактировать для получения желаемого эффекта.

### Просмотр стилей исходного документа

Для просмотра стилей, используемых в документе LibreOffice, запустите команду

    python -m odt2md.show_styles sample.odt

Команда покажет только стили, которые действительно используются. Стили, которые определены
но не используются показаны не будут.
