diff options
Diffstat (limited to 'src/Data')
| -rw-r--r-- | src/Data/Paper.hs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Data/Paper.hs b/src/Data/Paper.hs index b86b2f0..38994de 100644 --- a/src/Data/Paper.hs +++ b/src/Data/Paper.hs @@ -135,7 +135,7 @@ mkPaper bib = do -- doi <- find' "doi" >>= fmap DOI . puri -- date <- getDate -- pure $ Published {..} - extraLink <- traverse puri $ M.lookup "extralink" fields + extraLink <- traverse pauri $ M.lookup "extralink" fields eprints <- case toLower <<$>> M.lookup "eprinttype" fields of Just "arxiv" -> do _identifier <- find' "eprint" >>= puri @@ -155,5 +155,8 @@ mkPaper bib = do puri :: MonadFail m => String -> m URI puri u = maybe (fail $ show u <> " cannot be understood as a uri") pure $ parseRelativeReference u +pauri :: MonadFail m => String -> m URI +pauri u = maybe (fail $ show u <> " cannot be understood as a uri") pure $ parseURIReference u + findit :: (Show a, Ord a, MonadFail m) => a -> M.Map a x -> m x findit k = maybe (fail $ "Field " <> show k <> " does not exist") pure . M.lookup k |
