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

Wie kann ich Github-Flavored Markdown in ein PDF konvertieren

Ich habe vor kurzem begonnen, Markdown für die Verwendung mit Dokumentation zu lernen, und muss ein paar meiner Markdown-Seiten ausdrucken. Ich möchte ein Kommandozeilen-, Terminal-, etc. Dienstprogramm verwenden, das mir erlaubt, Github-flavored Markdown in PDF zu konvertieren. Es muss die richtige Syntaxhervorhebung haben und sollte nicht schrecklich aussehen. Danke für jede Hilfe.

Antworten (12)

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

Ich hatte Erfolg damit, grip zu verwenden, um Markdown in Chrome anzuzeigen und dann die Option “Als PDF speichern” von Chrome im Druckdialog zu verwenden.

pip install grip  
grip your_markdown.md

grip rendert das Markdown auf localhost:5000 - einfach weg editieren und den Browser aktualisieren. Drucken Sie, wenn Sie fertig sind.

Dies lieferte eine zuverlässigere Darstellung als pandoc und war leichter als die Installation von Latex (das von pandoc für die pdf-Erzeugung benötigt wird).

Der Druck ist in dieser Antwort nicht kommandozeilenfähig, aber ich fand dies trotzdem einfacher/zuverlässiger (sah zu 100 % wie Github für ein langes Dokument aus, einschließlich relativ verlinkter Bilder und Code-Hervorhebung).

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

Sie können auch Node.js-basierte markdown-pdf

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

Schauen Sie sich pandoc an. Es hat Syntax-Hervorhebung. Es könnte erfordern, dass Sie (kleinere) Änderungen an Ihrem Dokument vornehmen, da es seine eigene Geschmacksrichtung von Markdown hat und ich nicht weiß, wie genau sie mit der GitHub Geschmacksrichtung übereinstimmt.

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

Wenn die Markdown-Datei im Github-Repository gehostet wurde, ist gitprint eine interessante Option, um pdf / print zu erstellen.

Alles, was Sie tun müssen, ist, github.com durch gitprint.com in der URL zu ersetzen. Hier ist ein Beispiel von der Homepage von gitprint.

Leider funktioniert es nicht mit Markdown-Gists, sondern nur mit Markdown-Dateien im Repository.

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

Es gibt einen Online-Konverter unter http://www.markdowntopdf.com Dieser bietet Syntax-Highlighting out of the box und ist die einfachste Lösung, die ich bis jetzt gesehen habe. Er behandelt auch andere GFM-spezifische Funktionen korrekt, z. B. Tabellen.

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

Wie ich in meinem Kommentar angegeben habe, verwendet Github Linguist , um Syntaxhervorhebung bereitzustellen. Auf Github können Sie dies verwenden, um die Syntaxhervorhebung wie folgt anzugeben:

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


Leider gibt es keine gute Möglichkeit, Markdown direkt in eine PDF-Datei mit Syntaxhervorhebung zu konvertieren. 

### Alternativen: 

**Vim** : 

Wenn Sie vim haben, können Sie die Syntaxhervorhebung leicht erreichen, indem Sie das Folgende in einem Terminal ausführen: 

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

Oder innerhalb von vim:

:hardcopy >/path/to/file.ps

Dies erzeugt eine PostScript-Datei, die z.B. mit ps2pdf in pdf umgewandelt werden kann:

ps2pdf /path/to/file.ps

Quell-Highlight :

Wenn Sie stattdessen den Weg über HTML oder LaTeX gehen möchten, können Sie stattdessen Source-highlight verwenden. Eine Liste aller Sprachen, die von Source-highlight unterstützt werden, finden Sie hier .

Ein paar Beispiele für Source-highlight-Befehle sind:

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

Mit dieser Eingabedatei

Und jeder gibt seine eigene entsprechende HTML-Datei aus: Hello1.html Hello2.html Hello3.html

Weitere Beispiele für die Verwendung von Source-highlight finden Sie hier

Windows : Vim , ps2pdf (bereitgestellt von Ghostscript ) und Source-highlight sind alle über Cygwin verfügbar.

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

Für diejenigen mit Linux, verwenden Sie pandoc .

Installieren:

sudo apt install pandoc texlive-latex-extra

Ja, Sie benötigen das Paket -extra wegen der Schriftarten.

Konvertieren:

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

Ich habe kürzlich einen Dienst erstellt, um Markdown-Dokumente in PDF zu konvertieren. Er unterstützt Github flavoured markdown sowie Syntax-Highlighting. Der Dienst befindet sich unter: http://markdown2pdf.com

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

Ich habe mehrere Chrome-Plugins und Online-Konverter ausprobiert. MDtr2PDF ist das beste davon. Es unterstützt Github-flavoured-markdown und Unicode.

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

Ich hatte das meiste Glück mit VSCode und der Erweiterung Markdown PDF . Die Online-Konverter haben bei meinen Dateien die Kodierung vermasselt oder Wasserzeichen in den Header eingefügt.

Benutzung:

  1. Installieren Sie die Erweiterung
  2. Öffnen Sie Ihre MD-Datei mit VSCode, stellen Sie sicher, dass die Markdown-Hervorhebung aktiviert ist
  3. Öffnen Sie die Befehlspalette (F1), geben Sie export ein und wählen Sie markdown-pdf: Export (pdf)

Hinweis: Die Erweiterung installiert und verwendet eine lokale Version von Chromium im Hintergrund.

Es gibt mehrere Optionen zur Steuerung der Formatierung, sie werden alle auf der oben verlinkten Website erklärt

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

Ich habe dieses Snippet für meine persönlichen Bedürfnisse verfeinert:

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

Speichern als /usr/local/bin/md2pdf und sudo chmod +x /usr/local/bin/md2pdf danach.

Verwendung:

  • md2pdf konvertiert README.md zu README.md.pdf

  • md2pdf foo.md konvertiert foo.md zu foo.md.pdf

  • md2pdf foo.md bar.pdf konvertiert foo.md zu bar.pdf

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

Meine Lösung: markdown mit pandoc nach html konvertieren (nicht vergessen , css für pandoc zu verwenden um Tabellenränder anzuzeigen), dann mit libreoffice öffnen, eine Option export as pdf wählen.

NB : keine der hier und im Internet erwähnten Lösungen hat bei mir funktioniert: 1) Browser-basierte Lösungen (z.B. grip) fügen überflüssige Informationen hinzu, wie z.B. Seitenzahlen, die ich nicht entfernen konnte, 2) die Konvertierung von pandoc nach pdf ist fehlerhaft, bei mir erzeugt es eine leere Tabelle (vielleicht wegen Unicode, und ja, ich habe es so konfiguriert, dass es xetex verwendet), 3) Site-basierte Lösungen (z. z. B. gitprint.com) fügen auch überflüssige Dinge hinzu, wie github-ähnliche Ränder, während ich nur eine einfache Tabelle brauche, die ich mit awk erzeugt habe!