2013-12-16 11:52:11 +0000 2013-12-16 11:52:11 +0000
159
159

Como posso converter o Github-Flavored Markdown para um PDF

Comecei recentemente a aprender Markdown para utilização com documentação, e preciso de imprimir algumas das minhas páginas de Markdown. Gostaria de utilizar um utilitário de linha de comando, Terminal, etc. que me permita converter Markdown com sabor a Github para PDF. Precisa de ter o devido destaque de sintaxe e não deve ter um aspecto horrível. Obrigado por qualquer ajuda.

Respostas (12)

161
161
161
2014-02-27 13:55:56 +0000

Tive sucesso usando grip para exibir a marcação em Cromo e depois usar a opção “Guardar como PDF” do Cromo no diálogo Imprimir.

pip install grip  
grip your_markdown.md

grip irá tornar a marcação no localhost:5000 - basta editar e actualizar o browser. Imprimir quando estiver pronto.

Isto deu uma representação mais fiável do que o pandoc e foi mais leve do que a instalação de látex (exigida pelo pandoc para a geração de pdf).

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

56
56
56
2015-04-16 01:52:57 +0000

Também pode usar Node.js baseado markdown-pdf

npm install -g markdown-pdf
markdown-pdf /path/to/markdown
43
43
43
2014-02-11 12:22:33 +0000

Dêem uma olhada em pandoc . Tem um realce de sintaxe. Pode exigir que faça (pequenas) alterações ao seu documento, uma vez que tem o seu próprio sabor de markdown e não sei até que ponto se aproxima do sabor de GitHub.

12
12
12
2014-08-08 02:44:02 +0000

Se o ficheiro markdown foi alojado no repositório github, gitprint é uma opção interessante para criar pdf / imprimir.

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

Infelizmente, não funciona com as listas de remarcação para baixo, e funciona apenas com ficheiros de remarcação para baixo no repositório.

8
8
8
2015-07-10 08:44:36 +0000

Há um conversor online disponível em http://www.markdowntopdf.com Isto fornece destaque de sintaxe fora da caixa e é a solução mais simples que já vi até agora. Também trata correctamente outras características específicas do GFM, por exemplo, tabelas.

6
6
6
2013-12-16 14:08:08 +0000

Como afirmei no meu comentário, Github usa Linguista para dar destaque à sintaxe. No Github, pode usar isto para especificar o realce de sintaxe desta forma:

```ruby 
requerem 'redcarpet' 
markdown = Redcarpet.new("Olá Mundo!") 
coloca markdown.to_html 


Infelizmente, não há uma boa maneira de converter Markdown directamente para um ficheiro PDF com realce de sintaxe. 


### Alternativas: 


**Vim** : 

Se tiver vim, pode facilmente obter destaque de sintaxe ao executar 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

Isto irá produzir um ficheiro PostScript que pode ser convertido para pdf usando, por exemplo, ps2pdf:

ps2pdf /path/to/file.ps

Source-highlight :

Se, em vez disso, quiser seguir a rota do HTML ou LaTeX, pode tentar Source-highlight em vez disso. Uma lista de todas as línguas suportadas por 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 ficheiro de entrada

E cada um produzindo o seu respectivo ficheiro HTML: Hello1.html Hello2.html Hello3.html

Outros exemplos de utilização de luz-fonte podem ser encontrados aqui

Windows : Vim , ps2pdf (fornecido por Ghostscript ) e Source-highlight estão todos disponíveis via Cygwin .

6
6
6
2018-08-22 14:39:58 +0000

Para aqueles com Linux, utilizar pandoc .

Instalar:

sudo apt install pandoc texlive-latex-extra

Sim, é necessário -extra pacote por causa das fontes.

Convert:

pandoc --from markdown -o output.pdf my-file.md
3
3
3
2015-08-27 03:55:39 +0000

Criei recentemente um serviço para converter documentos markdown para PDF. Suporta o markdown com sabor a Github, bem como o destaque da sintaxe. O serviço está localizado em: http://markdown2pdf.com

1
1
1
2017-10-07 10:49:27 +0000

Experimentei vários plugins cromados e conversores em linha. MDtr2PDF é o melhor. Suporta Github-flavoured-markdown e unicode.

1
1
1
2020-01-17 07:08:10 +0000

Tive a maior sorte com o VSCode e o Markdown PDF extensão. Os conversores em linha lixaram a codificação dos meus ficheiros ou inseriram marcas de água no cabeçalho.

Utilização:

  1. Instalar a extensão
  2. Abra o seu ficheiro MD com VSCode, certifique-se de que o destaque Markdown está activado
  3. Abra a paleta de comando (F1), digite export e seleccione markdown-pdf: Export (pdf)

NB: A extensão instala e utiliza uma versão local de Crómio em fundo.

Há várias opções para controlar a formatação, todas elas são explicadas no website acima

1
1
1
2018-05-15 17:41:27 +0000

Refinei este trecho para as 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.

Utilização:

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

  • md2pdf foo.md converte foo.md em foo.md.pdf

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

1
1
1
2016-09-10 09:56:12 +0000

Solução minha: converter markdown com pandoc para html (não se esqueça usar css para pandoc para mostrar os limites da tabela), depois abrir com libreoffice, escolher uma opção export as pdf.

NB : nenhuma das soluções mencionadas aqui e na Internet funcionou para mim: 1) soluções baseadas no browser (i.e. grip) estão a adicionar informação em excesso, como números de página, que não consegui remover, 2) a conversão do pandoc para pdf está avariada, para mim gera uma tabela vazia (talvez por causa de unicode, e sim, configurei-a para usar xetex), 3) soluções baseadas no site (i. e. gitprint.com) estão também a adicionar coisas redundantes, como margens semelhantes a github, enquanto eu preciso apenas de uma tabela simples que gerei com awk!