it-swarm.dev

Łatwy eksport z wiki github (?)

Zbieram sporo materiału w wiki GitHub. Bardzo lubię używać wiki do współpracy z innymi ludźmi i IMHO platforma jest naprawdę miła, lubię to!

Chciałbym więc nadal używać wiki GH do zbierania rzeczy, edytowania, zapisywania itd., Ale chciałbym również wyeksportować zawartość w celu utworzenia pliku pdf, który możemy nazwać „podręcznikiem” . lubię automatycznie generować zaktualizowaną wersję podręcznika za każdym razem, gdy chcę uruchomić kilka skryptów, nie mogę zbytnio się tym zajmować.

Sądzę, że można jakoś wyeksportować zawartość i użyć pandoc ( http://johnmacfarlane.net/pandoc/ ), aby utworzyć plik pdf, który może dodać indeks i plik stylu.

Innym interesującym pomysłem może być publikowanie strony internetowej raz w miesiącu, zrzucającej treść bezpośrednio z wiki.

Myślę, że inni ludzie już coś takiego zrobili, ale nie znalazłem niczego. Dowolny pomysł?

37
BigG

Ale ... wiki Github repo GitHub samo w sobie jest repozytorium git ( wprowadzone w sierpniu 2010 ).

Możesz go sklonować, pchnąć do niego lub wyciągnąć z niego.

Każda wiki jest repozytorium Git, więc możesz je naciskać i ciągnąć jak wszystko inne.
Każda wiki przestrzega tych samych uprawnień, co repozytorium źródłowe.
Po prostu dodaj „.wiki” do dowolnej nazwy repozytorium w adresie URL i jesteś gotowy do pracy. 

To sprawia, że ​​pytanie „eksportuj” jest naprawdę banalne.

Stamtąd znajdziesz mnóstwo skryptów do konwersji stron przecenionych na pdf:

50
VonC

Dodaję do tej odpowiedzi, na wypadek, gdyby to pomogło nowym czytelnikom :) oto co zrobiłem:

Zainstalowałem GitHub Desktop: https://desktop.github.com/

Następnie na stronie wiki w moim repozytorium kliknąłem „Clone in Desktop”  Clone

To zapisało wiki lokalnie jako plik .md (po wykonaniu kroków na ekranie)

Następnie użyłem http://www.markdowntopdf.com/ , aby przekonwertować go na pdf (Uwaga: nazwa plików została zmieniona, aby usunąć znaki, które nie działałyby w nazwie pliku PDF przed wgrywanie na stronę)

Efekt końcowy był naprawdę miły.

8
Sophia

Znalazłem wiele rozwiązań trudnych do odtworzenia/uzyskania właściwej wersji/zrozumienia/poprawki/etc ... Zamiast tego, przedstawię rozwiązanie patchworkowego dokera, aby bez wysiłku przekonwertować na Windows (używając git bash)/MacOS/Linux w 5 „łatwe” polecenia

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

Perl jest główną częścią, która może zawieść bez lepszego rozwiązania. Pandoc ma naprawdę dobre rozwiązanie filtrujące, ale nie używa potoku github.

Robaki

  • Dodatkowe szerokie bloki kodu będą renderowane za pomocą paska przewijania i zasadniczo obcięte w pliku pdf. Najlepiej byłoby, aby blok kodu nie był przepełniony, ale możesz dodać --user-style-sheet user.css do polecenia wkhtmltopdf (przed toc/cover) i dodać do user.css

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • Niektóre linki w końcowym pliku PDF są wyłączone przez stronę +1, inne nie. Nie jestem pewien, jaki jest wzór. Ale kotwice z identyfikatorami (#) nie wydają się mieć tego problemu

3
Andy

Uważam, że denerwująca jest konwersja każdego dokumentu przeceny osobno (utracono powiązania między dokumentami przeceny), więc napisałem prosty program w języku C # na własny użytek, który robi to w jednym kroku: a) Pobierz ostatnią wersję wiki z Github, b) Konwertuj wszystkie scalone dokumenty obniżone jako jeden plik pdf

Pliki binarne (system Windows lub dowolna platforma obsługująca Mono) można pobrać z: https://github.com/borjafdezgauna/CoderDocTools/releases/latest

Jeśli na przykład chcesz przekonwertować do PDF repozytorium SimionZoo przez użytkownika simionsoft, możesz:

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

Dokładnie to osiągnąłem podczas tworzenia przenośnej dokumentacji dla Barcode Writer in Pure PostScript :

GitHub Wiki + Makefile + pandoc → PDF

Proces jest opisany w tym wpisie na blogu .

1
Terry Burton

Możesz także spróbować html_links_to_pdf !

Jest to skrypt Pythona 3 stworzony po to, aby przekonwertować Wiki GitHub na formularz pdf, używając tego samego stylu, którego używa GitHub, ale nieco czystszego.

0
user3773048

Inną opcją po sklonowaniu wiki, zwłaszcza jeśli już używasz Atom, jest użycie tego Markdown do PDF package. Pracowałem dla mnie świetnie. 

0
davidheller