From b58dca1c9a67e629a6eedc610d55dda7525defcd Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Wed, 29 Nov 2023 13:32:13 +0100 Subject: [PATCH] refactor metadata; always apply all metadata parsers; hide index and clients --- src/Main.hs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index cc81b1d..0fbfafb 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -58,17 +58,17 @@ stripPathPrefix (splitDirectories -> prefix) = handleIf :: Exception e => (e -> Bool) -> (e -> IO a) -> IO a -> IO a handleIf predicate handler = handle $ \exc -> bool throwIO handler (predicate exc) exc -metadataSort :: [Item w] -> Compiler [Item w] -metadataSort = sortOnM $ \Item{itemIdentifier} -> maybe (0 :: Integer) read <$> getMetadataField itemIdentifier "sort" - where - sortOnM :: forall m a b. (Monad m, Ord b) => (a -> m b) -> [a] -> m [a] - sortOnM f = fmap (map snd . List.sortOn fst) . mapM (\x -> (,x) <$> f x) - -metadataShow :: [Item w] -> Compiler [Item w] -metadataShow = filterM $ \Item{itemIdentifier} -> maybe (True :: Bool) read <$> getMetadataField itemIdentifier "show" - metadata :: [Item w] -> Compiler [Item w] metadata = metadataShow >=> metadataSort + where + metadataShow :: [Item w] -> Compiler [Item w] + metadataShow = filterM $ \Item{itemIdentifier} -> maybe (True :: Bool) read <$> getMetadataField itemIdentifier "show" + + metadataSort :: [Item w] -> Compiler [Item w] + metadataSort = sortOnM $ \Item{itemIdentifier} -> maybe (0 :: Integer) read <$> getMetadataField itemIdentifier "sort" + where + sortOnM :: forall m a b. (Monad m, Ord b) => (a -> m b) -> [a] -> m [a] + sortOnM f = fmap (map snd . List.sortOn fst) . mapM (\x -> (,x) <$> f x) unwrapped :: Snapshot unwrapped = "unwrapped" @@ -244,7 +244,7 @@ main = let ctx = mconcat - [ listField "posts" postContext (metadataSort =<< loadAll posts) + [ listField "posts" postContext (metadata =<< loadAll posts) , defaultContext ]