Mustache.erl
Mustache.erl — это порт проекта Mustache for Ruby.
Mustache — это система шаблонов, не привязанная к какому-либо фреймворку. Система «навязывает» строгое разделение логики и представления вплоть до того, что в шаблонах Mustache невозможно реализовать какую-либо логику. Это позволяет использовать эти шаблоны из разных языков программирования.
Работа с Mustache велючает в себя понимание терминов «шаблон», «представление» и «контекст». Шаблоны соержат HTML (или любой другой формат) и тэги Mustache, которые определяют, какие данные будут переданы в шаблон. Шаблон может быть строкой или фалом (обычно с расширением .mustache). Представления — это эрлнговсике модули, экспортирующие функции, которые Mustache будет вызывать, чтобы получить данные для тгов в шаблоне.
Например (пример с двумя файлами — представлением и шаблоном):
Файл представления — это простой модуль simple.erl
-module(simple). -compile(export_all). name() -> "Tom". value() -> 10000. taxed_value() -> value() - (value() * 0.4). in_ca() -> true.
В представлении мы определяем функции, которые будут вызваны из шаблона. Некоторые функции вызывают другие функции, некоторые возвращают разные значения.
Шаблонный файл simple.mustache может выглядеть так:
Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{ taxed_value }}, after taxes.
{{/in_ca}}
Обратите внимание, что шаблон вызывает/ссылается на функции в модуле-представлении. Возвращаемые этими функциями значения указывают шаблону, что необходимо вывести.чтобы получить готовый HTML, убедитесь, что simple.beam доступен, и выполните:
mustache:render(simple)
Если все нормально, то функция возвращает следующее:
Hello Tom You have just won $10000! Well, $6000.00, after taxes.
