From 0b7e284986ff510807345462c605b810d858096c Mon Sep 17 00:00:00 2001 From: Daniel Kauss Serna Date: Fri, 6 Feb 2026 11:45:23 +0100 Subject: [PATCH] Calendar event now points to wiki --- src/Ical.hs | 6 ++++-- src/Render.hs | 45 +++++++++++++++++++++++---------------------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/Ical.hs b/src/Ical.hs index f634f09..ec57ee3 100644 --- a/src/Ical.hs +++ b/src/Ical.hs @@ -35,6 +35,7 @@ data Event = Event { summary :: T.Text, euid :: T.Text, description :: T.Text, + url :: T.Text, location :: T.Text, dtStart :: LocalTime, dtEnd :: LocalTime, @@ -97,7 +98,7 @@ applyLimit lim dates = case lim of Count c -> take c dates expandEvent :: Event -> Day -> [Event] -expandEvent e@(Event _ _ _ _ start end rule) maxViewDate = +expandEvent e@(Event _ _ _ _ _ start end rule) maxViewDate = let startDate = localDay start duration = diffLocalTime end start @@ -198,6 +199,7 @@ toEvent input = do let optional opt p = M.findWithDefault opt p params summText <- require "SUMMARY" + url <- require "URL" uid <- require "UID" startText <- require "DTSTART" endText <- require "DTEND" @@ -212,7 +214,7 @@ toEvent input = do startDate <- parseDate startText <+?> "Error reading start Date: " endDate <- parseDate endText <+?> "Error reading end Date: " - pure $ Event summText uid descriptionText loc startDate endDate rrule + pure $ Event summText uid descriptionText url loc startDate endDate rrule -- This is very nice, replace Left with a different Left () :: Either e a -> String -> Either String a diff --git a/src/Render.hs b/src/Render.hs index d8bd832..62fc251 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -117,30 +117,31 @@ padZero n = if n < 10 then "0" ++ show n else show n renderCalendarEvent :: Lang -> Event -> Html () renderCalendarEvent lang e = do - let uid = euid e + -- let uid = euid e li_ [class_ "event-item"] $ do -- (toHtml $ summary e) - a_ [href_ ("#" <> uid), class_ "event-link"] $ toHtml (summary e) - div_ [class_ "event-popup", id_ uid] $ do - h1_ [] $ do - (toHtml $ summary e) - a_ - [ href_ ("#None"), - class_ "close-btn" - ] - "×" - p_ [class_ "lead"] $ - toHtml $ - T.pack $ - printf - "%s -> %s - %s" - (formatTime (getLocale lang) "%A %d.%m.%y" $ dtStart e) - (formatTime defaultTimeLocale "%H:%M" $ dtStart e) - (formatTime defaultTimeLocale "%H:%M" $ dtEnd e) - - p_ [] $ - toHtml $ - description e + a_ [href_ $ url e, class_ "event-link"] $ toHtml (summary e) + -- a_ [href_ ("#" <> uid), class_ "event-link"] $ toHtml (summary e) + -- div_ [class_ "event-popup", id_ uid] $ do + -- h1_ [] $ do + -- (toHtml $ summary e) + -- a_ + -- [ href_ ("#None"), + -- class_ "close-btn" + -- ] + -- "×" + -- p_ [class_ "lead"] $ + -- toHtml $ + -- T.pack $ + -- printf + -- "%s -> %s - %s" + -- (formatTime (getLocale lang) "%A %d.%m.%y" $ dtStart e) + -- (formatTime defaultTimeLocale "%H:%M" $ dtStart e) + -- (formatTime defaultTimeLocale "%H:%M" $ dtEnd e) + -- + -- p_ [] $ + -- toHtml $ + -- description e renderMonthview :: Lang -> (Year, MonthOfYear) -> Day -> [(Day, [Event])] -> Html () renderMonthview lang (year, month) today groupedEvents = do