web-dev-qa-db-ja.com

選択したMarkdownドキュメントをコンパイルする方法

単一のMarkdownファイルをHTMLに処理する:

pandoc -f markdown -t html inputfile.md

このようなPandocを使用して個々のMarkdownファイルを処理できますが、選択したMarkdownファイルのリストをコンパイルして、それらを単一のファイルに処理したいと考えています。

Markdownファイルがある場合:

inputfile1.md, inputfile2.md, inputfile3.md

それらをコンパイルして、Pandocを使用して単一の出力ファイルに処理するにはどうすればよいですか?

7
johntait.org

pandocは複数の入力ファイルを取ることができます。ただ使用する:

pandoc -s -o output.html input1.md input2.md input3.md

-sはpandocに自己完結型ファイルを作成するように指示します(そのため、フラグメントを生成するだけでなく、<html></html>タグなどが含まれます)。 -o output.htmlは、output.htmlが出力ファイルになることを指定します。出力ファイルが.htmlで終わる場合、-t htmlは不要です。STDOUTに出力する場合は、そのままにしてください。

少しテストしたところ、ファイル拡張子のない入力を使用する場合でも-f markdownは必要ないようです。これは、パンドックが想定するデフォルトのマークアップであるか、パンドクが使用されているマークアップ言語を検出できるためです。

もちろん、以下を入力するためにグロブを使用できます:

pandoc -s -o output.html input*.md
8
evilsoup

あなたは多くの背景を提供しますが、機能レベルで実際に何が欲しいかを伝えるのは難しいので、ここでファイルがどのように構造化されているかについてはほとんど推測しています。今後は、背景を少なくし、質問に関連する情報を増やして、より効率的に支援できるようにしてください。

すべてをコンパイルしたい場合*.md現在のディレクトリ内のファイルを独自のファイルに:

for file in *.md; do
    pandoc -f markdown -t html "$file"
done

すべてをコンパイルしたい場合*.md現在のディレクトリ内のファイルを独自のファイルに再帰的に:

find . -name '*.md' -exec pandoc -f markdown -t html {} \;

すべてをコンパイルしたい場合*.md現在のディレクトリのファイルを1つのファイルに:

pandoc -f markdown -t html -o foo.html *.md 

すべてをコンパイルしたい場合*.md現在のディレクトリ内のファイルを1つのファイルに再帰的に(POSIXではなく):

pandoc -f markdown -t html <(find . -name '*.md' -exec cat {} +) -o foo.html

または(bash4 +):

shopt -s globstar
pandoc -f markdown -t html -o foo.html **/*.md
9
Chris Down