diff --git a/src/DOM.hs b/src/DOM.hs index a15f723..b57810c 100644 --- a/src/DOM.hs +++ b/src/DOM.hs @@ -34,10 +34,10 @@ class HasCard a => HasContent a where content :: a -> HtmlGenerator () instance HasContent Article where - content = markdown True . getMarkdown + content = mDContent True . getMarkdown instance HasContent Page where - content = markdown True . getMarkdown + content = mDContent True . getMarkdown instance HasContent ArticlesList where content al@(ArticlesList {full}) = do @@ -47,7 +47,7 @@ instance HasContent ArticlesList where asks hasRSS >>= rssLink li_ . a_ [href_ . pack $ otherURL al, class_ "other"] =<< otherLink div_ [class_ "articles"] ( - mapM_ (markdown False . preview) =<< getArticles al + mapM_ (mDContent False . preview) =<< getArticles al ) where otherLink = @@ -58,21 +58,17 @@ instance HasContent ArticlesList where li_ . a_ [href_ "rss.xml", class_ "RSS", title_ title] $ toHtml text rssLink False = return () -markdown :: Bool -> Markdown -> HtmlGenerator () -markdown raw (Markdown {key, Markdown.path, body, title}) = - let url = absoluteLink $ path <.> extension in +mDContent :: Bool -> Markdown -> HtmlGenerator () +mDContent raw markdown@(Markdown {key, body}) = article_ [id_ $ pack key] (do - header_ (do - h1_ . a_ [href_ $ pack url] $ toHtml title - ) + header_ . h1_ $ mDLink raw markdown pre_ . toHtml $ unlines body ) - where extension = if raw then "md" else "html" -mDLink :: MarkdownContent a => Bool -> a -> HtmlGenerator () -mDLink raw a = a_ [href_ $ pack url] $ toHtml title +mDLink :: Bool -> Markdown -> HtmlGenerator () +mDLink raw (Markdown {Markdown.path, title}) = + a_ [href_ $ pack url] $ toHtml title where - Markdown {Markdown.path, title} = getMarkdown a url = absoluteLink $ path <.> (if raw then "md" else "html") tag :: String -> HtmlGenerator () @@ -81,7 +77,7 @@ tag name = li_ ( ) defaultBanner :: HtmlGenerator () -defaultBanner = do +defaultBanner = div_ [id_ "header"] ( a_ [href_ "/"] ( h1_ . toHtml =<< asks name @@ -116,7 +112,7 @@ htmlDocument someContent = ) div_ [id_ "pages"] (do h2_ . toHtml =<< template "pagesList" [] - ul_ . mapM_ (mDLink False) . Map.elems =<< asks pages + ul_ . mapM_ (mDLink False . getMarkdown) . Map.elems =<< asks pages ) div_ [id_ "contents"] $ content someContent )