Jump to content

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

(Перенаправлено с Handlebars (система шаблонов) )
Усы
Оригинальный автор(ы) Джастин Хайлман, Бруно Сутик, Крис Ванстрат , Рикардо Мендес, Бруно Мишель
Первоначальный выпуск 2009 год ; 15 лет назад ( 2009 )
Стабильная версия
4.2.0 / 28 марта 2021 г .; 3 года назад ( 28.03.2021 )
Репозиторий
Тип Система веб-шаблонов
Лицензия С
Веб-сайт усы .github .что

Mustache — это система веб-шаблонов . Ее описывают как систему без логики, поскольку в ней отсутствуют какие-либо явные инструкции потока управления , например if и else условные операторы или циклы for ; однако как цикл, так и условная оценка могут быть достигнуты с помощью списков обработки тегов разделов и анонимных функций (лямбда-выражений). Его назвали «Усы» из-за интенсивного использования брекетов . { }, которые напоминают косые усы . Mustache используется в основном для мобильных и веб-приложений. [1] [2]

Реализации доступны в ActionScript , C++ , Clojure , CoffeeScript , ColdFusion , Common Lisp , Crystal , D , Dart , Delphi , Elixir , Erlang , Fantom , Go , Haskell , Io , Java , JavaScript , Julia , Lua , .NET , Objective- C , OCaml , Perl , PHP , Pharo , Python , R , Racket , Raku , Ruby , Rust , Scala , Smalltalk , Swift , Tcl , CFEngine и XQuery .

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

[ редактировать ]

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

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

Данные JSON передаются в шаблоны Mustache, в результате чего получаются выходные данные. Вот пример данных:

{    "name": "World",    "greater than": ">"}

Переменные

[ редактировать ]

Простой шаблон Mustache, такой как приведенный ниже, в сочетании с приведенными выше данными выведет Hello World.

Hello {{name}}

Mustache HTML экранирует По умолчанию данные. Например, приведенное ниже изображение будет отображаться как 2 > 1.

2 {{greater than}} 1

Чтобы отключить экранирование, используйте &. Ниже будет отображаться как 2 > 1.

2 {{&greater than}} 1

Операторы if и циклы foreach

[ редактировать ]

Ниже приведен шаблон с тегом раздела. Когда x является логическим значением, тег раздела действует как if условное условие . Когда x является массивом , он действует как цикл foreach .

{{#x}}Some text{{/x}}

Специальная переменная {{.}} ссылается на текущий элемент при циклическом проходе по массиву или на элемент, проверенный в условном выражении.

Включая другие шаблоны

[ редактировать ]

Вы можете указать шаблону Mustache загрузить в него другой шаблон Mustache, используя команду > символ.

<form>    {{>textBox}}    {{>submitButton}}</form>

Комментарии

[ редактировать ]

Комментарии обозначаются восклицательным знаком.

{{!comment goes here}}

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

[ редактировать ]

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

Поддержка шаблонов Mustache встроена во многие платформы веб-приложений (например, CakePHP ). [ нужна ссылка ] . Поддержка JavaScript включает в себя как на стороне клиента программирование с использованием множества библиотек JavaScript и фреймворков Ajax , таких как jQuery , Dojo и YUI , так и JavaScript на стороне сервера с использованием Node.js и CommonJS .

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

[ редактировать ]

Существует множество реализаций Mustache Engine , и все они соответствуют общей формальной спецификации (см. внешние ссылки), что для конечных пользователей приводит к общему синтаксису.

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

Все Mustache Engines в архитектуре v1.X имеют метод рендеринга , класс Mustache_Compiler и класс Parser . [ нужна ссылка ]

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

[ редактировать ]

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

Руль.js [7] самоописывается как:

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

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

См. также

[ редактировать ]
  1. ^ Авола, Г.; Рааш, Дж. (2012). Прорывная мобильная веб-разработка . ISBN  9781118348123 .
  2. ^ Кэди, Дж. (2011). Функциональное программирование в применении к шаблонам веб-разработки: отчет MS Project (PDF) (отчет).
  3. ^ Jump up to: а б «Усы» . Гитхаб . 19 апреля 2022 г.
  4. ^ "Дом" . веб-режим.org .
  5. ^ «Усы — торговая площадка Visual Studio» . Visualstudio.com . Майкрософт. 18 августа 2019 г.
  6. ^ "Изменения" . Усы . Гитхаб. 20 марта 2011 г.
  7. ^ Кац, Иегуда (2011–2019). «Руль: минимальный шаблон на стероидах» . Handlebarsjs.com .
  8. ^ Викац, НПМ. «html+руль NPM» . html+handlebars сведения о пакете NPM . Менеджер пакетов узлов . Проверено 20 декабря 2016 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4f2e222a707ab45cfe121bd024a6ba61__1720555260
URL1:https://arc.ask3.ru/arc/aa/4f/61/4f2e222a707ab45cfe121bd024a6ba61.html
Заголовок, (Title) документа по адресу, URL1:
Mustache (template system) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)