Усы (система шаблонов) - Mustache (template system)

Усы
изначальный выпуск2009; 11 лет назад (2009)
Репозиторий Отредактируйте это в Викиданных
ЛицензияМассачусетский технологический институт
Интернет сайтусы.github.io

Усы это система веб-шаблонов с реализации доступны для ActionScript, C ++, Clojure, CoffeeScript, Холодный синтез, Common Lisp, D, Дротик, Delphi, Erlang, Фантом, Идти, Haskell, Ио, Ява, JavaScript, Юля, Lua, .СЕТЬ, Цель-C, OCaml, Perl, PHP, Pharo, Python, р, Ракетка, Раку, Рубин, Ржавчина, Scala, Болтовня, Быстрый, Tcl, CFEngine и XQuery.

Усы описываются как "лишенная логики" система, поскольку в ней отсутствуют какие-либо явные поток управления заявления, как если и еще условные или же для петель; однако как циклическое, так и условное вычисление могут быть выполнены с использованием обработки тегов разделов списки и лямбды.

Он назван «Усы» из-за интенсивного использования подтяжки, {}, которые напоминают боковую усы.

Moustache используется в основном для мобильных и веб-приложений.[1][2]

История и принципы

Усы-1 был вдохновлен ctemplate и et,[3] и начинал как Распространение GitHub в конце 2009 года. Первая версия шаблонизатор был реализован с Рубин, Бег YAML шаблоны текстов. Основными (сохраненными) принципами были:

Входные данные могут быть учебный класс, поэтому входные данные можно охарактеризовать как MVC-просмотр. Усы шаблон ничего не делает, кроме ссылочных методов в (входных данных) Посмотреть.[3] Вся логика, решения и код содержатся в этом Посмотреть, и вся разметка (например, вывод XML ) содержится в шаблон. В MVP контекст: входные данные взяты из MVP-ведущий, а шаблон Mustache - это MVP-Посмотреть.

Примеры

Самый простой шаблон:

Привет {{имя}}

Шаблон с тегом раздела:

{{#Икс}}Какой-то текст{{/Икс}}

Здесь, когда Икс это Булево значение, то тег раздела действует как если условно, но когда Икс является множество тогда он действует как цикл foreach.

Шаблон, который не экранирован:

{{&тело}}

Здесь, если тело содержит HTML, этого не избежать.

Технические детали

Подсветка синтаксиса доступен в Атом, Coda, Emacs[4], TextMate, Vim и Код Visual Studio[5].

Поддержка шаблонов Mustache встроена во многие рамки веб-приложений (бывший. CakePHP )[нужна цитата ]. Поддержка в JavaScript включает в себя как сторона клиента программирование со многими Библиотеки JavaScript и Фреймворки Ajax Такие как jQuery, Додзё и Юй, а также серверный JavaScript с помощью Node.js и CommonJS.

Спецификация и реализации

Есть много Усы Двигатель доступны реализации, и все они соответствуют общему Технические характеристики (см. внешние ссылки) - что для конечных пользователей приводит к общему синтаксису.

По состоянию на март 2011 г. последняя версия SPEC_VERSION была 1.1.2.[6]

Все Двигатели с усамив архитектуре v1.X иметь оказывать метод, a Усы_компилятор класс и Парсер учебный класс.[нужна цитата ]

Вариации и производные

Усы вдохновили множество библиотек шаблонов JavaScript, которые исходили из первоначальной простоты для добавления определенных функций или использования.[нужна цитата ]

Рули

Handlebars.js самоописывается как:

Handlebars.js - это расширение языка шаблонов Mustache, созданное Крисом Ванстратом. Handlebars.js и Mustache - это языки шаблонов без логики, которые разделяют представление и код, как мы все знаем, что они должны быть.[7]

Handlebars отличается от своего предшественника тем, что внутри «Block Expressions» (аналогично разделам в Mustache) «Helpers» разрешают настраиваемые функции посредством явного написанного пользователем кода для этого блока.

Рекомендации

  1. ^ "Smashing Mobile Web Development", Г. Авола и Дж. Рааш, 2012 г. ISBN  9781118348123.
  2. ^ «Функциональное программирование, применяемое к шаблонам веб-разработки», Дж. Кэди, 2011. Отчет MS Project.
  3. ^ а б https://github.com/defunkt/mustache/blob/master/README.md
  4. ^ http://web-mode.org
  5. ^ "Усы - Visual Studio Marketplace". visualstudio.com. Microsoft. 18 августа 2019.
  6. ^ "Изменения". Усы. GitHub. 20 марта 2011 г.
  7. ^ wykatz, NPM. "html + руль NPM". html + handlebars Детали пакета NPM. Диспетчер пакетов узлов. Получено 20 декабря 2016.

внешняя ссылка