templatel
A modern templating language for Emacs-Lisp. Inspired on Jinja, templatel brings a high level language for expanding variables with conditional and loop control flow structures.
Documentation
- Website: https://clarete.li/templatel
- Documentation: https://clarete.li/templatel/doc
- Code: https://github.com/clarete/templatel
- Issues: https://github.com/clarete/templatel/issues
How does it look like
<h1>{{ title }}</h1>
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.name }}</a></li>
{% endfor %}
</ul>
That can be rendered with the following Emacs Lisp code:
(templatel-render-file "tmpl.html.jinja"
'(("title" . "A nice web page")
("users" . ((("url" . "https://clarete.li")
("name" . "link"))
(("url" . "https://gnu.org")
("name" . "Gnu!!"))))))
The rendered code would look like this:
<h1>A nice web page</h1>
<ul>
<li><a href="https://clarete.li">link</a></li>
<li><a href="https://gnu.org">Gnu!!</a></li>
</ul>