我在将变量放入模板时遇到了很多麻烦。我有一个LaTeX模板,我想使用Markdown文件作为内容。最终结果应该是PDF。
metadata.yaml:
---
varnameone: 'large heading'
varnametwo: 'baz'
varnamethree:
- threeone: textone
- threetwo: texttwo
---
template.tex:
\documentclass[12t, A4]{extarticle}
\usepackage{Styles.sty}
\begin{document}
\import{chapters/}{chapter1.md} % MD-file probably not possible. So how?
\import{chapters/}{chapter2.md}
\import{chapters/}{chapter3.md}
\end{document}
chapter1.md:
# This is a $varnameone$
Lorem ipsum foo bar.
## Subheading
Lorem ipsum foo bar with a $varnametwo$ and more.
\if[varnametwo == 'baz']
Lorem ipsum foo bar with a $varnamethree.threetwo$ and more.
\endif
Jade-style indentation would be even simpler:
if varnametwo == 'baz'
Lorem ipsum foo bar with a $varnamethree.threetwo$ and more.
这就是事情:我更喜欢内容的Markdown文件,因为它们是最容易编辑的(不是那么技术人员)。我知道Pandoc了解它们,但我如何在其中获取这些变量? 这甚至可能吗?
我最后甚至想让服务器批量生成具有不同元数据文件的文件,或者,如果可能的话,使用JSON数组而不是yaml文件。有谁知道这是否可能?
答案 0 :(得分:3)
Pandoc变量只能用于pandoc templates,而不能用于文档本身。为此,您应该查看preprocessor like gpp
,pandoc filter like this one或其他脚本/模板解决方案。
同样,pandoc模板有一个放置文档文本的$body$
变量。您使用模板呈现文档,而不是相反(当您尝试使用\import{chapters/}{chapter1.md}
时,这是一个LaTeX命令,因此无法导入markdown)。但是在Mac / Linux上,您可以运行:pandoc -o foo.pdf chapter*.md
来连接所有markdown文件,然后再将它们传递给pandoc。