ds-tpl

Dead-simple, fast text templates.

Usage no npm install needed!

<script type="module">
  import dsTpl from 'https://cdn.skypack.dev/ds-tpl';
</script>

README

ds-tpl

Dead-simple, fast text templates.

Mustache-style templates that perform only interpolation, iteration, and conditionals with simple boolean expressions. No heavy logic, no filtering, no extra features.

Is it fast? Yes.

Usage

const compileTemplate = require('ds-tpl');

// Example 1: Simple interpolation
const tpl = compileTemplate('Hello, {{world}}');
const data = { world: 'Earth' };

console.log(tpl(data)); // Logs: "Hello, Earth"

// Example 2: Iteration and property access
const tpl = compileTemplate(
`The first planet's name is: {{planets.0.name}}. All of them are:{% for planets as planet %}
    - {{planet.name}}{% end %}`
);
const planets = [
    { name: 'Mercury' },
    { name: 'Venus' },
    { name: 'Earth' },
    { name: 'Mars' },
    { name: 'Jupiter' },
    { name: 'Saturn' },
    { name: 'Uranus' },
    { name: 'Neptune' }
];

console.log(tpl({ planets }));
/* Logs:
 * The first planet's name is: Mercury. All of them are:
 *  - Mercury
 *  - Venus
 *  - Earth
 *  - Mars
 *  - Jupiter
 *  - Saturn
 *  - Uranus
 *  - Neptune
 */

const tpl = compileTemplate('This is {% if name == "Bob" || name == "Robert" %}Bob{% else %}not Bob{% end %}')
console.log(tpl({ name: 'Robert' })); // Logs: "This is Bob"
console.log(tpl({ name: 'Roberta' })); // Logs: "This is not Bob"