aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs5
-rw-r--r--pandoc-server/src/Text/Pandoc/Server.hs6
-rw-r--r--src/Text/Pandoc/App.hs6
-rw-r--r--src/Text/Pandoc/App/OutputSettings.hs7
-rw-r--r--src/Text/Pandoc/Readers.hs9
-rw-r--r--src/Text/Pandoc/Writers.hs9
6 files changed, 21 insertions, 21 deletions
diff --git a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs
index 1fdc6fd65..60f74d8b0 100644
--- a/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs
+++ b/pandoc-lua-engine/src/Text/Pandoc/Lua/Module/Pandoc.hs
@@ -30,6 +30,7 @@ import HsLua hiding (pushModule)
import System.Exit (ExitCode (..))
import Text.Pandoc.Definition
import Text.Pandoc.Error (PandocError (..))
+import Text.Pandoc.Format (parseFlavoredFormat)
import Text.Pandoc.Lua.Orphans ()
import Text.Pandoc.Lua.Marshal.AST
import Text.Pandoc.Lua.Marshal.Filter (peekFilter)
@@ -208,7 +209,7 @@ functions =
, defun "read"
### (\content mformatspec mreaderOptions -> unPandocLua $ do
let readerOpts = fromMaybe def mreaderOptions
- let formatSpec = fromMaybe "markdown" mformatspec
+ formatSpec <- parseFlavoredFormat $ fromMaybe "markdown" mformatspec
getReader formatSpec >>= \case
(TextReader r, es) ->
r readerOpts{readerExtensions = es}
@@ -246,7 +247,7 @@ functions =
, defun "write"
### (\doc mformatspec mwriterOpts -> unPandocLua $ do
let writerOpts = fromMaybe def mwriterOpts
- let formatSpec = fromMaybe "html" mformatspec
+ formatSpec <- parseFlavoredFormat $ fromMaybe "html" mformatspec
getWriter formatSpec >>= \case
(TextWriter w, es) -> Right <$>
w writerOpts{ writerExtensions = es } doc
diff --git a/pandoc-server/src/Text/Pandoc/Server.hs b/pandoc-server/src/Text/Pandoc/Server.hs
index 2f43a8561..1c66a66db 100644
--- a/pandoc-server/src/Text/Pandoc/Server.hs
+++ b/pandoc-server/src/Text/Pandoc/Server.hs
@@ -264,13 +264,13 @@ server = convertBytes
modifyPureState $ \st -> st{ stFiles = filetree }
let opts = options params
- let readerFormat = fromMaybe "markdown" $ optFrom opts
- let writerFormat = fromMaybe "html" $ optTo opts
+ readerFormat <- parseFlavoredFormat <$> fromMaybe "markdown" $ optFrom opts
+ writerFormat <- parseFlavoredFormat <$> fromMaybe "html" $ optTo opts
(readerSpec, readerExts) <- getReader readerFormat
(writerSpec, writerExts) <- getWriter writerFormat
let isStandalone = optStandalone opts
- toformat <- formatName <$> parseFlavoredFormat writerFormat
+ let toformat = formatName writerFormat
hlStyle <- traverse (lookupHighlightingStyle . T.unpack)
$ optHighlightStyle opts
diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs
index 0306b3b22..49fe34172 100644
--- a/src/Text/Pandoc/App.hs
+++ b/src/Text/Pandoc/App.hs
@@ -149,7 +149,7 @@ convertWithOpts' scriptingEngine istty datadir opts = do
(map (T.pack . takeExtension) sources) "markdown"
return "markdown"
- Format.FlavoredFormat readerNameBase _extsDiff <-
+ flvrd@(Format.FlavoredFormat readerNameBase _extsDiff) <-
Format.parseFlavoredFormat readerName
let makeSandboxed pureReader =
let files = maybe id (:) (optReferenceDoc opts) .
@@ -174,10 +174,10 @@ convertWithOpts' scriptingEngine istty datadir opts = do
, mempty
)
else if optSandbox opts
- then case runPure (getReader readerName) of
+ then case runPure (getReader flvrd) of
Left e -> throwError e
Right (r, rexts) -> return (makeSandboxed r, rexts)
- else getReader readerName
+ else getReader flvrd
outputSettings <- optToOutputSettings scriptingEngine opts
let format = outputFormat outputSettings
diff --git a/src/Text/Pandoc/App/OutputSettings.hs b/src/Text/Pandoc/App/OutputSettings.hs
index 5851d433c..20321f52a 100644
--- a/src/Text/Pandoc/App/OutputSettings.hs
+++ b/src/Text/Pandoc/App/OutputSettings.hs
@@ -102,17 +102,18 @@ optToOutputSettings scriptingEngine opts = do
ByteStringWriter w ->
ByteStringWriter $ \o d -> sandbox files (w o d)
- Format.FlavoredFormat format _extsDiff <- Format.parseFlavoredFormat writerName
+ flvrd@(Format.FlavoredFormat format _extsDiff) <-
+ Format.parseFlavoredFormat writerName
(writer, writerExts) <-
if "lua" `T.isSuffixOf` format
then do
(, mempty) <$> engineWriteCustom scriptingEngine (T.unpack format)
else do
if optSandbox opts
- then case runPure (getWriter writerName) of
+ then case runPure (getWriter flvrd) of
Right (w, wexts) -> return (makeSandboxed w, wexts)
Left e -> throwError e
- else getWriter writerName
+ else getWriter flvrd
let standalone = optStandalone opts || not (isTextFormat format) || pdfOutput
diff --git a/src/Text/Pandoc/Readers.hs b/src/Text/Pandoc/Readers.hs
index ab660c5b2..61f7326ac 100644
--- a/src/Text/Pandoc/Readers.hs
+++ b/src/Text/Pandoc/Readers.hs
@@ -163,14 +163,13 @@ readers = [("native" , TextReader readNative)
]
-- | Retrieve reader, extensions based on format spec (format+extensions).
-getReader :: PandocMonad m => Text -> m (Reader m, Extensions)
-getReader s = do
- spec <- Format.parseFlavoredFormat s
- let readerName = Format.formatName spec
+getReader :: PandocMonad m => Format.FlavoredFormat -> m (Reader m, Extensions)
+getReader flvrd = do
+ let readerName = Format.formatName flvrd
case lookup readerName readers of
Nothing -> throwError $ PandocUnknownReaderError readerName
Just r -> (r,) <$>
- Format.applyExtensionsDiff (Format.getExtensionsConfig readerName) spec
+ Format.applyExtensionsDiff (Format.getExtensionsConfig readerName) flvrd
-- | Read pandoc document from JSON format.
readJSON :: (PandocMonad m, ToSources a)
diff --git a/src/Text/Pandoc/Writers.hs b/src/Text/Pandoc/Writers.hs
index fc2b28e8f..92881e44c 100644
--- a/src/Text/Pandoc/Writers.hs
+++ b/src/Text/Pandoc/Writers.hs
@@ -192,14 +192,13 @@ writers = [
]
-- | Retrieve writer, extensions based on formatSpec (format+extensions).
-getWriter :: PandocMonad m => Text -> m (Writer m, Extensions)
-getWriter s = do
- spec <- Format.parseFlavoredFormat s
- let writerName = Format.formatName spec
+getWriter :: PandocMonad m => Format.FlavoredFormat -> m (Writer m, Extensions)
+getWriter flvrd = do
+ let writerName = Format.formatName flvrd
case lookup writerName writers of
Nothing -> throwError $ PandocUnknownWriterError writerName
Just w -> (w,) <$>
- Format.applyExtensionsDiff (Format.getExtensionsConfig writerName) spec
+ Format.applyExtensionsDiff (Format.getExtensionsConfig writerName) flvrd
writeJSON :: PandocMonad m => WriterOptions -> Pandoc -> m Text
writeJSON _ = return . UTF8.toText . BL.toStrict . encode