Simple template engine
by Vladymyr Shevchuk
JavaScript
const string = '<div><%= title %></div><div><%= description %></div>';
const obj = {
title: 'hello world!',
description: 'some description'
};
function prepareTemplate (template, obj = {}) {
const regexp = /<%=(.*?)%>/g;
const replacer = (match, p1) => obj[p1.trim()] || p1.trim();
return template.replace(regexp, replacer);
}
const result1 = '<div>hello world!</div><div>some description</div>';
const result2 = '<div>title</div><div>description</div>';
console.assert(prepareTemplate(string, obj) === result1, 'Should be equal');
console.assert(prepareTemplate(string, {}) === result2, 'Should be equal');
console.assert(prepareTemplate(string, {foo: 'bar'}) === result2, 'Should be equal');
console.assert(prepareTemplate(string) === result2, 'Should be equal');