Одна из составляющих нашего проекта Shopium.ua — это административный интерфейс, построенный как мощное интернет-приложение, полностью работающее на клиенте.
Чтобы преобразовать данные, поступающие с сервера, в HTML, нам часто нужен механизм шаблонов Javascript. Существует множество различных шаблонизаторов для Javascript. Даже в библиотеке ExtJS, которую мы используем для нашего проекта, их два, но их синтаксис и возможности каждого далеки от идеала.
К этому быстро привыкаешь, и мы быстро привыкли к синтаксису шаблонов Jinja2, который используем для генерации HTML на стороне сервера.
И хотели такой же, но с перламутровыми кнопками для Javascript. И сформировали к нему следующие требования:
- Синтаксис в стиле Django/Jinja
- компиляция шаблона в JS-код (как в Closure Templates)
- Автоматическое экранирование HTML
- простота (разработка, использование, внедрение)
Шаблонизатор состоит из одного исполняемого файла.
Алгоритм работы очень прост:
- Используя пипарсинг Разбираем исходный код шаблона и строим синтаксическое дерево.
- Мы рекурсивно проходим по дереву и переводим его в Javascript.
js с кодом шаблона.
Полученный файл затем можно включить в ваш проект. Исходный код проекта доступен по лицензии MIT по адресу мой репозиторий на BitBucket .
Еще есть короткий пример использования шаблонизатора .
На данный момент весь код Очень экспериментальная, и была написана буквально за один день.
В наших планах довести его до стабильного состояния и использовать повсеместно.
Теги: #django #JavaScript #template #templates #javascipt template #javascript templates #jinja #Jinja2 #extjs #Sencha #движок шаблонов #pyparsing #JavaScript
-
Silverlight 2.0 – С Чего Начать?
19 Oct, 24