2016-07-23 9 views
0

私はテンプレートに変数を取り入れるのに多くの問題があります。私はLaTeXテンプレートを持っており、Markdownファイルをコンテンツに使用したいと考えています。最終結果はPDFでなければなりません。PandocはインポートされたMarkdownファイルでMetadata.yamlの変数を使用できますか?

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がそれらを理解していることを知っていますが、それらの変数をどのように入手するのですか? これも可能ですか?

私は、メタデータファイルを別々に、または可能であれば、yamlファイルの代わりにJSON配列を使用してファイルをバッチ生成するサーバーを用意したいと思います。それが可能かどうか誰にも分かりますか?

答えて

1

Pandoc変数は、ドキュメント自体ではなく、pandoc templatesでのみ使用できます。そのためには、preprocessor like gppまたは他のスクリプト/テンプレートソリューションをチェックしてください。

同様に、pandocテンプレートには、文書テキストが配置される変数$body$があります。テンプレートを使ってドキュメントをレンダリングします(\import{chapters/}{chapter1.md}で試したように、LaTeXコマンドであり、マークダウンをインポートすることはできません)。しかし、Mac/Linuxでは、pandoc -o foo.pdf chapter*.mdを実行してすべてのマークダウンファイルを連結してからpandocに渡すことができます。

+0

ありがとうございます!確かめます。しかし理論的には、私は現在のセットアップを使用して、テンプレートファイル全体を書いてもいいですか(Markdownを全く使っていないのですか?) – Magnifix

+0

あなたはLaTeXを代わりに使うことができますか?ええと...確かに...? – mb21

+0

ええ、それは私が知りたいことです。 「テンプレート」をスキップし、varsを直接ドキュメントに書き込む。 – Magnifix

関連する問題