HTML-шаблонизатор


Обработка предназначена для формирования html-страниц по шаблонам в стиле фреймворков Django или Flask.

Основные возможности

Подстановка переменных

Для этого переменная обрамляется двойными фигурными скобками {{ }} и предваряется служебной конструкцией &w., как показано ниже

{{ &w.ИмяПеременной }}

Если переменная является структурой или ссылочным объектом, то через точку можно получать ее поля.

{{ &w.Структура.КакоеТоПоле }}

Реализовано получение полей через 2 и более точек.

Условия Если…ИначеЕсли…Тогда

Условие записывается внутри тега {% %}

{% Если &w.ИмяПеременной = 1 Тогда %}
{% ИначеЕсли &w.ИмяПеременной = 2 Тогда %}
{% Иначе %}
{% КонецЕсли %}

Цикл Для Каждого…Из

Используется тег, аналогичный условиям {% %}

{% Для Каждого Итератор Из &w.Коллекция Цикл %}
{% КонецЦикла %}

Итератор — это переменна, которую можно использовать внутри цикла. Если это структура или коллекция, через точку можно получать ее поля.

Поддерживаются вложенные циклы.

Цикл Для счетчик = X По Y

Используется тег, аналогичный условиям {% %}

{% Для счетчик = 1 по 10 Цикл %}
<p>&w.Массив[счетчик]</p> 
{% КонецЦикла %}

Поддерживаются вложенные циклы.

Подготовка данных, для вывода в шаблон

Данные для шаблона должны быть переданы в виде структуры или JSON-текста. При втором способе JSON будет преобразован в структуру перед использованием.

Пример использования в своем коде

DataProcessor = Обработки.Templatizator.Создать();


DataProcessor.TemplateText = "<!DOCTYPE html>
|<html lang="ru">
|<head>
|</head>
|<body>
|<h3>{{ &w.Title }}</h3>
|<br>
|<ul>
|{% For Each Элемент In &w.Список Do %}
|<li>{{ Элемент }}</li>
|{% EndDo %}
|</ul>
|</body>
|</html>";


DataProcessor.JSON = "{
|"Title": "Шаблонизатор",
|"Список": [
|"Элемент 1 списка 1",
|"Элемент 2 списка 1",
|"Элемент 3 списка 1"
|]
|}";


ResultHTML = DataProc.CreateHTMLServer( "ReportDate" );

Результат работы шаблона

Шаблонизатор

  • Элемент 1 списка 1
  • Элемент 2 списка 1
  • Элемент 3 списка 1

 

Тестировалось на релизах платформы: 8.3.13.1809, 8.3.14.1630, 8.3.15.1194.

2 Comments

  1. Дмитрий74Чел

    Таблицы, как я понял, не выводит?

    Reply
  2. nicxxx

    Не выводит. Таблиц значений нет на клиенте, а шаблонизатор предполагается использовать как раз в клиентском контексте.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *