Markup Language Expressions for LFE
Erlang Makefile
Clone or download
Pull request Compare This branch is 141 commits ahead of oubiwann:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs Added 0.3.1 docs. Mar 13, 2016
include Added 'loaded' functions to macro includes. Oct 28, 2016
priv Tweak env vars. Nov 1, 2016
src Bumped version. Nov 1, 2016
test Update VERY OLD string and call syntax. Oct 28, 2016
.gitignore Updated ignores. Oct 28, 2016
.travis.yml Tweak env vars. Nov 1, 2016
LICENSE Updated copyright dates. Oct 28, 2016
Makefile Formatting tweaks. Oct 31, 2016
lfe.config Bumped version. Nov 1, 2016
rebar.config Moved hexpm to make target. Oct 31, 2016


Build Status LFE Versions Erlang Versions Tags Downloads

Markup Language Expressions for LFE: creating XML/HTML with S-expressions on the Erlang VM

Project Logo



Supported Tags

Right now, only HTML5 is supported. Feel free to submit pull requests to support older/different tags/elements.

The list of tags was obtained from Mozilla's HTML 5 documentation

Note that XML namespacing hasn't been explored yet, but should be possible.

Current Status

As you can see in the example usage below, you can use exemplar to build HTML strings using LFE S-expressions. However, do note that the project has just started and there are lots of unexplored HTML edge-cases that simply won't work right now.

If you come across anything, feel free to submit a bug in the github issue tracker, or even send us a pull request :-)

About the Name

Naming and cache invalidation, right?

The first thought was to name the project ML-expr: ML for HTML, replacing the "s" of "s-expression". MLEXPR isn't all that pronouncable, so another "e" and an "a" were added for "exemplar". That's all there is to it.

Also: "Do you know who I am?!"


This project assumes that you have rebar3 installed somwhere in your $PATH.


Just add it to your rebar.config deps:

{deps, [
    {exemplar, ".*", {git, "", {tag, "x.y.z"}}

And then do the usual:

$ rebar3 compile


Documentation for Exemplar is published to the following locations:


Copyright © 2014-2016 Duncan McGreggor

Distributed under the Apache License, Version 2.0.