Moeiteloze export van github wiki (?)

Ik verzamel nogal wat materiaal in een GitHub-wiki. Ik gebruik de wiki graag om met andere mensen samen te werken en IMHO is het platform echt leuk, ik vind het leuk!

Dus ik wil de GH-wiki blijven gebruiken om dingen te verzamelen, te bewerken, op te slaan, enz. Maar ik wil ook de inhoud exporteren om een ​​pdf-bestand te maken dat we “een handleiding” kunnen noemen.
Ik wil graag automatisch een bijgewerkte versie van de handleiding genereren telkens als ik slechts een paar scripts wil uitvoeren, ik kan hier niet te veel moeite voor doen.

Ik denk dat het mogelijk is om de inhoud op de een of andere manier te exporteren en pandoc te gebruiken (http://johnmacfarlane.net/pandoc/) om de pdf te maken, kunt u misschien een index en een stijlbestand toevoegen.

Een ander interessant idee zou kunnen zijn om één keer per maand een website te publiceren en inhoud rechtstreeks van de wiki te dumpen.

Ik denk dat andere mensen al zoiets hebben gedaan, maar ik heb niets gevonden.
Enig idee?


Antwoord 1, autoriteit 100%

Maar… de Github-wiki van een GitHub-repo is een git-repo op zich (geïntroduceerd in augustus 2010).

Je kunt het klonen, erop duwen of eruit trekken.

Elke wiki is een Git-repository, dus je kunt ze net als al het andere pushen en pullen.
Elke wiki respecteert dezelfde rechten als de bronrepository.
Voeg gewoon “.wiki” toe aan een willekeurige repositorynaam in de URLen je bent klaar om te gaan.

Dat maakt het gedeelte ‘exporteren’ van uw vraag echt triviaal.

Vanaf daar vind je talloze scripts voor het converteren van markdown-pagina’s naar pdf:


Antwoord 2, autoriteit 18%

Ik voeg iets toe aan dit antwoord, voor het geval nieuwe lezers er iets aan hebben 🙂 dit is wat ik deed:

Ik heb GitHub Desktop geïnstalleerd: https://desktop.github.com/

Vervolgens klikte ik op de wiki-pagina in mijn repository op “Klonen op bureaublad”
Klonen

Hiermee is de wiki lokaal opgeslagen als een .md-bestand (na het volgen van de stappen op het scherm)

Vervolgens gebruikte ik http://www.markdowntopdf.com/om het naar pdf te converteren
(Opmerking: ik heb de bestanden hernoemd om tekens te verwijderen die niet zouden werken in een pdf-bestandsnaam voordatze naar de website uploadden)

Het eindresultaat was erg mooi.


Antwoord 3, autoriteit 5%

Ik vond veel van de oplossingen moeilijk te reproduceren/de juiste versie te krijgen/begrijpen/repareren/etc… Dus in plaats daarvan presenteer ik een patchwork docker-oplossing om moeiteloos te converteren op Windows (met git bash)/MacOS/ Linux in 5 “eenvoudige” commando’s

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

De perl is het belangrijkste onderdeel dat kan mislukken zonder een betere oplossing. Pandoc heeft een heel goede filteroplossing, maar gebruikt de github-pijplijn niet.

Bugs:

  • Extra brede codeblokken worden weergegeven met een schuifbalk en worden in wezen afgesneden in de pdf. Het zou het beste zijn om het codeblok niet te laten overlopen, maar u kunt --user-style-sheet user.csstoevoegen aan het wkhtmltopdf-commando (vóór toc/cover), en voeg toe aan uw user.css

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • Sommige links in de uiteindelijke pdf zijn per +1 pagina verwijderd, andere niet. Weet niet wat het patroon is. Maar ankers met id’s (#) lijken dit probleem niet te hebben


Antwoord 4, autoriteit 3%

Ik vond het erg vervelend om elk markdown-document apart te moeten converteren (koppelingen tussen markdown-documenten gaan verloren), dus heb ik uiteindelijk een eenvoudig C#-programma geschreven voor mijn eigen gebruik dat dit in één stap doet: a) Download de laatste versie van de wiki van Github, b) Converteer alle markdown-documenten samengevoegd tot één pdf

Je kunt de binaire bestanden (Windows of elk platform dat Mono ondersteunt) downloaden van:
https://github.com/borjafdezgauna/CoderDocTools/releases/latest

Als u bijvoorbeeld de SimionZoo-repository door gebruiker simionsoft naar PDF wilt converteren, kunt u:

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

Antwoord 5

Ik heb precies dit bereikt bij het maken van de draagbare documentatie voor Barcode Writer in Pure PostScript:

GitHub Wiki+ Makefile + pandoc → PDF

Het proces wordt beschreven in deze blogbericht.


Antwoord 6

Een andere optie als je de wiki hebt gekloond, vooral als je Atom al gebruikt, is om deze Markdown te gebruiken om PDF-pakket.
Werkte geweldig voor mij.


Antwoord 7

Je kunt ook html_links_to_pdfproberen!

Het is een Python 3-script dat alleen is gemaakt om een ​​GitHub Wiki naar pdf-vorm te converteren, met dezelfde stijl die GitHub gebruikt, maar iets schoner.

Other episodes