Hastache context helpers
- mkStrContext :: Monad m => (String -> MuType m) -> MuContext m
- mkGenericContext :: (Monad m, Data a) => a -> MuContext m
Documentation
mkStrContext :: Monad m => (String -> MuType m) -> MuContext mSource
Make Hastache context from String -> MuType function
mkGenericContext :: (Monad m, Data a) => a -> MuContext mSource
Make Hastache context from Data.Data deriving type
data InternalData = InternalData { someField :: String, anotherField :: Int } deriving (Data, Typeable, Show) data Example = Example { stringField :: String, intField :: Int, dataField :: InternalData, simpleListField :: [String], dataListField :: [InternalData] } deriving (Data, Typeable, Show) example = hastacheStr defaultConfig (encodeStr template) (mkGenericContext context) where template = concat [ "string: {{stringField}} \n", "int: {{intField}} \n", "data: {{dataField.someField}}, {{dataField.anotherField}} \n", "data: {{#dataField}}{{someField}}, {{anotherField}}{{/dataField}} \n", "simple list: {{#simpleListField}}{{.}} {{/simpleListField}} \n", "data list: \n", "{{#dataListField}}\n", " * {{someField}}, {{anotherField}} \n", "{{/dataListField}}\n"] context = Example { stringField = "string value", intField = 1, dataField = InternalData "val" 123, simpleListField = ["a","b","c"], dataListField = [InternalData "aaa" 1, InternalData "bbb" 2] }
Result:
string: string value int: 1 data: val, 123 data: val, 123 simple list: a b c data list: * aaa, 1 * bbb, 2