aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2009-12-31 01:10:26 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2009-12-31 01:10:26 +0000
commitb771051432be70015079ad7e5cb36afa6b6939bf (patch)
treed0a086c8d93d7466ce68784a684fd1938211521d
parent9f126c15cf4d0f6c2ab14167e11336d4f5f8783e (diff)
downloadpandoc-b771051432be70015079ad7e5cb36afa6b6939bf.tar.gz
Added -V/--variable option to set custom template variables.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1685 788f1e2b-df1e-0410-8736-df70ead52e1b
-rw-r--r--README13
-rw-r--r--man/man1/markdown2pdf.1.md7
-rw-r--r--man/man1/pandoc.1.md13
-rw-r--r--src/markdown2pdf.hs5
-rw-r--r--src/pandoc.hs13
5 files changed, 43 insertions, 8 deletions
diff --git a/README b/README
index 139ad3c8a..8b5d869a4 100644
--- a/README
+++ b/README
@@ -289,6 +289,13 @@ For further documentation, see the `pandoc(1)` man page.
template appropriate for the output format will be used. See also
`-D/--print-default-template`.
+`-V` *key=val*, `--variable=`*key:val*
+: sets the template variable *key* to the value *val* when rendering the
+ document in standalone mode. This is only useful when the
+ `--template` option is used to specify a custom template, since
+ pandoc automatically sets the variables used in the default
+ templates.
+
`-c` or `--css` *filename*
: allows the user to specify a custom stylesheet that will be linked to
in HTML and S5 output. This option can be used repeatedly to include
@@ -489,9 +496,9 @@ depending on the output format, but include:
`css`
: links to CSS files, as specified using `-c/--css`
-Variables may be set at the command line using the
-`--set` option. This allows users to include custom variables in
-their templates.
+Variables may be set at the command line using the `-V/--variable`
+option. This allows users to include custom variables in their
+templates.
Templates may contain conditionals. The syntax is as follows:
diff --git a/man/man1/markdown2pdf.1.md b/man/man1/markdown2pdf.1.md
index 66db76f4c..a16626338 100644
--- a/man/man1/markdown2pdf.1.md
+++ b/man/man1/markdown2pdf.1.md
@@ -54,6 +54,13 @@ The following options are most relevant:
`-s`. See the section TEMPLATES in `pandoc`(1) for information about
template syntax.
+-V KEY=VAL, \--variable=*KEY:VAL*
+: Set the template variable KEY to the value VAL when rendering the
+ document in standalone mode. This is only useful when the
+ `--template` option is used to specify a custom template, since
+ pandoc automatically sets the variables used in the default
+ templates.
+
-H *FILE*, \--include-in-header=*FILE*
: Include (LaTeX) contents of *FILE* at the end of the header. Implies
`-s`.
diff --git a/man/man1/pandoc.1.md b/man/man1/pandoc.1.md
index 65e64d0ac..d8209d2c1 100644
--- a/man/man1/pandoc.1.md
+++ b/man/man1/pandoc.1.md
@@ -175,6 +175,13 @@ to Pandoc. Or use `html2markdown`(1), a wrapper around `pandoc`.
this option is not used, a default template appropriate for the
output format will be used. See also `-D/--print-default-template`.
+-V KEY=VAL, \--variable=*KEY:VAL*
+: Set the template variable KEY to the value VAL when rendering the
+ document in standalone mode. This is only useful when the
+ `--template` option is used to specify a custom template, since
+ pandoc automatically sets the variables used in the default
+ templates.
+
-c *CSS*, \--css=*CSS*
: Link to a CSS style sheet. *CSS* is the pathname of the style sheet.
@@ -270,9 +277,9 @@ depending on the output format, but include:
`css`
: links to CSS files, as specified using `-c/--css`
-Variables may be set at the command line using the
-`--set` option. This allows users to include custom variables in
-their templates.
+Variables may be set at the command line using the `-V/--variable`
+option. This allows users to include custom variables in their
+templates.
Templates may contain conditionals. The syntax is as follows:
diff --git a/src/markdown2pdf.hs b/src/markdown2pdf.hs
index 7bcbf4a82..ea580da98 100644
--- a/src/markdown2pdf.hs
+++ b/src/markdown2pdf.hs
@@ -152,13 +152,14 @@ main = bracket
unless (null miss) $ exit $! "Could not find " ++ intercalate ", " miss
args <- getArgs
-- check for invalid arguments and print help message if needed
- let goodopts = ["-f","-r","-N", "-p","-R","-H","-B","-A", "-C","-o"]
+ let goodopts = ["-f","-r","-N", "-p","-R","-H","-B","-A", "-C","-o","-V"]
let goodoptslong = ["--from","--read","--strict",
"--preserve-tabs","--tab-stop","--parse-raw",
"--toc","--table-of-contents",
"--number-sections","--include-in-header",
"--include-before-body","--include-after-body",
- "--custom-header","--output"]
+ "--custom-header","--output",
+ "--template", "--variable"]
let isOpt ('-':_) = True
isOpt _ = False
let opts = filter isOpt args
diff --git a/src/pandoc.hs b/src/pandoc.hs
index b595f7e50..3e9964130 100644
--- a/src/pandoc.hs
+++ b/src/pandoc.hs
@@ -339,6 +339,19 @@ options =
"FILENAME")
"" -- "Use custom template"
+ , Option "V" ["variable"]
+ (ReqArg
+ (\arg opt ->
+ case break (`elem` ":=") arg of
+ (k,_:v) -> do
+ let newvars = (k, v) : optVariables opt
+ return opt{ optVariables = newvars }
+ _ -> do
+ hPutStrLn stderr $ "Could not parse `" ++ arg ++ "' as a key/value pair (k=v or k:v)"
+ exitWith $ ExitFailure 17)
+ "FILENAME")
+ "" -- "Use custom template"
+
, Option "c" ["css"]
(ReqArg
(\arg opt -> do