Велосипед Или Шаблоны Javascript В Стиле Django

Одна из составляющих нашего проекта Shopium.ua — это административный интерфейс, построенный как мощное интернет-приложение, полностью работающее на клиенте.

Чтобы преобразовать данные, поступающие с сервера, в HTML, нам часто нужен механизм шаблонов Javascript. Существует множество различных шаблонизаторов для Javascript. Даже в библиотеке ExtJS, которую мы используем для нашего проекта, их два, но их синтаксис и возможности каждого далеки от идеала.

К этому быстро привыкаешь, и мы быстро привыкли к синтаксису шаблонов Jinja2, который используем для генерации HTML на стороне сервера.

И хотели такой же, но с перламутровыми кнопками для Javascript. И сформировали к нему следующие требования:

  1. Синтаксис в стиле Django/Jinja
  2. компиляция шаблона в JS-код (как в Closure Templates)
  3. Автоматическое экранирование HTML
  4. простота (разработка, использование, внедрение)
Покопавшись в Интернете и не найдя ничего подобного, мы воскликнули «Разработчики мы или нет!», и написали свое.

Шаблонизатор состоит из одного исполняемого файла.

Алгоритм работы очень прост:

  1. Используя пипарсинг Разбираем исходный код шаблона и строим синтаксическое дерево.

  2. Мы рекурсивно проходим по дереву и переводим его в Javascript.
Результатом является файл .

js с кодом шаблона.

Полученный файл затем можно включить в ваш проект. Исходный код проекта доступен по лицензии MIT по адресу мой репозиторий на BitBucket .

Еще есть короткий пример использования шаблонизатора .

На данный момент весь код Очень экспериментальная, и была написана буквально за один день.

В наших планах довести его до стабильного состояния и использовать повсеместно.

Теги: #django #JavaScript #template #templates #javascipt template #javascript templates #jinja #Jinja2 #extjs #Sencha #движок шаблонов #pyparsing #JavaScript

Вместе с данным постом часто просматривают: