Как преобразовать Markdown + CSS → PDF?

Я пытаюсь преобразовать файл Markdown в PDF. Я ищу только две вещи:

  • Способ легко изменить стиль pdf (например, с помощью файла CSS)
  • Ярлык синтаксиса для кодовых блоков

Какие инструменты я могу использовать для этого? Я попробовал Pandoc, но он использует Latex для форматирования, которое нелегко использовать.

Ответ 1

Pandoc может конвертировать ваш Markdown в HTML, но стиль/макет - это отдельная тема. Если вы хотите создать PDF, но использовать CSS для стилизации, вам нужно что-то, что может интерпретировать CSS. Это значит, что вы можете использовать браузер и печатать в PDF, заплатить за Prince или попробовать wkhtmltopdf. Кстати, pandoc также может использовать wkhtmltopdf сейчас:

pandoc -t html --css mystyles.css input.md -o output.pdf

Но я подозреваю, что если вы хотите получить красиво набранный PDF файл бесплатно, вам придется изучить LaTeX или ConTeXt, современную и более автономную замену LaTeX, обе можно использовать с pandoc., Смотрите создание PDF с помощью pandoc.

Вы также можете попробовать PanWriter: созданный мной редактор уценок, где вы можете внедрять CSS и экспортировать PDF из разбитого на страницы предварительного просмотра.

Ответ 2

Существует действительно хороший и простой инструмент для просмотра документов Markdown, который дополнительно поддерживает функции экспорта в PDF:

GFMS - сервер уценки со вкусом Github

Это простой и легкий (без необходимости настройки) HTTP-сервер, который вы можете запустить в любом каталоге, содержащем файлы уценки, чтобы просмотреть их.

Особенности:

  • полная поддержка GFM Markdown
  • Подсветка синтаксиса исходного кода
  • просмотр файлов и каталогов
  • красивый вывод (и настраиваемые таблицы стилей CSS)
  • экспорт в PDF (лучший вывод уценки в PDF, который я когда-либо видел)

gfms -p 8888

wget "http://localhost:8888/file.md?pdf" -O file.pdf

Ответ 3

В определенной степени я бы предложил просто изучить базовое латексное форматирование, которое вам нужно - оно удаляет слой интерпретации рендерером.

Однако pandoc поддерживает html-вход, поэтому теоретически вы можете экспортировать markdown- > html (с помощью настраиваемого css), а затем снова вызвать pandoc для преобразования в html. Я не знаю, будет ли (или сколько) форматирование сохранено - css может быть очень сложным для синтаксического анализа.