add index page

This commit is contained in:
Rhiannon Morris 2020-07-16 16:29:32 +02:00
parent 375c6e833a
commit 3f025721c8
6 changed files with 63 additions and 8 deletions

39
make-pages/IndexPage.hs Normal file
View file

@ -0,0 +1,39 @@
module IndexPage (make) where
import qualified Data.Text.Lazy as Lazy
import Data.Text.Lazy.Builder (Builder, toLazyText)
import BuilderQQ
import Info
make :: [GalleryInfo] -> Lazy.Text
make ginfos = toLazyText $ make' ginfos
make' :: [GalleryInfo] -> Builder
make' ginfos = [b|@0
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<title>gallery list</title>
<header>
<h1>gallery list</h1>
</header>
<main>
<ul class=gallery-list>
$4.items
</ul>
</main>
|]
where
items = map makeItem ginfos
makeItem :: GalleryInfo -> Builder
makeItem (GalleryInfo {title, prefix}) = [b|@4
<li>
<a href="$@prefix">
$*title
</a>
|]