{-# LANGUAGE CPP, OverloadedStrings, QuasiQuotes, NamedFieldPuns #-} -- | Common page components and rendering helpers. -- For global page layout, see Application.hs. module Handler.Common where import Import import qualified Data.Text as T import Data.Time.Calendar (Day, toGregorian) import System.FilePath (takeFileName) import Text.Blaze (ToMarkup) import Text.Blaze.Internal (preEscapedString) import Text.Printf (printf) import Hledger.Cli.CliOptions import Hledger.Data import Hledger.Query import Hledger.Reports import Hledger.Utils import Hledger.Web.WebOptions ------------------------------------------------------------------------------- -- Common page layout -- | Standard hledger-web page layout. #if MIN_VERSION_yesod(1,6,0) hledgerLayout :: ViewData -> Text -> HtmlUrl AppRoute -> HandlerFor App Html #else hledgerLayout :: ViewData -> Text -> HtmlUrl AppRoute -> HandlerT App IO Html #endif hledgerLayout vd title content = do defaultLayout $ do setTitle $ toHtml $ title <> " - hledger-web" toWidget [hamlet| ^{topbar vd} ^{sidebar vd}