diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-05-04 09:04:30 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-05-04 09:07:50 -0700 |
commit | fee3258280959a741fbdddb1eeb4b1ef2ab14e6d (patch) | |
tree | 9c7b962be3d7f6b72343cb5964108108f7df3b30 | |
parent | 2fa8c0dc96bd79c8688cb621e330f325589847a6 (diff) | |
download | pandoc-fee3258280959a741fbdddb1eeb4b1ef2ab14e6d.tar.gz |
Add template variable `curdir` with working directory
from which pandoc is run. Closes #5464.
-rw-r--r-- | MANUAL.txt | 5 | ||||
-rw-r--r-- | src/Text/Pandoc/App/OutputSettings.hs | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/MANUAL.txt b/MANUAL.txt index 42e6393a0..42a2b7a3d 100644 --- a/MANUAL.txt +++ b/MANUAL.txt @@ -1905,6 +1905,11 @@ on the output format, and include the following: Similarly, `outputfile` can be `-` if output goes to the terminal. + If you need absolute paths, use e.g. `$curdir$/$sourcefile$`. + +`curdir` +: working directory from which pandoc is run. + `toc` : non-null value if `--toc/--table-of-contents` was specified diff --git a/src/Text/Pandoc/App/OutputSettings.hs b/src/Text/Pandoc/App/OutputSettings.hs index babec8745..343287a4b 100644 --- a/src/Text/Pandoc/App/OutputSettings.hs +++ b/src/Text/Pandoc/App/OutputSettings.hs @@ -28,6 +28,7 @@ import Data.List (find, isPrefixOf, isSuffixOf) import Data.Maybe (fromMaybe) import Skylighting (defaultSyntaxMap) import Skylighting.Parser (addSyntaxDefinition, parseSyntaxDefinition) +import System.Directory (getCurrentDirectory) import System.Exit (exitSuccess) import System.FilePath import System.IO (stdout) @@ -113,6 +114,8 @@ optToOutputSettings opts = do s <- UTF8.toString . fst <$> fetchItem fp return $ (varname, s) : vars + curdir <- liftIO getCurrentDirectory + variables <- withList (addStringAsVariable "sourcefile") (reverse $ optInputFiles opts) @@ -140,6 +143,8 @@ optToOutputSettings opts = do maybe return (addStringAsVariable "epub-cover-image") (optEpubCoverImage opts) >>= + addStringAsVariable "curdir" curdir + >>= (\vars -> if format == "dzslides" then do dztempl <- UTF8.toString <$> readDataFile |