Tools to convert LibreOffice document to Church-Slavonic Markdown flavor


Keywords
odt, LibreOffice, Markdown
License
MIT
Install
pip install odt2md==0.0.14

Documentation

odt2md

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ LibreOffice Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π² цСрковнослявянский Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Markdown.

Установка

ВрСбования:

  • Python 3.7

УстанавливаСм ΠΈΠ· рСпозитория pip:

pip install odt2md

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ установки - для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°:

git clone https://github.com/slavonic/odt2md.git
cd odt2md
python3.7 -m venv .venv
. .venv/bin/activate
pip install wheel
pip install -r requirements.txt

ВСстированиС

УстановитС Π² Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π·Π°Ρ‚Π΅ΠΌ

. .venv/bin/activate
pip install pytest
export PYTHONPATH=.
pytest .

Запуск ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°

ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² 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

Команда ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стили, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π‘Ρ‚ΠΈΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.