7 comments

[ 3.0 ms ] story [ 29.1 ms ] thread
I really appreciated the comparison table between Temple, Surface, EEx, and HEEx at the end.
iolist are great: https://nathanmlong.com/2021/05/what-is-an-iolist/

This is how an high level language such as erlang can be very efficient at printing out strings: native language support for strings embedded in lists. That way a template engine doesn't have to allocate memory and copy every time it needs to prepend or append to strings together. Just wrap them in another list.

IO.puts([[ "this", [ "is", [ "an" ]]] | "iolist" ])

The usage and the steps to use EEx.Engine are really underdocumented IMO. I've tried to implement custom syntaxes for LiveView several times and ended up just copy-pasting and constructing the relevant structs manually.