---
name: "erubis"
section: "1"
platform: "linux"
package: "ruby-erubis"
version: "2.7.0-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/erubis"
---

# erubis(1)

eRuby style template engine for multiple languages

## NAME

erubis - eRuby style template engine for multiple languages

## SYNOPSIS

**erubis** \[..*options*..\] \[*file* ...\]

## DESCRIPTION

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\>

## SEE ALSO

http://rubyforge.org/projects/erubis/
