diff options
author | John MacFarlane <jgm@berkeley.edu> | 2020-10-05 21:07:47 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2020-10-05 21:07:47 -0700 |
commit | 6a32ea71ea9af8613b8585e874fef8d5f29665fa (patch) | |
tree | 12b2ed269b25149bb5620b0c9d09c658f923dd32 /src/Text/Pandoc/Citeproc.hs | |
parent | 89e4f1bf9ad48e3fdefeb5c921e9af62ebc24601 (diff) | |
download | pandoc-6a32ea71ea9af8613b8585e874fef8d5f29665fa.tar.gz |
Add yamlToRefs, yamlBsToRefs.
T.P.Readers.Markdown now exports yamlToRefs. [API change]
T.P.Readers.Metadata exports yamlBsToRefs. [API change]
These allow specifying an id filter so we parse only references
that are used in the document. Improves timing with a 3M
yaml references file from 36s to 17s.
Diffstat (limited to 'src/Text/Pandoc/Citeproc.hs')
-rw-r--r-- | src/Text/Pandoc/Citeproc.hs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/Text/Pandoc/Citeproc.hs b/src/Text/Pandoc/Citeproc.hs index 8274e35d7..4f92cf8ca 100644 --- a/src/Text/Pandoc/Citeproc.hs +++ b/src/Text/Pandoc/Citeproc.hs @@ -18,7 +18,7 @@ import Text.Pandoc.Citeproc.Locator (parseLocator) import Text.Pandoc.Citeproc.CslJson (cslJsonToReferences) import Text.Pandoc.Citeproc.BibTeX (readBibtexString, Variant(..)) import Text.Pandoc.Citeproc.MetaValue (metaValueToReference, metaValueToText) -import Text.Pandoc.Readers.Markdown (yamlToMeta) +import Text.Pandoc.Readers.Markdown (yamlToRefs) import Text.Pandoc.Class (setResourcePath, getResourcePath, getUserDataDir) import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy as L @@ -213,12 +213,10 @@ getRefs locale format idpred raw = (return . filter (idpred . unItemId . referenceId)) . cslJsonToReferences $ raw Format_yaml -> do - meta <- yamlToMeta def{ readerExtensions = pandocExtensions } - (L.fromStrict raw) - case lookupMeta "references" meta of - Just (MetaList rs) -> - return $ mapMaybe (metaValueToReference idpred) rs - _ -> throwError $ PandocAppError "No references field" + rs <- yamlToRefs idpred + def{ readerExtensions = pandocExtensions } + (L.fromStrict raw) + return $ mapMaybe (metaValueToReference idpred . MetaMap) rs -- localized quotes convertQuotes :: Locale -> Inline -> Inline |