我一直在玩Pandoc。
无论如何在生成的目录之前插入页面?
例如:
- 封面
- 插入自定义页面001
- 插入自定义页面002
- (生成)目录
提前谢谢了!
我一直在玩Pandoc。
无论如何在生成的目录之前插入页面?
例如:
提前谢谢了!
对于这个答案,我将假设您正在生成markdown,尽管其他文件格式的过程也相同。
关键的见解是Pandoc使用模板来确定最终的位置。它有默认模板,如果您修改它们,您可以更改部分的顺序。
找到默认模板
> pandoc -D markdown
$if(titleblock)$
$titleblock$
$endif$
$for(header-includes)$
$header-includes$
$endfor$
$for(include-before)$
$include-before$
$endfor$
$if(toc)$
$toc$
$endif$
$body$
$for(include-after)$
$include-after$
$endfor$
下一步你不需要这个,但是如果你好奇这些文件存在的地方,那么要求一个无意义的文件类型是有效的(虽然我确信有更好的方法):
> pandoc -D nonsense
pandoc: Could not find data file /usr/local/.../templates/default.nonsense
复制并修改默认模板
> pandoc -D markdown > modified.markdown
使用您喜欢的文本编辑器,您可以打开modified.markdown来放置 $body$
之前 $toc$
。
$body$
$if(toc)$
$toc$
$endif$
使用修改后的模板
> pandoc --template modified.markdown <... rest of your command ...>
我猜你想要创建一个带有标题页或标题信息的HTML文件。解决方案是在多个步骤中完成。
首先,将任何其他页面的标题页编译为一个html。
pandoc。\ 01_HEADER.markdown -o header.html
然后在body之前包含header.html:
pandoc -s -S --toc -B。\ header.html。\ 02_Document.markdown -o complete_doc.html
完成。
pandoc帮助表明可以使多部分文档成为可能,-B和-H都可以工作,但我认为-B在我的情况下更正确。
-H FILENAME --include-in-header=FILENAME
-B FILENAME --include-before-body=FILENAME
-A FILENAME --include-after-body=FILENAME
在我的情况下,我用样式表做,并获得一个完美的文档:
pandoc -s -S -c .\res\github-pandoc.css .\01_HEADER.markdown -o header.html
pandoc -s -S --toc --toc-depth=2 -c .\res\github-pandoc.css -B .\header.html .\02_Document.markdown -o complete_document.html