GithubフレーバーマークダウンをPDFに変換する方法


147

最近、ドキュメントで使用するためのMarkdownの学習を開始しました。Markdownページをいくつか印刷する必要があります。Github風味のマークダウンをPDFに変換できるコマンドライン、ターミナルなどのユーティリティを使用したいと思います。適切な構文強調表示が必要であり、恐ろしく見えるべきではありません。助けてくれてありがとう。


GitHubの構文の色付けは、GitHub Flavored Markdownの一部ではありません。少なくとも私の知る限り。
デアホッホスタプラー

@OliverSalzburg GithubはLinguistを使用して構文の強調表示を提供します。
DanteTheEgregore

@dillmo、最初にHTMLに変換してから、Chromeを使用してPDFに出力します。
Pacerier

回答:


150

グリップを使用してChromeでマークダウンを表示し、[印刷]ダイアログでChromeの[PDFとして保存]オプションを使用して成功しました。

pip install grip  
grip your_markdown.md

gripはlocalhost:5000でマークダウンをレンダリングします-ただ編集してブラウザを更新してください。準備ができたら印刷します。

これにより、pandocよりも信頼性の高い表現が得られ、ラテックスをインストールするよりも軽量になりました(pdf生成のためにpandocで必要)。

この回答では、印刷はコマンドラインではありませんが、この方が簡単で信頼性が高いことがわかりました(比較的リンクされたイメージとコードの強調表示を含む長いドキュメントのGithubに100%似ています)。


2
これは簡単です。
s2t2

16
grip your_markdown.md --export your_markdown.htmlここで便利なオプションです。それをhtmlファイルにエクスポートし、wkhtmltopdfなどを使用してコマンドラインから印刷できます。
ルークエクストン

1
残念ながら、グリップにはGitHubへのアクセスが必要です。オフラインで動作しない
-nowox

6
または、(無料!)Atom(atom.io)をダウンロードし、Atomでファイルを開き、control + shift + Mを使用してプレビューで表示し、htmlとして保存し、Chromeブラウザーでhtmlを開いてpdfとして保存します。
アンドリューカーター

6
これには、Githubのようなフレームが付属しています。枠線/タイトルバーを削除する(つまり、フレーム内のすべてを印刷する)PDFに印刷する方法はありますか?
ヨースト

56

Node.jsベースのmarkdown-pdfを使用することもできます

npm install -g markdown-pdf
markdown-pdf /path/to/markdown

2
これは非常に素晴らしく、本当に簡単です。リンクの問題は、HTML5ボイラープレートの印刷cssに由来するもので、独自のスタイルシートでコメントアウトまたはオーバーライドできます。
ロバートウェント

これには、すぐに使用できるUnicodeサポートがあり、非常に便利です。
ニーク

GitHubのCSSファイルを使用する場合は、github-markdown-cssをインストールすることもできます。
jpmc26

@ jpmc26どのように使用できますか、私はjavascriptまたはnpmの知識がありませんか?
アビシェークバティア

1
@AbhishekBhatiaこれは、「npm入門」をGoogleで検索した最初の結果です:smalljs.org/package-managers/npm。これは、インストールするとnode_modulesに埋め込まれた単なるファイルです。
jpmc26

39

見てくださいpandocを。構文の強調表示があります。マークダウンの独自のフレーバーがあり、GitHubのフレーバーとどの程度一致するかわからないため、ドキュメントに(わずかな)変更を加える必要があります。


3
ありがとう。実行pandoc -hするとGitHub Flavored Markdownのサポートが返されたため、この質問を解決済みとしてマークしています。
ディルモ14

2
私はpandocFedora Linux にインストールしようとしましたが、依存関係の悪夢に遭遇しました-主にLaTex関連。私のアドバイスは、pandocをスキップして、最初の他のオプションを試してみるだろう
IanB

ASCII以外の文字を使用し、それらが見つからない場合:フォントオプションをpandoc次のように追加します--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
。– gluk47

4
誰かがちょうどコマンドを探している場合:sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf(Ubuntuの上で、おそらくいないすべての必要な)、そしてpandoc --variable urlcolor=cyan myfile.md -o myfile.pdf
TorのKlingberg

@TorKlingbergありがとう、それが最高の答えだと思う!
thc

12

マークダウンファイルがgithubリポジトリでホストされていた場合、gitprintはpdf / printを作成するための興味深いオプションです。

あなたがやらなければならないことは、交換することであるgithub.comことにより、gitprint.comURLに。以下は、gitprintのホームページのです。

