Вопрос: Как я могу превратить Gythub-Flavored Markdown в PDF


Недавно я начал изучать Markdown для использования с документацией, и вам нужно распечатать несколько моих страниц Markdown. Я хотел бы использовать утилиту командной строки, Terminal и т. Д., Которая позволяет мне преобразовывать Markdown в формат PDF в формате Github. Он должен иметь правильную подсветку синтаксиса и не должен выглядеть ужасно. Спасибо за любую помощь.


108
2017-12-16 11:52


Источник


Синтаксическая раскраска на GitHub не является частью GitHub Flavored Markdown. По крайней мере, насколько я знаю. - Der Hochstapler
@OliverSalzburg Github использует лингвист для выделения подсветки синтаксиса. - DanteTheEgregore
@dillmo, Конвертировать сначала HTML, затем используйте Chrome для печати в PDF. - Pacerier


Ответы:


Я успешно использовал рукоятка для отображения уценки в Chrome, а затем используйте параметр «Сохранить как PDF» в диалоговом окне «Печать».

pip install grip  
grip your_markdown.md

захват отобразит уценку на localhost: 5000 - просто отредактируйте и обновите браузер. Печать при готовности.

Это дало более надежное представление, чем pandoc, и было легче, чем установка латекса (требуется pandoc для создания pdf).

Печать не является командной строкой в ​​этом ответе, но все же нашла это проще / надежнее (выглядела на 100% как Github для длинного документа, включая относительно связанные изображения и выделение кода).


111
2018-02-27 13:55



это достаточно просто. - s2t2
grip your_markdown.md --export your_markdown.html это полезный вариант здесь. Экспортирует его в html-файл, который затем можно распечатать из командной строки, используя что-то вроде wkhtmltopdf. - Luke Exton
К сожалению, захват требует доступа к GitHub. Он не работает в автономном режиме - nowox
В качестве альтернативы вы можете скачать (бесплатно!) Atom (atom.io), откройте свой файл в Atom, используйте control + shift + M, чтобы просмотреть его в предварительном просмотре, сохранить как html, затем открыть html в браузере Chrome и сохранить в формате pdf. - Andrew Carter
Это действительно связано с обложкой, подобной Гитубу. Есть ли способ печати в PDF, удаление границ / заголовка (т. Е. Печать всего внутри фрейма)? - Joost


Вы также можете использовать Node.js на основе уценки-PDF

npm install -g markdown-pdf
markdown-pdf /path/to/markdown

38
2018-04-16 01:52



Это довольно удивительно и очень легко. Проблема с ссылкой возникает из html5 printplate css, который вы можете просто прокомментировать или переопределить в своей таблице стилей. - Robert Went
Хотелось бы добавить, что у этого есть готовая поддержка Unicode, что очень приятно. - Niek
Вы также можете установить GitHub-уценки-CSS если вы хотите использовать файл CSS GitHub. - jpmc26
@ jpmc26 как вы можете его использовать, я не знаю javascript или npm? - Abhishek Bhatia
@AbhishekBhatia Это первый результат, когда я googled "npm introduction": smalljs.org/package-managers/npm, Это просто файл, зарытый в node_modules после его установки. - jpmc26


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


31
2018-02-11 12:22



Благодарю. Бег pandoc -h возвратила поддержку GitHub Flavored Markdown, поэтому я отмечаю этот вопрос как разрешенный. - dillmo
Я попытался установить pandoc на Fedora Linux и столкнулся с кошмаром зависимости - в основном связанным с LaTex. Моим советом было бы пропустить pandoc и сначала попробовать другие варианты - IanB
Для тех, кто использует буквы, отличные от ASCII, и их не хватает: добавьте параметры шрифта в pandoc, как это: --variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans" - gluk47
Если кто-то ищет только команды: sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf (на Ubuntu, возможно, не все необходимое), то pandoc --variable urlcolor=cyan myfile.md -o myfile.pdf - Tor Klingberg
@TorKlingberg Спасибо, я думаю, что это лучший ответ! - thc


Если файл уценки был размещен в репозитории github, gitprint является интересным вариантом для создания pdf / print.

Все, что вам нужно сделать, это заменить github.com от gitprint.com в URL. Вот пример с домашней страницы gitprint.

К сожалению, он не работает с метками уценки и работает только с файлами разметки в репозитории.


11
2017-08-08 02:44



