uni2work.workflows.visualiser/server/Templates.hs
2023-09-05 04:28:36 +02:00

25 lines
642 B
Haskell

-- SPDX-FileCopyrightText: 2023 David Mosbach <david.mosbach@campus.lmu.de>
--
-- SPDX-License-Identifier: AGPL-3.0-or-later
module Templates where
import Text.EDE
import Data.Either (fromRight)
import Data.HashMap.Strict
import Data.Aeson (Value)
import Data.Maybe (fromMaybe)
import Data.Text
import qualified Data.Text.Lazy as TL
type RenderContext = HashMap Text Value
renderAppHtml :: Maybe RenderContext -> IO String
renderAppHtml context = do
template <- eitherParseFile "editor.html"
let result = either error id $ template >>= (`eitherRender` fromMaybe (fromPairs [] :: RenderContext) context)
return $ TL.unpack result