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

Come posso convertire Github-Flavored Markdown in un PDF

Ho recentemente iniziato a imparare Markdown per l'uso con la documentazione, e ho bisogno di stampare alcune delle mie pagine Markdown. Vorrei usare un'utilità a riga di comando, terminale, ecc. che mi permetta di convertire Markdown al gusto di Github in PDF. Ha bisogno di avere una corretta evidenziazione della sintassi e non dovrebbe sembrare orribile. Grazie per qualsiasi aiuto.

Risposte (12)

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

Ho avuto successo usando grip per visualizzare markdown in Chrome e poi usare l'opzione “Salva come PDF” di Chrome nella finestra di dialogo della stampa.

pip install grip  
grip your_markdown.md

grip renderà il markdown su localhost:5000 - basta modificare e aggiornare il browser. Stampa quando è pronto.

Questo dà una rappresentazione più affidabile di pandoc ed è più leggero dell'installazione di latex (richiesto da pandoc per la generazione di pdf).

La stampa non è la linea di comando in questa risposta, ma ancora trovato questo più facile / più affidabile (sembrava al 100% come Github per un lungo documento che includeva immagini relativamente collegate e evidenziazione del codice).

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

Puoi anche usare Node.js basato su markdown-pdf

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

Dai un'occhiata a pandoc . Ha l'evidenziazione della sintassi. Potrebbe richiedere modifiche (minori) al tuo documento poiché ha il suo gusto di markdown e non so quanto strettamente corrisponda al gusto di GitHub.

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

Se il file markdown era ospitato su un repository github, gitprint è un'opzione interessante per creare pdf / stampa.

Tutto quello che devi fare è sostituire github.com con gitprint.com nell'URL. Ecco un esempio dalla homepage di gitprint.

Sfortunatamente, non funziona sulle gist in markdown, e funziona solo con i file in markdown del repository.

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

C'è un convertitore online disponibile su http://www.markdowntopdf.com Questo fornisce l'evidenziazione della sintassi fuori dalla scatola ed è la soluzione più semplice che ho visto finora. Gestisce anche correttamente altre caratteristiche specifiche di GFM, per esempio le tabelle.

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

Come ho detto nel mio commento, Github usa Linguist per fornire l'evidenziazione della sintassi. Su Github, puoi usarlo per specificare l'evidenziazione della sintassi in questo modo:

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


Purtroppo, non c'è un buon modo per convertire Markdown direttamente in un file PDF con evidenziazione della sintassi. 

### Alternative: 

**Vim** : 

Se hai vim, puoi facilmente ottenere l'evidenziazione della sintassi eseguendo quanto segue da un terminale: 

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

Oppure all'interno di vim:

:hardcopy >/path/to/file.ps

Questo produrrà un file PostScript che può essere convertito in pdf usando, per esempio, ps2pdf:

ps2pdf /path/to/file.ps

Source-highlight :

Se invece vuoi seguire la strada dell'HTML o del LaTeX, puoi provare Source-highlight . Una lista di tutti i linguaggi supportati da Source-highlight può essere trovata qui .

Alcuni comandi di esempio di Source-highlight includono:

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 questo file di input

E ognuno che produce il suo rispettivo file HTML: Hello1.html Hello2.html Hello3.html

Altri esempi di utilizzo di Source-highlight possono essere trovati qui

Windows : Vim , ps2pdf (fornito da Ghostscript ) e Source-highlight sono tutti disponibili tramite Cygwin .

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

Per quelli con Linux, usate pandoc .

Installare:

sudo apt install pandoc texlive-latex-extra

Sì, hai bisogno del pacchetto -extra a causa dei font.

Convertire:

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

Ho recentemente creato un servizio per convertire documenti markdown in PDF. Supporta il markdown di Github e l'evidenziazione della sintassi. Il servizio si trova a: http://markdown2pdf.com

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

Ho provato diversi plugin per chrome e convertitori online. MDtr2PDF è il migliore. Supporta Github-flavoured-markdown e unicode.

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

Ho avuto più fortuna con VSCode e l'estensione Markdown PDF . I convertitori online hanno incasinato la codifica dei miei file o inserito watermark nell'intestazione.

Uso:

  1. Installa l'estensione
  2. Apri il tuo file MD con VSCode, assicurati che l'evidenziazione Markdown sia abilitata
  3. Apri la palette dei comandi (F1), digita export e seleziona markdown-pdf: Export (pdf)

NB: L'estensione installa e usa una versione locale di Chromium in background.

Ci sono diverse opzioni per controllare la formattazione, sono tutte spiegate sul sito web collegato sopra

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

Ho raffinato questo snippet per le mie esigenze personali:

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

Salva come /usr/local/bin/md2pdf e sudo chmod +x /usr/local/bin/md2pdf dopo.

Uso:

  • md2pdf converte README.md in README.md.pdf

  • md2pdf foo.md converte foo.md in foo.md.pdf

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

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

La mia soluzione: convertire markdown con pandoc in html (non dimenticare di usare i css per pandoc per mostrare i bordi delle tabelle), poi aprirlo con libreoffice, scegliere un'opzione export as pdf.

NB : nessuna delle soluzioni menzionate qui e su Internet ha funzionato per me: 1) le soluzioni basate sul browser (cioè grip) aggiungono informazioni in eccesso, come i numeri di pagina, che non sono riuscito a rimuovere, 2) la conversione di pandoc in pdf è rotta, per me genera una tabella vuota (forse a causa di unicode, e sì, l'ho configurata per usare xetex), 3) le soluzioni basate sul sito (i. e. gitprint.com) aggiungono anche cose ridondanti, come i margini tipo github, mentre a me basta una semplice tabella generata con awk!