diff --git a/MANUAL.txt b/MANUAL.txt index 2f1fa30af..fd744c084 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -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 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` : allow identification of basic aspects of the document. Included in PDF metadata through LaTeX and ConTeXt. These can be set diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs index 1a41050d7..9d8fc592b 100644 --- a/src/Text/Pandoc/App.hs +++ b/src/Text/Pandoc/App.hs @@ -230,6 +230,11 @@ convertWithOpts opts = do variables <- return (optVariables opts) >>= + (\vars -> return $ ("outputfile", optOutputFile opts) : vars) + >>= + withList (addStringAsVariable "sourcefile") + (optInputFiles opts) + >>= withList (addContentsAsVariable "include-before") (optIncludeBeforeBody opts) >>=