Он также не работает с изображениями. :( - Adam Arold
... и плохо сформирован :( - Moebius
Интересный вариант. Плюсы: внешние ссылки поддерживаются и доступны с выхода. Минусы: вывод черно-белого, анкерные ссылки удалены, внешние ссылки не отображаются визуально, потому что они черно-белые. - rodey


Существует онлайн-конвертер, доступный в http://www.markdowntopdf.com
Это обеспечивает выделение синтаксиса из коробки и является самым простым решением, которое я видел до сих пор. Он также правильно обрабатывает другие функции, специфичные для GFM, например. столы.


7
2017-07-10 08:44



Не обрабатывает изображения в отдельных файлах. - Larry K
прекрасно работает - shadi


Как я сказал в своем комментарии, Github использует лингвист для выделения подсветки синтаксиса. В Github вы можете использовать это, чтобы выделить подсветку синтаксиса следующим образом:

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

К сожалению, нет хорошего способа конвертировать Markdown непосредственно в файл PDF с подсветкой синтаксиса.

Альтернативы:

напор:

Если у вас есть vim, вы можете легко добиться выделения синтаксиса, выполнив следующее из терминала:

vim -c hardcopy -c quit /path/to/file.ps

Или внутри vim:

:hardcopy >/path/to/file.ps

Это создаст файл PostScript, который можно преобразовать в pdf, например, ps2pdf:

ps2pdf /path/to/file.ps

Источник-Изюминка:

Если вы хотите пойти по пути HTML или LaTeX, вы можете попробовать Источник-Изюминка вместо. Список всех языков, поддерживаемых Source-highlight, можно найти Вот,

Несколько примеров команд Source-highlight:

source-highlight -s java -f html -i Hello.java -o Hello1.html
source-highlight -s java -f html --input Hello.java --output Hello2.html --doc
source-highlight -s java -f html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3

С помощью этот входной файл

И каждый из них выводит свой собственный HTML-файл:

Hello1.html
Hello2.html
Hello3.html 

Дополнительные примеры использования Source-highlight можно найти Вот

Windows:

напор, ps2pdf (предоставляется Ghostscript) а также Источник-Изюминка все доступны через Cygwin,


6
2017-12-16 14:08





Недавно я создал службу для преобразования документов разметки в PDF. Он поддерживает уценку Github, а также подсветку синтаксиса. Услуга находится по адресу: http://markdown2pdf.com


3
2017-08-27 03:55



не работает с zip-файлом: не удалось найти файл отметки в архиве, пока он есть. - Moebius
получил «ошибку в преобразовании в pdf». С помощью markdowntopdf.com вместо этого из кевгатуку - shadi


Мое решение: конвертировать уценку с pandoc в html (не забывайте использовать css для pandoc для отображения границ таблицы), затем откройте его libreoffice, выберите опцию export as pdf,

NB: ни один из упомянутых здесь и в интернет-решениях не работал: 1) браузерные решения (то есть захвата) добавляет лишнюю информацию, например номера страниц, которые мне не удалось удалить, 2) конвертируется pandoc в pdf, для меня он порождает пустую таблицу (возможно, из-за юникода, и да, я настроил его на использование xetex), 3) решения на основе сайта (т. е. gitprint.com) также добавляют избыточные вещи, такие как поля, подобные github, тогда как мне нужна простая таблица, которую я создал с awk!


1
2017-09-10 09:56



pandoc должен работать для вас с такими параметрами, как --variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans" - gluk47
@ gluk47 круто, это работает! - Hi-Angel
Я могу порекомендовать эту страницу для преобразования уценки в PDF (или для печати) markdownprint.com, - Johan O


Я пробовал несколько chrome плагинов и онлайн-конвертеров.
MDtr2PDF является лучшим. Он поддерживает Github-flavored-markdown и unicode.


1
2017-10-07 10:49



Поддерживает ли он изображения, хранящиеся в других файлах? - Larry K


Я уточнил этот фрагмент для моих личных потребностей:

# sudo apt install grip wkhtmltopdf

MD=${1:-README.md}
PDF=${2:-"$MD".pdf}
PORT=8971
DELAY=10

printf "Converting $MD to $PDF on port $PORT\n"
printf "Waiting $DELAY seconds for server to start...\n"

grip "$MD" localhost:$PORT &
sleep $DELAY
wkhtmltopdf http://localhost:$PORT "$PDF"
kill $(ps -eo pid,command | grep grip | grep -v grep | awk '{print $1}')

Сохранить как /usr/local/bin/md2pdf а также sudo chmod +x /usr/local/bin/md2pdf после этого.

Применение:

  • md2pdf конвертирует README.md в README.md.pdf

  • md2pdf foo.md конвертирует foo.md в foo.md.pdf

  • md2pdf foo.md bar.pdf конвертирует foo.md в bar.pdf


0
2018-05-15 17:41