Pull to refresh

Готовое решение markdown2pdf с исходным кодом для Linux

Reading time3 min
Views9.6K

Предисловие


Markdown это прекрасный способ написать небольшую статью, а иногда и достаточно объемный текст, с несложным форматированием в виде курсива и толстого шрифта. Также Markdown неплох для написания статей с включением исходного кода. Но иногда хочется без потерь, танцев с бубном перегнать его в обычный, хорошо оформленный файл PDF, и чтобы не было проблем при конвертации, какие, например были у меня — нельзя писать по русски в комментариях исходного кода, слишком длинные строки не переносятся, а обрезаются и прочие мелкие проблемы. Инструкция позволит быстро настроить конвертер md2pdf не особенно вникая как это работает. Скрипт для более менее автоматической установки ниже в соотвествующем разделе.


Установка TexLive


Разумеется, можно установить только нужные части данного пакета. Но лично мне было откровенно лень искать минимально необходимую рабочую инсталляцию. Чтобы все точно работало, устанавливаем весь пакет TexLive. Он называется texlive-full и весит чуть больше 2х гигабайт, имейте данный факт в виду. Выполняем команду:


user@hostname:~$ sudo apt install texlive-full -y

После достаточно долгой установки можно переходить к следующему пункту.


Установка конвертера Pandoc


Pandoc — пакет Linux, позволяющий преобразовывать некоторые текстовые форматы в другие. В нем много интересных возможностей, с которыми вы можете ознакомится самостоятельно в интернете. Нас же интересует только возможность преобразование markdown файла в PDF. Проверим установлен ли Pandoc и если нет, то установим его. Например так:


user@hostname:~$ dpkg -s pandoc

Если в выводе написано что не установлен — устанавливаем:


user@hostname:~$ sudo apt install pandoc -y

Установка MD2PDF


Можно проследовать на страницу скрипта на GitHub, и дальше действовать по инструкции.


Или скачать архив, распаковать в любую папку, открыть ее в терминале и опять таки следовать инструкциям.


Откройте терминал и выполните:


git clone https://github.com/melichron/md2pdf.git && cd md2pdf

Затем выполните с правами суперпользователя, например:


sudo ./install.sh

Имейте в виду скрипт использует утилиту для построения консольных диалогов whiptail. Если она у вас не установлена, или ставить ее вы не желаете, или хотите все сделать сами, то установите texlive-full и pandoc вручную и действуйте по инструкции дальше.


Установка md2pdf для всех пользователей:


root@host:~/md2pdf# cp ./src/template.tex $(kpsewhich -expand-var='$TEXMFLOCAL')
root@host:~/md2pdf# echo "#!/bin/bash" | tee usr/local/bin/md2pdf
root@host:~/md2pdf# echo "pandoc --output=\$1.pdf --from=markdown_github --latex-engine=pdflatex --listings --template=$(kpsewhich -expand-var='$TEXMFLOCAL')/template.tex \$1" | tee -a usr/local/bin/md2pdf
root@host:~/md2pdf# chmod 755 /usr/local/bin/md2pdf

Установка md2pdf для текущего пользователя:


user@host:~/md2pdf$ cp ./src/template.tex $(kpsewhich -expand-var='$TEXMFHOME')
user@host:~/md2pdf$ echo "#!/bin/bash" | tee ~/.local/bin/md2pdf
user@host:~/md2pdf$ echo "pandoc --output=\$1.pdf --from=markdown_github --latex-engine=pdflatex --listings --template=$(kpsewhich -expand-var='$TEXMFHOME')/template.tex \$1" | tee -a ~/.local/bin/md2pdf
user@host:~/md2pdf$ chmod 755 ~/.local/bin/md2pdf

Использование md2pdf


Просто откройте папку с Markdown файлом (some_file.md) в Терминале, и выполните команду:


user@hostname:~$ md2pdf some_file.md

В результате в папке появится файл some_file.md.pdf.


Заключение


На базе описанного метода можно построить какой угодно стиль PDF файлов, также можно конвертировать вместо md другие форматы, любые поддерживаемые Pandoc. Смею надеятся что однажды это инструкция пригодится 3 с половиной людям.

Tags:
Hubs:
+13
Comments17

Articles

Change theme settings