Como posso converter o Markdown com sabor de Github em um PDF

113

Recentemente, comecei a aprender o Markdown para uso com documentação e preciso imprimir algumas das minhas páginas do Markdown. Eu gostaria de usar um utilitário de linha de comando, Terminal, etc. que me permite converter o Markdown com sabor de Github em PDF. Ele precisa ter um realce de sintaxe adequado e não deve parecer horrível. Obrigado por qualquer ajuda.

    
por dillmo 16.12.2013 / 12:52

11 respostas

114

Eu tive sucesso usando o aperto para exibir o markdown no Chrome e, em seguida, usar a opção "Salvar como PDF" do Chrome no Print diálogo.

pip install grip  
grip your_markdown.md
O

grip irá renderizar o markdown no localhost: 5000 - basta editar e atualizar o navegador. Imprima quando estiver pronto.

Isso deu uma representação mais confiável do que o pandoc e foi mais leve do que a instalação do latex (exigida pelo pandoc para geração de pdf).

A impressão não é uma linha de comando nesta resposta, mas ainda assim ficou mais fácil / confiável (parecia 100% como o Github para um documento longo incluindo imagens relativamente ligadas e realce de código).

    
por 27.02.2014 / 14:55
41

Você também pode usar o markdown-pdf do Node.js

npm install -g markdown-pdf
markdown-pdf /path/to/markdown
    
por 16.04.2015 / 03:52
32

Dê uma olhada no pandoc . Ele possui realce de sintaxe. Isso pode exigir que você faça (pequenas) alterações em seu documento, já que ele tem seu próprio estilo de marcação e não sei o quanto ele corresponde ao sabor do GitHub.

    
por 11.02.2014 / 13:22
11

Se o arquivo de remarcação estiver hospedado no repositório do github, o gitprint é uma opção interessante para criar pdf / impressão.

Tudo o que você precisa fazer é substituir github.com by gitprint.com no URL. Aqui está um exemplo da página inicial do gitprint.

Infelizmente, ele não funciona em visores de markdown, e funciona apenas com arquivos markdown no repositório.

    
por 08.08.2014 / 04:44
7

Há um conversor on-line disponível no link
Isso fornece destaque de sintaxe fora da caixa e é a solução mais simples que já vi até agora. Também lida corretamente com outras características específicas do GFM, por ex. tabelas.

    
por 10.07.2015 / 10:44
6

Como afirmei no meu comentário, o Github usa o Linguista para fornecer realce de sintaxe. No Github, você pode usar isso para especificar o realce da sintaxe da seguinte forma:

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

Infelizmente, não há uma boa maneira de converter o Markdown diretamente em um arquivo PDF com realce de sintaxe.

Alternativas:

Vim :

Se você tiver o vim, poderá facilmente obter destaque da sintaxe executando o seguinte em um terminal:

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

Ou dentro do vim:

:hardcopy >/path/to/file.ps

Isso produzirá um arquivo PostScript que pode ser convertido em pdf usando, por exemplo, ps2pdf:

ps2pdf /path/to/file.ps

Destaque da fonte :

Se preferir seguir a rota de HTML ou LaTeX, você pode tentar Fonte -highlight em vez disso. Uma lista de todos os idiomas suportados pelo Source-highlight pode ser encontrada aqui .

Alguns exemplos de comandos de destaque da fonte incluem:

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

Usando este arquivo de entrada

E cada um enviando seu próprio arquivo HTML:

Hello1.html
Hello2.html
Hello3.html

Mais exemplos de uso de destaque da fonte podem ser encontrados aqui

Windows :

Vim , ps2pdf (fornecido por Ghostscript ) e Destaque da fonte estão disponíveis através do Cygwin .

    
por 16.12.2013 / 15:08
3

Eu criei recentemente um serviço para converter documentos de descontos em PDF. Ele suporta markdown com sabor do Github, bem como realce de sintaxe. O serviço está localizado em: link

    
por 27.08.2015 / 05:55
1

Solução de mina: converter markdown com pandoc para html (não se esqueça de usar css para pandoc para mostrar as bordas da tabela) e, em seguida, abra-a com libreoffice , escolha uma opção export as pdf .

NB : nenhuma das soluções mencionadas aqui e na Internet funcionou para mim: 1) soluções baseadas em navegador (ou seja, grip) estão adicionando informações em excesso, como números de páginas , que eu não consegui remover, 2) conversão de pandoc para pdf está quebrada, para mim gera uma tabela vazia (talvez por causa do unicode, e sim, eu configurei para usar o xetex) , 3) soluções baseadas em site (por exemplo, gitprint.com) também estão adicionando coisas redundantes, como margens do tipo github, enquanto eu preciso apenas de uma tabela simples que eu gerou com o awk!

    
por 10.09.2016 / 11:56
1

Eu já experimentei vários plugins e conversores on-line do Chrome. O MDtr2PDF é o melhor. Suporta markdown com sabor a Github e unicode.

    
por 07.10.2017 / 12:49
1

Para quem tem Linux, use pandoc .

Instalar:

sudo apt install pandoc texlive-latex-extra

Sim, você precisa de -extra package por causa das fontes.

Converter:

pandoc --from markdown -o output.pdf my-file.md
    
por 22.08.2018 / 16:39
0

Refinei este snippet para minhas necessidades pessoais:

# 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}')

Salvar como /usr/local/bin/md2pdf e sudo chmod +x /usr/local/bin/md2pdf depois.

Uso:

  • md2pdf converte o README.md em README.md.pdf

  • md2pdf foo.md converte foo.md para foo.md.pdf

  • md2pdf foo.md bar.pdf converte foo.md para bar.pdf

por 15.05.2018 / 19:41

Tags