it-swarm.com.de

Müheloser Export von Github-Wiki (?)

Ich sammle ziemlich viel Material in einem GitHub-Wiki. Ich mag es wirklich, das Wiki zu nutzen, um mit anderen Leuten zusammenzuarbeiten und IMHO ist die Plattform wirklich schön, ich mag es!

Ich möchte das GH-Wiki weiterhin verwenden, um Sachen zu sammeln, zu bearbeiten, zu speichern usw. Aber ich möchte auch den Inhalt exportieren, um eine PDF-Datei zu erstellen, die wir als "Handbuch" bezeichnen können Ich möchte jedes Mal, wenn ich nur ein paar Skripte ausführen möchte, automatisch eine aktualisierte Version des Handbuchs generieren, ich kann mich nicht allzu sehr darum kümmern.

Ich denke, es ist möglich, den Inhalt irgendwie zu exportieren und pandoc ( http://johnmacfarlane.net/pandoc/ ) zu verwenden, um die PDF-Datei zu erstellen und möglicherweise einen Index und eine Style-Datei hinzuzufügen.

Eine andere interessante Idee könnte sein, eine Website einmal im Monat zu veröffentlichen und Inhalte direkt aus dem Wiki zu entfernen.

Ich denke, andere Leute haben so etwas schon gemacht, aber ich habe nichts gefunden. Irgendeine Idee?

37
BigG

Aber ... das Github-Wiki eines GitHub-Repos ist ein Git-Repo für sich ( eingeführt im August 2010 ).

Sie können es klonen, auf es drücken oder daraus ziehen.

Jedes Wiki ist ein Git-Repository, also können Sie sie wie alles andere schieben und ziehen.
Jedes Wiki hat die gleichen Berechtigungen wie das Quell-Repository.
Fügen Sie einfach ".wiki" zu einem Repository-Namen in der URL hinzu, und schon kann es losgehen. 

Das macht den "Export" Teil Ihrer Frage wirklich trivial.

Von dort aus finden Sie Tonnen von Skript zum Konvertieren von Markdown-Seiten in PDF:

50
VonC

Ich füge diese Antwort hinzu, falls sie neuen Lesern hilft :) Ich habe folgendes getan:

Ich habe GitHub Desktop installiert: https://desktop.github.com/

Dann klickte ich auf der Wiki-Seite in meinem Repository auf "In Desktop klonen"  Clone

Dies speicherte das Wiki lokal als .md-Datei (nachdem Sie die Schritte auf dem Bildschirm ausgeführt hatten)

Ich habe dann http://www.markdowntopdf.com/ verwendet, um es in pdf .__ umzuwandeln. (Hinweis: Ich habe die Dateien umbenannt, um Zeichen zu entfernen, die in einem pdf-Dateinamen nicht funktionieren. Vor auf die Website hochladen)

Das Endergebnis war wirklich schön.

8
Sophia

Ich habe festgestellt, dass viele der Lösungen schwer zu reproduzieren sind/die richtige Version erhalten/verstanden/fix/etc ... Daher werde ich stattdessen eine Patchwork-Docker-Lösung vorstellen, die mühelos unter Windows (mit git bash)/MacOS/Linux in 5 konvertiert werden kann "einfache" Befehle

git clone {project_url}.wiki .

# Convert *.md to *.md.html using the actual github pipeline
docker run --rm -e DOCKER_USER_ID=`id -u` -e DOCKER_GROUP_ID=`id -u` \
            v "`pwd`:/src" -v "`pwd`:/out" andyneff/github-markdown-preview

# Fix hyperlinks, since wkhtmltopdf is stricter than github servers
docker run --rm -v `pwd`:/src -w /src Perl \
    Perl -p -i -e 's|(<a href=")([^/"#]+?)(#[^"]*)?(">.*?</a>)|\1\L\2\E.md.html\L\3\E\4|g'\
                  *.html

# Lowercase all filename so that hyperlink match
docker run --rm -v `pwd`:/src -w /src python \
    python -c 'import sys;import os; [os.rename(f, f.lower()) for f in sys.argv[1:]]' \
               *.md.html

#Convert html to pdf using QT webkit
docker run -it --rm -e DOCKER_USER_ID=`id -u` -e DOCKER_GROUP_ID=`id -u`\
           -v `pwd`:/work -w /work andyneff/wkhtmltopdf \
           wkhtmltopdf --encoding utf-8 --minimum-font-size 14 \
           --footer-left "[date]" --footer-right "[page] / [topage]" \
           --footer-font-size 10 \
           toc \
           *.html document.pdf

Das Perl ist der Hauptteil, der ohne eine bessere Lösung ausfallen kann. Pandoc hat eine wirklich gute Filterlösung, verwendet aber nicht die Github-Pipeline.

Fehler

  • Extrabreite Codeblöcke werden mit einer Bildlaufleiste gerendert und im PDF im Wesentlichen abgeschnitten. Es ist am besten, den Codeblock nicht überlaufen zu lassen. Sie können jedoch --user-style-sheet user.css zum Befehl wkhtmltopdf (vor toc/cover) hinzufügen und zu Ihrem user.css hinzufügen.

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • Einige Links in der endgültigen PDF-Datei sind um +1 Seite versetzt, andere nicht. Nicht sicher, was das Muster ist. Anker mit IDs (#) scheinen dieses Problem jedoch nicht zu haben

3
Andy

Ich fand es sehr ärgerlich, jedes Markdown-Dokument separat konvertieren zu müssen (Verknüpfungen zwischen Markdown-Dokumenten gehen verloren), und so habe ich ein einfaches C # -Programm für meinen eigenen Gebrauch geschrieben, das dies in einem einzigen Schritt erledigt: a) Laden Sie die letzte Version des Wikis herunter von Github, b) Wandle alle Markdown-Dokumente als ein PDF zusammen

Sie können die Binärdateien (Windows oder jede Plattform, die Mono unterstützt) von folgender Adresse herunterladen: https://github.com/borjafdezgauna/CoderDocTools/releases/latest

Wenn Sie beispielsweise vom Benutzer simionsoft in PDF= das SimionZoo-Repository konvertieren möchten, haben Sie folgende Möglichkeiten:

MarkdownToPDF.exe user=simionsoft project=SimionZoo output-file=SimionZoo.pdf
1
borjafdezgauna

Genau das habe ich beim Erstellen der portablen Dokumentation für Barcode Writer in Pure PostScript erreicht:

GitHub Wiki + Makefile + Pandoc → PDF

Der Prozess ist in diesem Blogbeitrag beschrieben.

1
Terry Burton

Sie können auch html_links_to_pdf versuchen!

Es ist ein Python 3-Skript, das nur zum Konvertieren eines GitHub-Wikis in ein PDF-Formular erstellt wurde. Es verwendet das gleiche Styling wie GitHub, jedoch etwas sauberer.

0
user3773048

Eine weitere Option, wenn Sie das Wiki geklont haben, insbesondere wenn Sie bereits Atom verwenden, ist die Verwendung dieses Markdown-Pakets zu PDF . Hat für mich großartig gearbeitet. 

0
davidheller