This library provides a very simple format string syntax with named identifiers based on text
and attoparsec
.
Syntax for identifiers is ${variable-name}
.
Please note that it is whitespace sentitive, meaning ${var]
references the variable "var"
whereas ${ var}
referenced the varaible " var"
.
The rendering is agnostic to the data structure you use to keep the identifiers.
The formatting function expects simply a function Text -> Maybe Text
There is currently no escaping mechanism, meaning $
parses to "$"
but there is no way to get a literal ${
.
let formatStr = "A string with ${var} and ${var2}"
let identMap = [("var", "something"), ("var2", "something else")] :: HashMap Text Text
format' formatStr (lookup identMap)
-- A string with something and something else