Перед тем как приступить к подробному разбору полётов, сразу взглянем на пример использования, который скорей нагляднее отразит суть, чем что-либо ещё. Код создания сервера приводить не буду, просто опишу сам шаблон и парсинг под определённым контекстом.
HTML-шабон:
<html>
<head>
<title>#{PageTitle}</title>
</head>
<body>
<h1>#{PageTitle}</h1>
<ul>
<# for (var i=0; i<List.length; i++) { #>
<li>
<#
if (typeof List[i] !== 'object') {
show(List[i]);
} else {
show(List[i].name +' - '+ List[i].note);
}
#>
</li>
<# } #>
</ul>
</body>
</html>
Контекст:
var context = {
PageTitle: 'jJSt test',
List: ['First', {name:'Second', note:'2th'}, 'Third'],
};
var result = njst.parse(html, context, {debug:1});