diff options
| author | John MacFarlane <[email protected]> | 2023-10-23 10:30:34 -0700 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2023-10-23 10:30:34 -0700 |
| commit | 7115edfeb7eecb150b3ed698964ed503f4399640 (patch) | |
| tree | e050db53ee0bcde9a7ab7c861c205670b6fd2050 /src | |
| parent | a7756b9e9f876fb6cf404c59a963b376332e18ba (diff) | |
Add helpful message on some metadata YAML errors.
Closes #9155.
Diffstat (limited to 'src')
| -rw-r--r-- | src/Text/Pandoc/Readers/Metadata.hs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Readers/Metadata.hs b/src/Text/Pandoc/Readers/Metadata.hs index 454a3be90..49109fa0c 100644 --- a/src/Text/Pandoc/Readers/Metadata.hs +++ b/src/Text/Pandoc/Readers/Metadata.hs @@ -31,7 +31,6 @@ import Text.Pandoc.Class.PandocMonad (PandocMonad (..)) import Text.Pandoc.Definition import Text.Pandoc.Error import Text.Pandoc.Parsing hiding (tableWith, parse) - import qualified Text.Pandoc.UTF8 as UTF8 yamlBsToMeta :: (PandocMonad m, HasLastStrPosition st) @@ -45,8 +44,12 @@ yamlBsToMeta pMetaValue bstr = do Right [Null] -> return . return $ mempty Right _ -> Prelude.fail "expected YAML object" Left err' -> do - throwError $ PandocParseError - $ T.pack $ Yaml.prettyPrintParseException err' + let msg = T.pack $ Yaml.prettyPrintParseException err' + throwError $ PandocParseError $ + if "did not find expected key" `T.isInfixOf` msg + then msg <> + "\nConsider enclosing the entire field in 'single quotes'" + else msg -- Returns filtered list of references. yamlBsToRefs :: (PandocMonad m, HasLastStrPosition st) @@ -69,9 +72,8 @@ yamlBsToRefs pMetaValue idpred bstr = mapM (yamlToMetaValue pMetaValue) (filter hasSelectedId refs) _ -> return $ return [] Right _ -> return . return $ [] - Left err' -> do - throwError $ PandocParseError - $ T.pack $ Yaml.prettyPrintParseException err' + Left err' -> throwError $ PandocParseError + $ T.pack $ Yaml.prettyPrintParseException err' normalizeMetaValue :: (PandocMonad m, HasLastStrPosition st) => ParsecT Sources st m (Future st MetaValue) |
