erubis1
Eruby style template engine for multiple languages
Usage
erubis [..options..]
[file ...]
Overview
Embedded templating engine for multiple languages. Erubis will take a template file as input and output code to convey that data in the language specified. The following output languages are supported:
-
* Ruby
* PHP
* C
* Java
* Scheme
* Perl
* JavaScript
Options
-
-h, --help -
help
-
-v -
version
-
-x -
show converted code
-
-X -
show converted code, only ruby code and no text part
-
-N -
numbering: add line numbers (for '-x/-X')
-
-U -
unique: compress empty lines to a line (for '-x/-X')
-
-C -
compact: remove empty lines (for '-x/-X')
-
-b -
body only: no preamble nor postamble (for '-x/-X')
-
-z -
syntax checking
-
-e -
escape (equal to '--E Escape')
-
-p pattern -
embedded pattern (default '<% %>')
-
-l lang -
convert but no execute (ruby/php/c/java/scheme/perl/js)
-
-E e1,e2,... -
enhancer names (Escape, PercentLine, BiPattern, ...)
-
-I path -
library include path
-
-K kanji -
kanji code (euc/sjis/utf8) (default none)
-
-c context -
context data string (yaml inline style or ruby code)
-
-f datafile -
context data file ('*.yaml', '*.yml', or '*.rb')
-
-T -
don't expand tab characters in YAML file
-
-S -
convert mapping key from string to symbol in YAML file
-
-B -
invoke 'result(binding)' instead of 'evaluate(context)'
-
--pi=name -
parse '<?name ... ?>' instead of '<% ... %>'
supported properties:
-
* (common)
-
--escapefunc=nil -
: escape function name
--pattern="<% %>"-
: embed pattern
-
--trim=true -
: trim spaces around <% ... %>
-
--preamble=nil -
: preamble (no preamble when false)
-
--postamble=nil -
: postamble (no postamble when false)
-
--escape=nil -
: escape expression or not in default
-
* (basic) * (pi)
-
--pi="rb" -
: PI (Processing Instrunctions) name
-
--embchar="@" -
: char for embedded expression pattern('@{...}@')
-
* ruby * php * c
-
--indent="" -
: indent spaces (ex. ' ')
-
--out="stdout" -
: output file pointer name
-
* java
-
--indent="" -
: indent spaces (ex. ' ')
-
--buf="_buf" -
: output buffer name
--bufclass="StringBuffer" : output buffer class (ex. 'StringBuilder')
-
* scheme
-
--func="_add" -
: function name (ex. 'display')
-
* perl
-
--func="print" -
: function name
-
* javascript
-
--docwrite=true -
: use 'document.write()' when true
Examples
Run 'erubis -l php example.ephp' to convert the embedded document to php code.
example.ephp:
<?xml version="1.0"?>
<html>
<body>
<p>Hello <%= $user %>!</p>
<table>
<tbody>
<% $i = 0; %>
<% foreach ($list as $item) { %>
<% $i++; %>
<tr bgcolor="<%= $i % 2 == 0 ? '#FFCCCC' : '#CCCCFF' %>">
<td><%= $i %></td>
<td><%== $item %></td>
</tr>
<% } %>
</tbody>
</table>
</body>
</html>