40 lines
1.1 KiB
Haskell
40 lines
1.1 KiB
Haskell
|
{-# LANGUAGE NamedFieldPuns #-}
|
||
|
module Mock.Blog (
|
||
|
noCards
|
||
|
, noRSS
|
||
|
, simple
|
||
|
) where
|
||
|
|
||
|
import Blog (Blog(..))
|
||
|
import qualified Data.Map as Map (fromList)
|
||
|
import qualified Data.Set as Set (fromList)
|
||
|
import qualified Mock.Article (simple)
|
||
|
import qualified Mock.Blog.Path (defaultArticles)
|
||
|
import qualified Mock.Blog.Skin (simple)
|
||
|
import qualified Mock.Blog.Template (simple)
|
||
|
import qualified Mock.Blog.URL (simple, noCards)
|
||
|
import qualified Mock.Blog.Wording (defaultWording)
|
||
|
|
||
|
simple :: IO Blog
|
||
|
simple =
|
||
|
let wording = Mock.Blog.Wording.defaultWording in do
|
||
|
templates <- Mock.Blog.Template.simple
|
||
|
return $ Blog {
|
||
|
articles = Map.fromList [("test", Mock.Article.simple)]
|
||
|
, hasRSS = True
|
||
|
, name = "The Test Blog"
|
||
|
, pages = Map.fromList []
|
||
|
, path = Mock.Blog.Path.defaultArticles
|
||
|
, skin = Mock.Blog.Skin.simple
|
||
|
, tags = Map.fromList [("testing", Set.fromList ["test"])]
|
||
|
, templates
|
||
|
, urls = Mock.Blog.URL.simple
|
||
|
, wording
|
||
|
}
|
||
|
|
||
|
noCards :: IO Blog
|
||
|
noCards = (\b -> b {urls = Mock.Blog.URL.noCards}) <$> simple
|
||
|
|
||
|
noRSS :: IO Blog
|
||
|
noRSS = (\b -> b {hasRSS = False}) <$> simple
|