Add sourcefile and outputfile template variables (#3439)

Closes #3431.
This commit is contained in:
Roland Hieber 2017-02-25 23:15:56 +01:00 committed by John MacFarlane
parent 9ab30c6495
commit 699d289cc5
2 changed files with 21 additions and 0 deletions

View file

@ -1074,6 +1074,22 @@ Some variables are set automatically by pandoc. These vary somewhat
depending on the output format, but include metadata fields as well depending on the output format, but include metadata fields as well
as the following: as the following:
`sourcefile`, `outputfile`
: source and destination filenames, as given on the command line.
`sourcefile` can also be a list if input comes from multiple files, or empty
if input is from stdin. You can use the following snippet in your template
to distinguish them:
$if(sourcefile)$
$for(sourcefile)$
$sourcefile$
$endfor$
$else$
(stdin)
$endif$
Similarly, `outputfile` can be `-` if output goes to the terminal.
`title`, `author`, `date` `title`, `author`, `date`
: allow identification of basic aspects of the document. Included : allow identification of basic aspects of the document. Included
in PDF metadata through LaTeX and ConTeXt. These can be set in PDF metadata through LaTeX and ConTeXt. These can be set

View file

@ -230,6 +230,11 @@ convertWithOpts opts = do
variables <- return (optVariables opts) variables <- return (optVariables opts)
>>= >>=
(\vars -> return $ ("outputfile", optOutputFile opts) : vars)
>>=
withList (addStringAsVariable "sourcefile")
(optInputFiles opts)
>>=
withList (addContentsAsVariable "include-before") withList (addContentsAsVariable "include-before")
(optIncludeBeforeBody opts) (optIncludeBeforeBody opts)
>>= >>=