aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/App.hs15
-rw-r--r--test/command/5177.md12
2 files changed, 20 insertions, 7 deletions
diff --git a/src/Text/Pandoc/App.hs b/src/Text/Pandoc/App.hs
index 6b320df12..7faac2b00 100644
--- a/src/Text/Pandoc/App.hs
+++ b/src/Text/Pandoc/App.hs
@@ -55,7 +55,6 @@ import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Encoding as TE
import qualified Data.Text.Encoding.Error as TE
import qualified Data.Text.Encoding.Error as TSE
-import qualified Data.YAML as YAML
import Network.URI (URI (..), parseURI)
import System.Directory (getAppUserDataDirectory)
import System.Exit (exitSuccess)
@@ -332,12 +331,14 @@ removeMetaKeys :: [(String,String)] -> Pandoc -> Pandoc
removeMetaKeys kvs pdc = foldr (deleteMeta . fst) pdc kvs
readMetaValue :: String -> MetaValue
-readMetaValue s = case YAML.decodeStrict (UTF8.fromString s) of
- Right [YAML.Scalar (YAML.SStr t)]
- -> MetaString $ T.unpack t
- Right [YAML.Scalar (YAML.SBool b)]
- -> MetaBool b
- _ -> MetaString s
+readMetaValue s
+ | s == "true" = MetaBool True
+ | s == "True" = MetaBool True
+ | s == "TRUE" = MetaBool True
+ | s == "false" = MetaBool False
+ | s == "False" = MetaBool False
+ | s == "FALSE" = MetaBool False
+ | otherwise = MetaString s
-- Transformations of a Pandoc document post-parsing:
diff --git a/test/command/5177.md b/test/command/5177.md
new file mode 100644
index 000000000..d832780ea
--- /dev/null
+++ b/test/command/5177.md
@@ -0,0 +1,12 @@
+This should not give a "Prelude.read: no parse" error:
+
+```
+% pandoc -M foo=1e -s -t markdown
+hi
+^D
+---
+foo: 1e
+---
+
+hi
+```