Skip to main content

Tools to convert LibreOffice document to Church-Slavonic Markdown flavor

Project description

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 стиль с разрядкой

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

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odt2md-0.1.7-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file odt2md-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: odt2md-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for odt2md-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f2b1d8f4752891ce8b66c4a65ed50407a655d818f9c12550233d81fe62d4e733
MD5 d2e56f3fbd6b1af7e4a0d54bfcf14e6a
BLAKE2b-256 612c367ac6c52c3ae72edafa5e983fe3547949f1bbb26b3ca3bbb93ab600e6b8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page