残念ながら、マークダウンの要点では機能せず、リポジトリのマークダウンファイルでのみ機能します。


4
画像でも機能しません。:(
アダムアロルド14

...フォーマットが不十分です:(
メビウス

興味深いオプション。長所:外部リンクが維持され、出力からアクセスできます。短所:出力は白黒で、アンカーリンクは削除されます。外部リンクは白黒のため、視覚的に示されません。
ロディー

7

http://www.markdowntopdf.comで利用可能なオンラインコンバーターがあります
これは、すぐに使用できる構文強調表示を提供し、これまで見た中で最も簡単なソリューションです。また、テーブルなどのGFMに固有のその他の機能も正しく処理します。


4
個別のファイルの画像を処理しません。
ラリーK

美しく動作します
シャディ

6

私のコメントで述べたように、GithubはLinguistを使用して構文の強調表示を提供します。Githubでは、これを使用して、次のような構文の強調表示を指定できます。

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

残念ながら、構文の強調表示を使用してMarkdownをPDFファイルに直接変換する良い方法はありません。

代替案:

Vim

vimを使用している場合は、ターミナルから次のコマンドを実行して、構文の強調表示を簡単に実現できます。

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

またはvimの内部:

:hardcopy >/path/to/file.ps

これにより、たとえばps2pdfを使用してPDFに変換できるPostScriptファイルが生成されます。

ps2pdf /path/to/file.ps

ソースハイライト

代わりにHTMLまたはLaTeXのルートに行きたい場合は、代わりにSource-highlightを試すことができます。Source-highlightでサポートされているすべての言語のリストは、ここにあります

いくつかのSource-highlightコマンドの例は次のとおりです。

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

この入力ファイルを使用する

そして、それぞれ独自のHTMLファイルを出力します。

Hello1.html
Hello2.html
Hello3.html

ソースハイライトの使用例の詳細は、こちらをご覧ください

Windowsの

Vimps2pdfGhostscriptで提供)、およびSource-highlightはすべてCygwinで利用できます


4

Linuxを使用している場合は、pandocを使用します

インストール:

sudo apt install pandoc texlive-latex-extra

はい、-extraフォントのためにパッケージが必要です。

変換:

pandoc --from markdown -o output.pdf my-file.md

画像、リンクを含めませんでしたが、次のように無視しまし<font color="red">
derHugo

3

最近、マークダウンドキュメントをPDFに変換するサービスを作成しました。Githubフレーバーのマークダウンと構文の強調表示をサポートしています。サービスは次の場所にあります:http : //markdown2pdf.com


zipファイルでは機能しません:マークダウンファイルがある場合、アーカイブ内で見つけることができませんでした。
メビウス

「pdfへの変換エラー」が発生しました。使用markdowntopdf.comを kevgathukuからではなく
シャディ・

1

私の解決策:markdown with pandocをhtmlに変換しパンドックcssを使用して表の境界線を表示することを忘れないでください)、それを開いてlibreoffice、オプションを選択しますexport as pdf

NB:ここでもインターネットソリューションでも言及されていません:1)ブラウザベースのソリューション(つまりグリップ)がページ番号などの余分な情報を追加していますが、削除できませんでした。2)PDFへのpandoc変換壊れて、私にとっては空のテーブルを生成します(おそらくユニコードのため、そしてはい、私はxetexを使用するように構成しました)、3)サイトベースのソリューション(すなわちgitprint.com)もgithubのようなマージンなどの冗長なものを追加していますawkで生成した単純なテーブルが必要です!


1
pandoc次のようなオプションで動作するはずです--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
-gluk47

@ gluk47かっこいい!
ハイエンジェル

このページは、markdownをPDFに変換する(または印刷する)markdownprint.comにお勧めできます。
ヨハンO

@JohanO markdownprint.comがダウンしているようだ
derHugo

1

いくつかのchromeプラグインとオンラインコンバーターを試しました。
MDtr2PDFが最適です。Github-flavoured-markdownおよびunicodeをサポートしています。


1
他のファイルに保存されている画像をサポートしていますか?
ラリーK

動作していないようで、TLSで保護されていません。
デビッドオリバー

1

個人のニーズに合わせてこのスニペットを改良しました

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

保存/usr/local/bin/md2pdfし、sudo chmod +x /usr/local/bin/md2pdfその後。

使用法:

  • md2pdf README.mdをREADME.md.pdfに変換します

  • md2pdf foo.md foo.mdをfoo.md.pdfに変換します

  • md2pdf foo.md bar.pdf foo.mdをbar.pdfに変換します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.