Socket
Socket
Sign inDemoInstall

riot-tmpl

Package Overview
Dependencies
Maintainers
4
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

riot-tmpl

The riot template engine


Version published
Weekly downloads
2.8K
decreased by-7.24%
Maintainers
4
Weekly downloads
 
Created
Source

Build Status Code Quality NPM version NPM downloads MIT License Coverage Status

Tmpl

The riot template engine

Installation

Npm

npm install riot-tmpl --save

Bower

$ bower install riot-tmpl --save

Documentation

How it works?

Three ways:

  • Expressions: tmpl('{ value }', data).
    Returns the result of evaluated expression as a raw object.

  • Templates: tmpl('Hi { name } { surname }', data).
    Returns a string with evaluated expressions.

  • Filters: tmpl('{ show: !done, highlight: active }', data).
    Returns a space separated list of trueish keys (mainly used for setting html classes), e.g. "show highlight".

Template examples

tmpl('{ title || "Untitled" }', data)
tmpl('Results are { results ? "ready" : "loading" }', data)
tmpl('Today is { new Date() }', data)
tmpl('{ message.length > 140 && "Message is too long" }', data)
tmpl('This item got { Math.round(rating) } stars', data)
tmpl('<h1>{ title }</h1>{ body }', data)

Falsy expressions in templates

In templates (as opposed to single expressions) all falsy values except zero (undefined/null/false) will default to empty string:

tmpl('{ undefined } - { false } - { null } - { 0 }', {})
// will return: " - - - 0"

Precompiled expressions

tmpl has separated the evaluation process of the compilation, now you need to call tmpl.compile() for pre-compilate the expression before using tmpl(), like in this example:

var tmpl = riot.util.tmpl    // or require('tmpl').tmpl
var expr = '{ msg }'
var pcexpr = tmpl.compile(expr)
// now you can assign pcexpr to an attribute value or evaluate anywhere
console.log(tmpl(pcexpr, {msg: "Hi"}))    // outputs "Hi"

The riot compiler can be used for pre-compilate all expressions in your application. If you don't need runtime construction of expressions, you can use the minimum version of riot: riot-light.js, that exclude the expression compiler.

NOTE: Precompiling all expressions avoids errors with restrictions on environments blocking the Function constructor (i.e. eval)

Changes in 2.3

  • Brackets can not contain characters in the set [\x00-\x1F<>a-zA-Z0-9'",;\\]
  • No comments in expressions, the compiler is the only that strip comments
  • Attributes with expressions containing > must be quoted

Please read the CHANGES file in the doc folder.

Keywords

FAQs

Package last updated on 21 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc