Недавно я начал изучать Markdown для использования с документацией, и мне нужно распечатать несколько моих страниц Markdown. Я хотел бы использовать утилиту командной строки, Terminal и т.д., Которая позволяет конвертировать Markdown со вкусом Github в PDF. Он должен иметь правильную подсветку синтаксиса и не должен выглядеть ужасно. Спасибо за любую помощь.
11 ответов
Мне удалось использовать ручку для отображения уценки в Chrome, а затем использовать Chrome "Сохранить как PDF" в диалоговом окне "Печать".
pip install grip
grip your_markdown.md
grip отобразит уценку на localhost:5000 - просто отредактируйте и обновите браузер. Распечатайте, когда будете готовы.
Это дало более надежное представление, чем pandoc, и имело меньший вес, чем установка латекса (требуется pandoc для генерации pdf).
Печать не является командной строкой в этом ответе, но все же оказалось, что это проще / надежнее (на 100% выглядел как Github для длинного документа, включающего относительно связанные изображения и подсветку кода).
Вы также можете использовать Node.js на основе markdown-pdf
npm install -g markdown-pdf
markdown-pdf /path/to/markdown
Посмотрите на Пандока. У него есть подсветка синтаксиса. Это может потребовать внесения (незначительных) изменений в ваш документ, так как он имеет собственный вид уценки, и я не знаю, насколько близко он соответствует вкусу GitHub.
Если файл уценки был размещен в репозитории github, gitprint - интересный вариант для создания pdf / print.
Все, что вам нужно сделать, это заменить github.com
на gitprint.com
в URL. Вот пример с домашней страницы gitprint.
К сожалению, он не работает со списками уценок и работает только с файлами уценок в хранилище.
На сайте http://www.markdowntopdf.com доступен онлайн-конвертер.
Это обеспечивает подсветку синтаксиса "из коробки" и является самым простым решением, которое я когда-либо видел. Он также правильно обрабатывает другие функции, специфичные для GFM, например таблицы.
Как я уже говорил в своем комментарии, Github использует Linguist для подсветки синтаксиса. На Github вы можете использовать это для указания подсветки синтаксиса следующим образом:
```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```
К сожалению, нет хорошего способа конвертировать Markdown напрямую в файл PDF с подсветкой синтаксиса.
Альтернативы:
Vim:
Если у вас есть 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:
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:
Vim, ps2pdf (предоставленный Ghostscript) и Source-highlight доступны через Cygwin.
Недавно я создал сервис для преобразования документов уценки в PDF. Он поддерживает уценку Github, а также подсветку синтаксиса. Сервис находится по адресу: http://markdown2pdf.com
Я пробовал несколько плагинов Chrome и онлайн-конвертеры.
MDtr2PDF является лучшим. Он поддерживает Github-flavored-Markdown и Unicode.
Мое решение: конвертируйте разметку с помощью pandoc
в html (не забудьте использовать css для pandoc для отображения границ таблицы), затем откройте ее с помощью libreoffice
, выберите вариант export as pdf
.
NB: ни одно из упомянутых здесь и в Интернете решений не работало для меня: 1) решения на основе браузера (например, сцепление) добавляют лишнюю информацию, например номера страниц, которую мне не удалось удалить, 2) преобразование pandoc в pdf сломанный, для меня он генерирует пустую таблицу (возможно, из-за юникода, и да, я настроил ее на использование xetex), 3) решения на основе сайтов (например, gitprint.com) также добавляют избыточные вещи, такие как github-подобные поля, тогда как Мне нужна простая таблица, которую я создал с помощью awk!
Для тех, кто с Linux, используйте pandoc.
Установка:
sudo apt install pandoc texlive-latex-extra
Да, вам нужен пакет -extra
из-за шрифтов.
Перерабатывать:
pandoc --from markdown -o output.pdf my-file.md
Я уточнил этот фрагмент для своих личных нужд:
# 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.pdfmd2pdf foo.md
преобразует foo.md в foo.md.pdfmd2pdf foo.md bar.pdf
преобразует foo.md в bar.pdf