diff options
-rw-r--r-- | src/Text/Pandoc/App.hs | 15 | ||||
-rw-r--r-- | test/command/5177.md | 12 |
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 +``` |