kevsmith / herml
- Source
- Commits
- Network (4)
- Issues (1)
- Downloads (1)
- Wiki (1)
- Graphs
-
Branch:
master
herml /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Tue Dec 16 09:07:17 -0800 2008 | |
| |
CONTRIBUTORS | Sat Mar 07 14:37:13 -0800 2009 | |
| |
Makefile | Fri Jun 19 12:02:31 -0700 2009 | |
| |
README | Fri Jun 19 12:12:47 -0700 2009 | |
| |
TODO | Tue Feb 17 12:38:35 -0800 2009 | |
| |
src/ | Fri Jun 12 07:38:03 -0700 2009 | |
| |
tests/ | Fri Jun 12 07:38:03 -0700 2009 |
README
Welcome to herml, the Haml-like templating language!
Building:
1) Install leex 0.3 or greater. Putting it in your $ERLANG_HOME/lib is best.
leex is included with R13B01.
2) Clone the herml repo from Github.
3) Run make
4) Put the herml/ebin directory somewhere on your code path:
4a) Symlink the top-level herml directory into your $ERLANG_HOME/lib directory
-or-
4b) Use the -pz or -pa switches on erl to place herml/ebin onto your code path
Using in Sinan:
1) Clone the herml repo from Github
2) Run `make special` in the herml directory
3) Make sure your sinan project can find the herml repo
3a) Clone inside your projects lib directory
-or-
3b) Symlink the herml directory to your projects lib directory
4) Keep it up to date:
a) Pull down latest changes
b) `make clean`
c) `make special`
Running tests:
1) Run make clean tests
Using herml:
1) Start up a herml_manager process for your template directory:
1> herml_manager:start_link(my_web_app,"/path/to/templates").
Note: herml_manager can cache the compiled template and use it over and over.
2) Execute the template by calling the herml_manager process:
2> Result = herml_manager:execute_template("file.herml", Env).
Note: Env is a proplist containing the execution environment for the
template. herml expects all variable names to be Erlang strings. For
example, here's a valid environment proplists: [{"UserName", "herml"}].
The UserName variable would be referenced from herml as @UserName.
Another note: For efficiency reasons, herml_manager:execute_template/2,3,4
returns iolists when it executes templates. If you want to view the
template output as a standard string, you can use the io module
to flatten the iolist:
3> io:format("~s", [Result]).
