git.iko.soy/typeable/pandoc
on master help sign in
Removed the idpred from metaValueToReference.

This isn't really necessary; we do filtering at other points now.

commit3e7ca707c9514c30a02786e45646ce0c6eb3abe7 authorJohn MacFarlane <jgm@berkeley.edu> dateMon 5 Oct 2020, 21:15 (6 years ago) parent6a32ea7
3 files changed+13−22
src/Text/Pandoc/Citeproc.hs+2−3 src/Text/Pandoc/Citeproc/MetaValue.hs+10−18 src/Text/Pandoc/Writers/CslJson.hs+1−1
src/Text/Pandoc/Citeproc.hs+2−3
@@ -107,8 +107,7 @@ processCitations (Pandoc meta bs) = do
107107 c `Set.member` nocites)
108108 refs <- map (linkifyVariables . legacyDateRanges) <$>
109109 case lookupMeta "references" meta of
110− Just (MetaList rs) -> return $
111− mapMaybe (metaValueToReference idpred) rs
110+ Just (MetaList rs) -> return $ mapMaybe metaValueToReference rs
112111 _ ->
113112 case lookupMeta "bibliography" meta of
114113 Just (MetaList xs) ->
@@ -216,7 +215,7 @@ getRefs locale format idpred raw =
216215 rs <- yamlToRefs idpred
217216 def{ readerExtensions = pandocExtensions }
218217 (L.fromStrict raw)
219− return $ mapMaybe (metaValueToReference idpred . MetaMap) rs
218+ return $ mapMaybe (metaValueToReference . MetaMap) rs
220219
221220-- localized quotes
222221convertQuotes :: Locale -> Inline -> Inline
src/Text/Pandoc/Citeproc/MetaValue.hs+10−18
@@ -102,27 +102,19 @@ dateToMetaValue date =
102102 | otherwise -> printf "%04d" y
103103 _ -> mempty
104104
105−metaValueToReference :: (Text -> Bool) -- ^ predicate on IDs to include
106− -> MetaValue
105+metaValueToReference :: MetaValue
107106 -> Maybe (Reference Inlines)
108−metaValueToReference idpred (MetaMap m) = do
107+metaValueToReference (MetaMap m) = do
109108 let m' = M.mapKeys normalizeKey m
110109 id' <- M.lookup "id" m' >>= metaValueToText
111− let mbotherids =
112− case M.lookup "other-ids" m' of
113− Just (MetaList xs) -> map metaValueToText xs
114− _ -> []
115− if idpred id' || any (maybe False idpred) mbotherids
116− then do
117− type' <- (M.lookup "type" m' >>= metaValueToText) <|> pure ""
118− let m'' = M.delete "id" $ M.delete "type" m'
119− let vars = M.mapKeys toVariable $ M.mapWithKey metaValueToVal m''
120− return $ Reference { referenceId = ItemId id'
121− , referenceType = type'
122− , referenceDisambiguation = Nothing
123− , referenceVariables = vars }
124− else Nothing
125−metaValueToReference _ _ = Nothing
110+ type' <- (M.lookup "type" m' >>= metaValueToText) <|> pure ""
111+ let m'' = M.delete "id" $ M.delete "type" m'
112+ let vars = M.mapKeys toVariable $ M.mapWithKey metaValueToVal m''
113+ return $ Reference { referenceId = ItemId id'
114+ , referenceType = type'
115+ , referenceDisambiguation = Nothing
116+ , referenceVariables = vars }
117+metaValueToReference _ = Nothing
126118
127119metaValueToVal :: Text -> MetaValue -> Val Inlines
128120metaValueToVal k v
src/Text/Pandoc/Writers/CslJson.hs+1−1
@@ -48,7 +48,7 @@ writeCslJson _opts (Pandoc meta _) = do
4848 Right l -> return l
4949 case lookupMeta "references" meta of
5050 Just (MetaList rs) -> return $ (UTF8.toText $
51− toCslJson locale (mapMaybe (metaValueToReference (const True)) rs))
51+ toCslJson locale (mapMaybe metaValueToReference rs))
5252 <> "\n"
5353 _ -> throwError $ PandocAppError "No references field"
5454