Блок "HTML-шаблон"
Блок доступен начиная с версии 0.10
Назначение блока
Блок позволяет формировать динамически изменяемый визуализатор HTML. Содержит тот же функционал, что и Блок "HTML-статика", но позволяет изменять свое содержимое с помощью шаблонизатора Jinja2.
Перед началом работы с блоком его необходимо выбрать в библиотеке и переместить в область графа.
Настройки блока
Работа с настройками блока осуществляется через локальное меню (пункт Настройки):
Общие настройки блоков описаны в отдельном разделе.
Раздел "HTML шаблон"
| Название параметра | Тип параметра | Обязательный | Описание | Пример |
|---|---|---|---|---|
| Шаблон | Строка (HTML) | Нет | html-код, который будет отображен в визуализаторе. Может включать в себя стили css и Jinja-шаблоны. | |
| Разрешать копировать текст | Флаг | Да | Устанавливает разрешение на копирование содержимого в визуализаторе при отображении пользователю. | |
| Строгая валидация HTML | Флаг | Нет | Включает строгую валидацию HTML: в случае ошибки валидации блок выдаст ошибку. По умолчанию будет выдано предупреждение. |
HTML с Jinja шаблоном
Входы блока
Общие настройки входов блока описаны в отдельном разделе.
| Название входа | Тип | Обязательный | Описание |
|---|---|---|---|
| Данные для шаблона | JSON | Нет | Данные, необходимые для подстановки в HTML-код с помощью шаблонизатора Jinja, см. Описание работы блока |
Выходы блока
Общие настройки выходов блока описаны в отдельном разделе.
| Название входа | Тип | Обязательный | Описание |
|---|---|---|---|
| HTML (Строка) | Строка | Нет | HTML-код в виде строки, отображаемый в визуализаторе |
Если исходный код содержит Jinja-шаблон, на выходе он будет передан с уже выполненной подстановкой данных.
События блока
В блоке нет событий.
Описание работы блока
Возможности блока "HTML-шаблон" идентичны блоку "HTML-статика", но за счет использования шаблонизатора Jinja, блок может динамически менять свое содержимое. Шаблонизатор получает данные, поступившие на вход "Данные для шаблона", и размещает их в коде html.
Jinja-шаблоны — распространенный способ генерации статических HTML-страниц (например, используется в Django). Для применения шаблона необходимо знать структуру данных, поступивших на вход. Данные всегда представлены в формате JSON, и к их полям можно обращаться напрямую через шаблон.
Важно!
Корневой элемент всегда должен называться input
Ниже представлен пример работы шаблонизатора:
- В графе генерируется временной ряд (Блок "Генерация временного ряда");
- После этого в шаблоне формируется список из всех значений ряда. На момент создания графа количество элементов неизвестно, поэтому используется шаблон.
HTML с Jinja шаблоном
Шаблон всегда должен обращаться к входу с именем input. Из него берется массив vl, содержащий значения ряда. Структуру входных
данных можно посмотреть в режиме отладки графа на входе "Данные для шаблона" блока.
После пересчета графа в визуализаторе отображается сформированный html-код. Из всех значений ряда, поступивших на вход, строится линейный список.
Механизм Jinja поддерживает основные управляющие конструкции if, for, while, что позволяет гибко управлять содержимым HTML-шаблона.
Валидация HTML
В блоке расположен HTML-валидатор и санитайзер, которые, в случае некорректного HTML на входе, выдадут соответствующие ошибки (код ошибки 141 для валидатора и код ошибки 152 для санитайзера).
В связи со сложной структурой HTML не все ошибки могут быть обнаружены. Например, встроенный валидатор не проверяет наличие закрывающих тегов. Для более полной и корректной проверки рекомендуется использовать сторонние сервисы, к примеру validator.w3.org.
Подробнее о санитайзере можно узнать здесь
Описание работы визуализатора
- Представляет собой контейнер для отображения пользовательского html-кода с использованием шаблонов Jinja;
- Доступен в режиме отладки графа;
- Поддерживает выделение содержимого мышью.
Настройки визуализатора
Визуализатор не имеет специфических настроек. Общий список доступен на странице Настройки визуализаторов
Полезные ссылки
- Документация Jinja - https://jinja.palletsprojects.com/en/3.0.x/
- Онлайн валидатор HTML - validator.w3.org
Дополнительно
Для корректного отображения данных с использованием шаблона необходимо знать внутреннюю структуру данных, поступающих на вход от других блоков.




