{-# LANGUAGE OverloadedStrings #-} {- | Helpers and CSS styles for HTML output. -} module Hledger.Write.Html.Attribute ( stylesheet, concatStyles, tableStylesheet, tableStyle, bold, doubleborder, topdoubleborder, bottomdoubleborder, alignright, alignleft, aligncenter, collapse, lpad, rpad, hpad, vpad, ) where import qualified Data.Text as Text import Data.Text (Text) stylesheet :: [(Text,Text)] -> Text stylesheet elstyles = Text.unlines $ "" : [el<>" {"<>styles<>"}" | (el,styles) <- elstyles] concatStyles :: [Text] -> Text concatStyles = Text.intercalate "; " tableStylesheet :: Text tableStylesheet = stylesheet tableStyle tableStyle :: [(Text, Text)] tableStyle = [("table", collapse), ("th, td", lpad), ("th.account, td.account", "padding-left:0;")] bold, doubleborder, topdoubleborder, bottomdoubleborder :: Text bold = "font-weight:bold" doubleborder = "double black" topdoubleborder = "border-top:"<>doubleborder bottomdoubleborder = "border-bottom:"<>doubleborder alignright, alignleft, aligncenter :: Text alignright = "text-align:right" alignleft = "text-align:left" aligncenter = "text-align:center" collapse :: Text collapse = "border-collapse:collapse" lpad, rpad, hpad, vpad :: Text lpad = "padding-left:1em" rpad = "padding-right:1em" hpad = "padding-left:1em; padding-right:1em" vpad = "padding-top:1em; padding-bottom:1em"