diff options
author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2009-12-31 01:10:26 +0000 |
---|---|---|
committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2009-12-31 01:10:26 +0000 |
commit | b771051432be70015079ad7e5cb36afa6b6939bf (patch) | |
tree | d0a086c8d93d7466ce68784a684fd1938211521d | |
parent | 9f126c15cf4d0f6c2ab14167e11336d4f5f8783e (diff) | |
download | pandoc-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-- | README | 13 | ||||
-rw-r--r-- | man/man1/markdown2pdf.1.md | 7 | ||||
-rw-r--r-- | man/man1/pandoc.1.md | 13 | ||||
-rw-r--r-- | src/markdown2pdf.hs | 5 | ||||
-rw-r--r-- | src/pandoc.hs | 13 |
5 files changed, 43 insertions, 8 deletions
@@ -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 |