From ad7ce6aacdb95f9bdf40a566186f5e2a220bdb5e Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 10 May 2026 18:38:59 +0100 Subject: Migrate index and calendar templates to new renderer --- src/Pages.hs | 50 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) (limited to 'src/Pages.hs') diff --git a/src/Pages.hs b/src/Pages.hs index 4efd8fe..4e85cae 100644 --- a/src/Pages.hs +++ b/src/Pages.hs @@ -2,11 +2,7 @@ {-# LANGUAGE NoFieldSelectors #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} -module Pages ( - renderPageLog, LogData(..), - renderPageCalendarDay, CalendarDayData(..), - PickerData(..), EventData(..), -) where +module Pages where import Control.Monad.IO.Class (liftIO) import Data.Text (Text) @@ -18,6 +14,46 @@ import Text.Mustache.Compile qualified as M import Pages.TH +data IndexData = IndexData + { networks :: [IndexNetworkData] } + +data IndexNetworkData = IndexNetworkData + { name :: Text + , channels :: [IndexChannelData] } + +data IndexChannelData = IndexChannelData + { name :: Text + , alias :: Text } + +data CalendarData = CalendarData + { network :: Text + , channel :: Text + , alias :: Text + , years :: [CalendarYearData] + } + +data CalendarYearData = CalendarYearData + { year :: Int + , monrows :: [CalendarMonthRowData] } + +data CalendarMonthRowData = CalendarMonthRowData + { months :: [CalendarMonthData] } + +data CalendarMonthData = CalendarMonthData + { display :: Bool + , month :: Int + , month00 :: Text + , monthname :: Text + , weeks :: [CalendarWeekData] + , phantomweek :: Bool } + +data CalendarWeekData = CalendarWeekData + { days :: [CalendarDayData'] } + +data CalendarDayData' = CalendarDayData' + { date :: Maybe Int + , date00 :: Text } + data LogData = LogData { network :: Text , channel :: Text @@ -68,4 +104,6 @@ $(do let readTemplate name = do Left err -> fail $ "Reading " ++ path ++ ": " ++ show err concat <$> mapM (\(name, ty) -> (`makeRender` ty) =<< readTemplate name) [("log", ''LogData) - ,("calendar-day", ''CalendarDayData)]) + ,("calendar-day", ''CalendarDayData) + ,("index", ''IndexData) + ,("calendar", ''CalendarData)]) -- cgit v1.3.1