Skip to main content

Vento

Vento is a template engine for Deno. It's inspired by other engines, such as Nunjucks, Liquid, Eta, and Mustache.

Usage​

There are 2 modes for rendering:

Pre-rendered (Default)​

The values of the expressions are evaluated and added to the template during compilation of the result page.

The values of all expressions should be supplied in advance using custom settings to the property template.data which accepts an object of key-value pairs.

Example: This provides the value of the expression name

Custom Settings
{
"template": {
"data": {
"name": "LiveCodes"
}
}
}

Full example below

Dynamic​

To use this mode, the property template.prerender in custom settings should be set to false.

Example:

Custom Settings
{
"template": {
"prerender": false
}
}

In this mode, in addition to values supplied in custom settings (see above), expressions can have values that are evaluated during the result page runtime.

This can be achieved in JavaScript (or any language that compiles to it) by assigning window.livecodes.templateData to an object with the data.

Please note that template rendering occurs on page load, so the assignment must occur before that.

Example:

Script Editor (JS)
window.livecodes.templateData = { name: 'LiveCodes' };

Full example below

Language Info​

Name​

vento

Extension​

.vto

Editor​

markup

Compiler​

Vento.

Version​

ventojs: v2.2.0

Code Formatting​

Using Prettier.

Custom Settings​

Custom settings added to the property vento are passed as a JSON object to the vento() function during compile. Please check the documentation for full reference.

Please note that custom settings should be valid JSON (i.e. functions are not allowed).

Example Usage​

Pre-rendered​

show code
import { createPlayground } from 'livecodes';

const options = {
"config": {
"markup": {
"language": "vento",
"content": "Hello, {{ name }}!"
},
"customSettings": {
"template": {
"data": {
"name": "LiveCodes"
}
}
}
},
"params": {
"compiled": "open"
}
};
createPlayground('#container', options);

Dynamic​

show code
import { createPlayground } from 'livecodes';

const options = {
"config": {
"markup": {
"language": "vento",
"content": "Hello, {{ name }}!"
},
"script": {
"language": "javascript",
"content": "window.livecodes.templateData = { name: \"LiveCodes\" };"
},
"customSettings": {
"template": {
"prerender": false
}
},
"activeEditor": "script"
}
};
createPlayground('#container', options);