Questão Como posso converter Markdown com sabor de Github para um PDF


Recentemente, comecei a aprender o Markdown para usar 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.


109


origem


A coloração da sintaxe no GitHub não faz parte do GitHub Flavored Markdown. Pelo menos tanto quanto eu sei. - Der Hochstapler
@OliverSalzburg Github usa Linguista para fornecer realce de sintaxe. - DanteTheEgregore
@dillmo, Converta para HTML primeirodepois use o Chrome para imprimir para o pdf. - Pacerier


Respostas:


Eu tive sucesso usando firmeza para exibir a marcação no Chrome e, em seguida, usar a opção "Salvar como PDF" do Chrome na caixa de diálogo Imprimir.

pip install grip  
grip your_markdown.md

O grip 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).


111



isso é bastante fácil. - s2t2
grip your_markdown.md --export your_markdown.html é uma opção útil aqui. Exporta para o arquivo html, que pode ser impresso a partir da linha de comando usando algo como wkhtmltopdf. - Luke Exton
Infelizmente, o aperto requer o acesso ao GitHub. Não funciona offline - nowox
Alternativamente, você pode baixar (grátis!) Átomo (atom.io), abra seu arquivo no Atom, use control + shift + M para visualizá-lo na pré-visualização, salve como html, abra o html no seu navegador Chrome e salve como pdf. - Andrew Carter
Isso vem com a moldura do Github em torno dele. Existe uma maneira de imprimir em PDF, removendo as bordas / barra de título (ou seja, imprimindo tudo dentro do quadro)? - Joost


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

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

39



Isso é muito legal e muito fácil. O problema do link vem do CSS css do html5, que você pode simplesmente comentar ou sobrescrever na sua própria folha de estilo. - Robert Went
Gostaria de acrescentar que isso tem suporte Unicode pronto para uso, o que é muito bom. - Niek
Você também pode instalar github-markdown-css para se você quiser usar o arquivo CSS do GitHub. - jpmc26
@ jpmc26 como você pode usá-lo, eu não sou conhecimento de javascript ou npm? - Abhishek Bhatia
@AbhishekBhatia Este é o primeiro resultado quando eu pesquisei "introdução npm": smalljs.org/package-managers/npm. É apenas um arquivo enterrado em node_modules quando você o instala. - jpmc26


Dê uma olhada 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.


31



Obrigado. Corrida pandoc -h retornou suporte para o GitHub Flavored Markdown, então estou marcando essa questão como resolvida. - dillmo
Tentei instalar pandoc no Fedora Linux e se deparou com um pesadelo de dependência - principalmente relacionado ao LaTex. Meu conselho seria pular o pandoc e tentar outras opções primeiro - IanB
Para aqueles que usam letras não-ASCII e os perdem: adicione opções de fonte para pandoc, como estes: --variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans" - gluk47
Se alguém está procurando apenas os comandos: sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf (no Ubuntu, provavelmente nem todo necessário), então pandoc --variable urlcolor=cyan myfile.md -o myfile.pdf - Tor Klingberg
@TorKlingberg Obrigado, acho que essa é a melhor resposta! - thc


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

Tudo que você precisa fazer é substituir github.com de 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.


11



Não funciona com imagens também. :( - Adam Arold
... e é mal formatado :( - Moebius
Opção interessante. Prós: links externos são mantidos e acessíveis a partir da saída. Contras: a saída é em preto e branco, os links de âncora são removidos, os links externos não são visualmente indicados porque são em preto e branco. - rodey


Existe um conversor online disponível em http://www.markdowntopdf.com
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.


7



Não manipula imagens em arquivos separados. - Larry K
funciona lindamente - shadi


Como afirmei no meu comentário, o Github usa 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 a partir de 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 você gostaria de seguir a rota do HTML ou LaTeX, você poderia tentar Destaque da fonte em vez de. Uma lista de todos os idiomas suportados pelo Source-highlight pode ser encontrada Aqui.

Alguns exemplos de comandos Source-highlight 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 produzindo seu próprio arquivo HTML:

Hello1.html
Hello2.html
Hello3.html 

Outros exemplos de uso de destaque da fonte podem ser encontrados Aqui

janelas:

Vim, ps2pdf (fornecido por Ghostscript) e Destaque da fonte estão todos disponíveis via Cygwin.


6





Recentemente, criei um serviço para converter documentos de desconto em PDF. Ele suporta markdown com sabor do Github, bem como realce de sintaxe. O serviço está localizado em: http://markdown2pdf.com


3



não funciona com o arquivo zip: não foi possível encontrar o arquivo de remarcação no arquivo enquanto há um. - Moebius
tem "erro na conversão para pdf". Usando markdowntopdf.com em vez de kevgathuku - shadi


Solução de mina: converter markdown com pandoc para html (não esqueça usar css para pandoc para mostrar as bordas da tabela), abra-o 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 (por exemplo, aperto) 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 criei com o awk!


1



pandoc deve trabalhar para você com opções como --variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans" - gluk47
@ gluk47 legal, isso funciona! - Hi-Angel
Eu posso recomendar esta página para converter markdown em PDF (ou para impressão) markdownprint.com. - Johan O