0

markdown 2 pdf

Разные заметки я пишу, используя язык разметки markdown. И все у меня с ним хорошо. Но вот нужно было передать инструкцию в удобном виде, и не в wiki, а документом. И я подумал, а почему бы не в PDF?

Понятно, что на самом деле вариантов много и на markdown свет клином не сошелся — за то время, что я провел в поисках инструмента, можно было в том же libreoffice сделать. Но дело принципа — из markdown сделать PDF.

На самом деле задача легко решается готовыми инструментами.
Вот несколько полезных ссылок:

Это далеко не полный список, в просторах можно найти много других решений. Но никто не приглянулся по разным причинам. Кто не хотел запускаться и требовал внимания, кто тащил за собой целую кучу пакетов.. В онлайн я не очень хотел передавать пароли.

Мой выбор — не новое решение, а связка двух инструментов — python скрипт markdown2 и wkhtmltopdf.

Первый делает из markdown html, второй из html pdf.
После установки я убедился, что по отдельности они работают и написал элементарный скрипт:

#!/bin/sh

WORKDIR="/home/extor/wiki"
CSS="$WORKDIR/tools/css/style2.css"
HTML_HEADER="<!DOCTYPE html><html lang="ru-RU"><head><meta charset="UTF-8"><link rel='stylesheet' href='$CSS'/></head>n"
HTML_FOOTER="</html>"

usage() {
    echo "Usage: script <input_file>"
}

if [ $# -eq 1 ];then
    echo $HTML_HEADER > $WORKDIR/$1.html
    markdown2 $1 >> $WORKDIR/$1.html
    echo $HTML_FOOTER >> $WORKDIR/$1.html
    wkhtmltopdf $WORKDIR/$1.html $WORKDIR/$1.pdf
else
    usage
fi

Для моих нужд хватило, возможно нюансы вылезут потом. =)

Думаю, идею я передал. Соль в том, что красоту html и pdf файла легко править единственной css. Свою я стянул у JasonM23

Alexey Egorychev

FreeBSD and Linux sysadmin. Know many systems like mailsystems, DB, WWW stack. Automation with salt, ansible. Monitoring with nagios, zabbix.