
My current project at work has a web interface. Therefore I needed an HTML templating library. I've tried several and found them all unsatisfactory. Most of them generate Haskell code from templates (with Template Haskell or a separate utility), and I don't like metaprogramming; and recompiling the program every time you make a small change in the template kinda defeats the purpose. Other libraries make it PITA to implement basic things, like iterating over an array. So, I'm proud to announce the first release of another template library: plat-0.1.0.1 (http://hackage.haskell.org/package/plat). An example of what it does. If your data looks like do "name" =: "Mac's tools" "staff" =: [ do "index" =: "1" "name" =: "Alice" , do "name" =: "Bob" "index" =: "2" "bad" =: True , do "index" =: "3" "name" =: "Nicolás" ] and your template is List of employees at @name: @staff[person @person.index@.. @person.name@{@!person.bad (going to be fired)@|@}@ @]@# There won't be an empty line in the result Then the result you get would be this: List of employees at Mac's tools: 1. Alice 2. Bob (going to be fired) 3. Nicolás Keep in mind, that it's actually a string template library, and the resulting string doesn't have to be valid HTML, or any HTML at all. I haven't benchmarked this library - since I intended to use it for web interface in an program which won't be released outside, speed was not in my priorities; but I'll work on that in future versions. Also, templates are supposed to be in UTF-8, as I've successfully forgot all about other encodings. So, if you want binary templates, I'm afraid, this library is not for you.
participants (1)
-
Miguel Mitrofanov