joh*_*org 7 shell-script text-processing markdown
将单个 Markdown 文件处理为 HTML:
pandoc -f markdown -t html inputfile.md
Run Code Online (Sandbox Code Playgroud)
虽然我可以像这样使用 Pandoc 来处理单个 Markdown 文件,但我想编译一个选定 Markdown 文件的列表并将它们处理为单个文件。
如果我有一些 Markdown 文件:
inputfile1.md, inputfile2.md, inputfile3.md
Run Code Online (Sandbox Code Playgroud)
如何编译它们并使用 Pandoc 将它们处理为单个输出文件?
您提供了很多背景知识,但很难在功能级别上说出您真正想要什么,因此我主要猜测您的文件在此处的结构。以后,请提供更少的背景和更多与问题相关的信息,以便更有效地帮助您。
如果要将*.md
当前目录下的所有文件编译成自己的文件:
for file in *.md; do
pandoc -f markdown -t html "$file"
done
Run Code Online (Sandbox Code Playgroud)
如果想把*.md
当前目录下的所有文件都编译成自己的文件,递归的:
find . -name '*.md' -exec pandoc -f markdown -t html {} \;
Run Code Online (Sandbox Code Playgroud)
如果要将*.md
当前目录下的所有文件编译为一个文件:
pandoc -f markdown -t html -o foo.html *.md
Run Code Online (Sandbox Code Playgroud)
如果要将*.md
当前目录下的所有文件编译为一个文件,递归地(不是POSIX):
pandoc -f markdown -t html <(find . -name '*.md' -exec cat {} +) -o foo.html
Run Code Online (Sandbox Code Playgroud)
或 (bash4+):
shopt -s globstar
pandoc -f markdown -t html -o foo.html **/*.md
Run Code Online (Sandbox Code Playgroud)
pandoc 可以接受多个输入文件。只需使用:
pandoc -s -o output.html input1.md input2.md input3.md
Run Code Online (Sandbox Code Playgroud)
-s
告诉 pandoc 创建一个自包含文件(因此它将包含<html></html>
标签等,而不仅仅是生成一个片段)。-o output.html
指定output.html
将是输出文件。输出文件以.html
,结尾-t html
是不必要的 - 如果你想输出到 STDOUT,显然保留它。
经过一些测试,-f markdown
即使使用没有文件扩展名的输入,似乎也没有必要 - 因为它是 pandoc 期望的默认标记,或者 pandoc 可以检测正在使用的标记语言。
当然,您可以使用 globs 来减少输入:
pandoc -s -o output.html input*.md
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11058 次 |
最近记录: |