malomalo / ruby-ejs

EJS (Embedded JavaScript) template compiler for Ruby

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EJS (Embedded JavaScript) template compiler for Ruby Circle CI

EJS templates embed JavaScript code inside <% ... %> tags, much like ERB. This library is a port of Underscore.js's _.template function to Ruby, and strives to maintain the same syntax and semantics.

Pass an EJS template to EJS.compile to generate a JavaScript function:

EJS.compile("Hello <%= name %>")
# => "function(obj){...}"

Invoke the function in a JavaScript environment to produce a string value. You can pass an optional object specifying local variables for template evaluation.

The EJS tag syntax is as follows:

  • <% ... %> silently evaluates the statement inside the tags.
  • <%= ... %> evaluates the expression inside the tags and inserts its string value into the template output.
  • <%- ... %> behaves like <%= ... %> but HTML-escapes its output.

If a evalation tag (<%=) ends with an open function, the function return a compiled template. For example:

<% formTag = function(template) { return '<form>\n'+template()+'\n</form>'; } %>

<%= formTag(function () { %>
  <input type="submit" />
<% }) %>

generates:

<form>
  <input type="submit" />
</form>

If you have the ExecJS library and a suitable JavaScript runtime installed, you can pass a template and an optional hash of local variables to EJS.evaluate:

EJS.evaluate("Hello <%= name %>", :name => "world")
# => "Hello world"

© 2012 Sam Stephenson

Released under the MIT license

About

EJS (Embedded JavaScript) template compiler for Ruby

License:MIT License


Languages

Language:Ruby 98.7%Language:JavaScript 1.3%