wiki:ru/TemplateEngine

Version 1 (modified by vadim.godunko, 8 years ago) ( diff )

--

Template Engine

Основное назначение - обработка XML/HTML документов для использования в серверных приложениях.

Передача данных из приложения

Для передачи данных из приложения используется механизм Holder-ов. Его необходимо расширить функциями метапрограммирования для обеспечения доступа к структурированной информации. К таковой относятся:

  • простые типы, доработок не требуется;
  • записи, необходима возможность получения значений отдельных полей, что требует наличия механизма описания их типов и способов получения данных (прямой доступ либо вызов функции);
  • коллекции, необходима возможность обхода всех элементов.

Как начальный шаг (и весьма полезный в последующем) можно релизовать перечисленные механизмы для JSON, а потом уже расширять Ada методами описания свойств типов и реализовывать мета-компилятор.

Синтаксис шаблонов

Для конструкций языка шаблонов используется пространство имён http://matreshka.forge.ada-ru.org/template, во всех примерах отображаемое на префикс mtl:

<html xmlns:mtl="http://matreshka.forge.ada-ru.org/template" ...>
...

Для подстановки значений объекта в шаблон используется синтаксис (в последующем можно будет использовать выражение, синтаксис при этом не изменится):

${name}

Синтаксис выражений

Note: See TracWiki for help on using the wiki.