如何编译精选的 Markdown 文档

如何编译精选的 Markdown 文档

将单个 Markdown 文件处理为 HTML:

pandoc -f markdown -t html inputfile.md

虽然我可以像这样使用 Pandoc 来处理单个 Markdown 文件,但我想编译选定的 Markdown 文件的列表并将它们处理为单个文件。

如果我有一些 Markdown 文件:

inputfile1.md, inputfile2.md, inputfile3.md

如何使用 Pandoc 将它们编译并处理为单个输出文件?

答案1

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 期望的默认标记,要么 pandoc 可以检测正在使用的标记语言。

当然,您可以使用 glob 来减少输入:

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

答案2

您提供了很多背景知识,但很难说出您在功能层面上真正想要什么,所以我主要猜测您的文件在这里的结构。今后,请提供更少的背景信息和更多与问题相关的信息,以便您能够更有效地得到帮助。

如果要将*.md当前目录下的所有文件编译成各自的文件:

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

如果要将*.md当前目录中的所有文件编译成自己的文件,递归地:

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

如果要将*.md当前目录下的所有文件编译成一个文件:

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

如果要将*.md当前目录中的所有文件递归地(不是 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

相关内容