Описание тега mustache

Mustache - это "лишенный логики" язык шаблонов, доступный на нескольких языках.

Mustache предоставляет "шаблоны без логики". Он имеет реализации на ruby, javascript, python, erlang, php, perl, objective-c, java, .net, android, C++, go, lua, ooc, actionscript, coldfusion, scala, clojure, fantom и node.js. Он поддерживает списки и лямбды, но не позволяет использовать встроенную программную логику (как, например, в шаблонах Django). Как следует из слогана "шаблоны без логики", это исключение логики сделано намеренно.

Разметка усов очень проста:

<nav>
    <h1>{{title}}</h1>
    <ul>{{#navList}}
        <li><a href="{{link}}">{{text}}</a></li>
    {{/navList}}</ul>
</nav>

Структура HTML и разметка {{усы}} прекрасно сочетаются друг с другом.

Между тем, в JavaScript, например, использование шаблона не могло быть проще:

var navhtm = ... //Here would be some code to pull in template HTML*
var navobj = { //Data structure to define a menu
                 title : "Main Menu",
                 navList : [
                     { link: "page1.html", text: "Page 1" },
                     { link: "page2.html", text: "Page 2" },
                     { link: "pageC.html", text: "Page C" }
                 ]
             ;
//Of course, that data structure could come from the server or elsewhere...

//Render the template and stick it into the id="Nav" element using jQuery.
$("#Nav").html(Mustache.to_html(navhtm,navobj));

Это приведет к id="Nav" тег, заполняемый этим HTML:

<nav>
    <h1>Main Menu</h1>
    <ul>
        <li><a href="page1.html">Page 1</li>
        <li><a href="page2.html">Page 2</li>
        <li><a href="pageC.html">Page C</li>
    </ul>
</nav>