Поиск публикаций
Муниципальные услуги

Получите услугу онлайн

Перейти

Работа с шаблонами

 Рендеринг шаблона

шаблон.рендерить(шаблон, данные)

Выполняет подстановку значений из объекта данные в строку шаблон. Плейсхолдеры в шаблоне имеют вид {{ ключ }} и заменяются на соответствующие значения из объекта данных.

ПараметрТипОписание
шаблонстрокаСтрока с плейсхолдерами {{ ключ }}
данныеобъектОбъект, содержащий пары «ключ → значение» для подстановки
Возвращает: строка — результат рендеринга с подставленными значениями.
Важно: Если ключ не найден в объекте данных, плейсхолдер не заменяется (остаётся как есть). Значения могут быть любого типа (числа, строки, логические) — они автоматически преобразуются в строки.
Пример из теста:
₽данные1 = {"имя": "Мир"};
₽шаблон = "Привет, {{ имя }}!";
₽результат1 = шаблон.рендерить(₽шаблон, ₽данные1);
вывод(₽результат1 + "\n");  // "Привет, Мир!"

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

Шаблон — это обычная строка, в которой плейсхолдеры выделяются двойными фигурными скобками {{ }}.

  • Простая подстановка: {{ ключ }} — заменяется на значение свойства ключ из объекта данных.
  • Пробелы: Пробелы внутри фигурных скобок игнорируются, поэтому {{ключ}}, {{ ключ }} и {{ ключ }} работают одинаково.
  • Экранирование: Специальных символов экранирования нет; шаблон рендерится как есть, без HTML-экранирования. Если нужна безопасная вставка в HTML, используйте модуль «строки.экранироватьHTML» отдельно.
  • Вложенные объекты: Поддерживается доступ через точку, например {{ user.name }}. Для этого в данных должен быть объект с ключом user, внутри которого есть свойство name.
  • Массивы: Прямая подстановка массива преобразует его в строку вида элемент1,элемент2,.... Для более сложной работы используйте циклы (в текущей версии не поддерживаются).
Пример с вложенным объектом:
₽данные = { "user": { "name": "Анна", "age": 25 } };
₽шаблон = "Пользователь: {{ user.name }}, возраст {{ user.age }}";
₽результат = шаблон.рендерить(₽шаблон, ₽данные);
// "Пользователь: Анна, возраст 25"

 Полный пример

Ниже приведён скрипт, демонстрирующий использование модуля «шаблон» с различными типами данных.

// Простой шаблон
₽данные1 = {"имя": "Мир"};
₽шаблон1 = "Привет, {{ имя }}!";
₽результат1 = шаблон.рендерить(₽шаблон1, ₽данные1);
вывод(₽результат1 + "\n");  // "Привет, Мир!"

// Вложенный объект
₽данные2 = {
    "user": { "name": "Алексей", "age": 30 },
    "city": "Москва"
};
₽шаблон2 = "Пользователь {{ user.name }}, {{ user.age }} лет, из {{ city }}";
₽результат2 = шаблон.рендерить(₽шаблон2, ₽данные2);
вывод(₽результат2 + "\n");
// "Пользователь Алексей, 30 лет, из Москва"

// Отсутствующий ключ — остаётся без изменений
₽данные3 = { "a": 1 };
₽шаблон3 = "Значение: {{ b }}";
₽результат3 = шаблон.рендерить(₽шаблон3, ₽данные3);
вывод(₽результат3 + "\n");  // "Значение: {{ b }}"

// Числовые значения автоматически преобразуются
₽данные4 = { "price": 99.99, "qty": 2 };
₽шаблон4 = "Итого: {{ price }} × {{ qty }} = {{ price * qty }}";
// Обратите внимание: арифметика внутри {{ }} НЕ поддерживается.
// Вычисляйте результат заранее.
₽сумма = ₽данные4.price * ₽данные4.qty;
₽данные4.total = ₽сумма;
₽шаблон4 = "Итого: {{ price }} × {{ qty }} = {{ total }}";
₽результат4 = шаблон.рендерить(₽шаблон4, ₽данные4);
вывод(₽результат4 + "\n");