web-dev-qa-db-ja.com

github wikiからの簡単なエクスポート(?)

GitHub wikiでかなり多くの資料を収集しています。私はwikiを使用して他の人々と協力するのが本当に好きで、プラットフォームは本当に素晴らしいです、私はそれが好きです!

ですから、GH wikiを使用して、コンテンツの収集、編集、保存などを続けたいと思いますが、「マニュアル」と呼ばれるpdfファイルを作成するためにコンテンツをエクスポートしたいと思います。いくつかのスクリプトを実行するたびに、マニュアルの更新バージョンを自動的に生成したいと思いますが、これにはあまり手間がかかりません。

何らかの方法でコンテンツをエクスポートし、pandoc( http://johnmacfarlane.net/pandoc/ )を使用してPDFを作成し、インデックスとスタイルファイルを追加することも可能だと思います。

別の興味深いアイデアとして、月に1回Webサイトを公開して、Wikiからコンテンツを直接ダンプすることができます。

他の人はすでにこのようなことをしていましたが、何も見つかりませんでした。何か案が?

43
BigG

しかし... GitHubリポジトリのGithub wikiはそれ自体がgitリポジトリです( 2010年8月に導入 )。

クローンを作成したり、プッシュしたり、プルしたりできます。

各ウィキはGitリポジトリであるため、他のウィキと同様にプッシュおよびプルすることができます。
各wikiは、ソースリポジトリと同じ権限を尊重します。
.wiki "をURLのリポジトリ名に追加します。これで準備は完了です。

それはあなたの質問の「エクスポート」部分を本当に些細なものにします。

そこから、マークダウンページをPDFに変換するためのスクリプトが大量に見つかります。

55
VonC

新しい読者に役立つ場合に備えて、私はこの答えに追加しています:)ここに私がしたことです:

GitHub Desktopをインストールしました: https://desktop.github.com/

次に、リポジトリのWikiページで[デスクトップに複製]をクリックしました Clone

これにより、Wikiがローカルで.mdファイルとして保存されました(画面の手順を実行した後)

その後、 http://www.markdowntopdf.com/ を使用してpdfに変換しました(注:pdfファイル名では機能しない文字を削除するためにファイル名を変更しましたbeforeウェブサイトへのアップロード)

最終結果は本当に素晴らしいものでした。

9
Sophia

私は多くのソリューションを再現するのが難しい、正しいバージョンを取得する、理解する、修正するなどを見つけました...その代わりに、5でWindows(git bashを使用)/ MacOS/Linuxで簡単に変換するパッチワークドッカーソリューションを紹介します「簡単な」コマンド

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は、より良い解決策がなければ失敗する可能性のある主要部分です。 Pandocには非常に優れたフィルターソリューションがありますが、githubパイプラインは使用していません。

バグ

  • 余分な幅のコードブロックはスクロールバーでレンダリングされ、基本的にPDFで切り取られます。コードブロックがオーバーフローしないようにするのが最善ですが、--user-style-sheet user.cssをwkhtmltopdfコマンド(toc/coverの前)に追加し、user.css

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • 最終pdfの一部のリンクは+1ページ離れていますが、一部はそうではありません。パターンがわからない。しかし、ID(#)を持つアンカーにはこの問題はないようです。

3
Andy

各マークダウンドキュメントを個別に変換する必要があるため、マークダウンドキュメント間のリンクが失われるため、本当に面倒なことに気づいたので、単一の手順でこれを行う単純なC#プログラムを自分用に作成することになりました。 Githubから、b)1つのpdfとしてマージされたすべてのマークダウン文書を変換する

バイナリ(WindowsまたはMonoをサポートする任意のプラットフォーム)は次からダウンロードできます: https://github.com/borjafdezgauna/CoderDocTools/releases/latest

たとえば、ユーザーsimionsoftによってPDF SimionZooリポジトリに変換する場合、次のことができます。

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

特にAtomを既に使用している場合は、Wikiのクローンを作成した後の別のオプションは、この Markdown to PDF パッケージを使用することです。

1
davidheller

Pure PostScriptのバーコードライター :のポータブルドキュメントを作成するときに、これを正確に達成しました。

GitHub Wiki + Makefile + pandoc→ [〜#〜] pdf [〜#〜]

このプロセスはこの ブログ投稿 で説明されています。

1
Terry Burton

html_links_to_pdf !を試すこともできます。

これはPython 3スクリプトで、GitHub Wikiをpdf形式に変換するために作成されたもので、GitHubが使用するのと同じスタイリングを使用しますが、少しきれいです。

0
user3773048