module Data.Aviation.Casr.Logbook.FlightLogEntries ( FlightLogEntries(..) ) where import Data.Aviation.Casr.Logbook.Aircraft import Data.Aviation.Casr.Logbook.Date import Data.Aviation.Casr.Logbook.FlightLogEntry import Data.Aviation.Casr.Logbook.Printer.Markdown import Data.Aviation.Casr.Logbook.Printer.Html import Data.List newtype FlightLogEntries = FlightLogEntries [FlightLogEntry] deriving (Eq, Ord, Show) instance Monoid FlightLogEntries where mempty = FlightLogEntries [] FlightLogEntries e1 `mappend` FlightLogEntries e2 = FlightLogEntries (e1 `mappend` e2) instance Markdown FlightLogEntries where markdown (FlightLogEntries g) = intercalate "\n\n----\n\n" (fmap markdown g) instance Html FlightLogEntries where html (FlightLogEntries g) = (\(i, h@(FlightLogEntry _ (Date d) (Aircraft _ reg _) _ _ _ _ _ _ _ _ _)) -> let divid = concat [ d , "_" , reg , "_" , show (i :: Int) ] in concat [ "<div id=\"" , divid , "\" class=\"flightlogentry\">" , "<div class=\"hreflink\">" , "<a href=\"#" , divid , "\">" , "ยง" , "</a>" , "</div>" , html h , "</div>" , "<hr>" ]) =<< zip [0..] g