Создание шаблонов

Шаблон это JSON, YAML или PY файл, в котором указан набор фигур и параметры из рендеринга.

В PY файле необходимо создать функцию get_template(**kwargs) которая вернёт шаблоны

Этот файл имеет строгую структуру, поэтому требует правильного составления.

Шаблон это словарь, в котором должно быть 4 основных поля:

name

Имя шаблона (обязательное поле)

defaults

Значения по умолчанию, используемые в фигурах. Предполагается что эти данные сохраняются внутри шаблона.

variables

Различные переменные контекста, которые вы передаёте в рендер. Они используются в переменных фигур.

shapes

Список фигур в шаблоне

Примечание

Поле variables имеет бОльший приоритет чем defaults. Если имя параметра не найдено в поле variables то будет поиск в параметрах defaults.

{
    "defaults": {
        "font_size": 20
    },
    "variables": {
        "user": "User Name"
    },
    "shapes": [
        {
            "type": "shapename", "x": 0, "y": 0, "parm": "val"
        }
    ]
}

Примечание

Шаблоны поддерживают комментарии с помощью двойного слеша // или хеша #

Примечание

Фигуры рендерятся в порядке их указания в шаблоне. Чем позже указана фигура, тем позже она будет отрендерена и будет находиться поверх предыдущих.

Контекст

Что такое контекст? Это словарь, в котором указаны различные данные для рендера. Чаще всего это данные, которые следует отобразить в шаблоне. Но так же могут быть другие данные.

  • путь к картинке логотипа для рендера на шаблоне

  • переменные для вычисления различных условий рендера

  • оверрайды для любых дефолтных значений

И другие значения

Чем отличается поля variables и defaults? Поле variables заполняется вне шаблона и приходит в виде словаря как аргумент процесса рендера. Поле defaults сохраняется непосредственно в шаблоне. Запрашиваемое значение всегда сначала ищется в variables, и если не находится то берется из defaults. То есть variables имеет бОльший приоритет поиска.

Фигуры

Шаблонизатор поддерживает определённый набор фигур. Полный список смотрите в разделе Фигуры

Выражения

Шаблонизатор поддерживает выражения в параметрах. Подробней в разделе Expressions

Viewer

У шаблонизатора нет никакого GUI в котором можно легко расставить фигуры по картинке. Но есть удобный виджет интерактивного предпросмотра шаблона. Подробней в разделе Template Viewer

Как создать шаблон

Для начала создайте пустой JSON-файл с любым именем. Начальные данные могут быть такими:

{
  "templates": [
    {
      "name": "new",
      "defaults": {
        "font_size": "4u",
        "text_spacing": 10
      },
      "variables": {},
      "shapes": []
    }
  ]
}

Теперь можно заполнять фигурами список shapes и смотреть как изменяется шаблон с помощью вьювера.

В словарь variables удобно добавлять любе значения для теста. В реальном использовании этот словарь передаётся из аргументов рендера. Не забудьте очистить его после финализации шаблона.

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

Примечание

Когда утвердите шаблон, не забудьте очистить словарь variables и указать правильное имя шаблона в поле name.

Примечание

В одном файле может быть несколько шаблонов, которые могут друг друга наследовать.