logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Обзор
Описание конфигурации

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

Основы использования
Циклы

Инструменты форматирования

Обзор
Форматирование текста
Форматирование чисел
Форматирование валюты
Форматирование даты
Форматирование интервалов времени
Форматирование массивов

Расширенные функции

Условия
Расширенные возможности
Часто задаваемые вопросы
Сценарии использования
Previous PageФорматирование массивов
Next PageРасширенные возможности
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#Условные операторы

Условные операторы позволяют динамически управлять отображением или скрытием содержимого в документе на основе значений данных. Предусмотрены три основных способа записи условий:

  • Встроенные условия: Непосредственно выводят текст (или заменяют его другим текстом).
  • Условные блоки: Отображают или скрывают раздел документа, подходят для нескольких тегов, абзацев, таблиц и т. д.
  • Умные условия: Непосредственно удаляют или сохраняют целевые элементы (например, строки, абзацы, изображения и т. д.) с помощью одного тега, что обеспечивает более лаконичный синтаксис.

Все условия начинаются с форматтера логического сравнения (например, ifEQ, ifGT и т. д.), за которым следуют форматтеры действий (такие как show, elseShow, drop, keep и т. д.).

#Обзор

В условных операторах поддерживаются следующие логические операторы и форматтеры действий:

  • Логические операторы

    • ifEQ(value): Проверяет, равно ли значение данных указанному значению.
    • ifNE(value): Проверяет, не равно ли значение данных указанному значению.
    • ifGT(value): Проверяет, больше ли значение данных указанного значения.
    • ifGTE(value): Проверяет, больше или равно ли значение данных указанного значения.
    • ifLT(value): Проверяет, меньше ли значение данных указанного значения.
    • ifLTE(value): Проверяет, меньше или равно ли значение данных указанного значения.
    • ifIN(value): Проверяет, содержится ли значение данных в массиве или строке.
    • ifNIN(value): Проверяет, не содержится ли значение данных в массиве или строке.
    • ifEM(): Проверяет, пусты ли данные (например, null, undefined, пустая строка, пустой массив или пустой объект).
    • ifNEM(): Проверяет, не пусты ли данные.
    • ifTE(type): Проверяет, равен ли тип данных указанному типу (например, "string", "number", "boolean" и т. д.).
    • and(value): Логическое "И", используется для соединения нескольких условий.
    • or(value): Логическое "ИЛИ", используется для соединения нескольких условий.
  • Форматтеры действий

    • :show(text) / :elseShow(text): Используются во встроенных условиях для непосредственного вывода указанного текста.
    • :hideBegin / :hideEnd и :showBegin / :showEnd: Используются в условных блоках для скрытия или отображения разделов документа.
    • :drop(element) / :keep(element): Используются в умных условиях для удаления или сохранения указанных элементов документа.

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

#Встроенные условия

#1. :show(text) / :elseShow(text)

#Синтаксис
{данные:условие:show(текст)}
{данные:условие:show(текст):elseShow(альтернативный текст)}
#Пример

Предположим, данные:

{
  "val2": 2,
  "val5": 5
}

Шаблон выглядит следующим образом:

val2 = {d.val2:ifGT(3):show('high')}
val2 = {d.val2:ifGT(3):show('high'):elseShow('low')}
val5 = {d.val5:ifGT(3):show('high')}
#Результат
val2 = 2
val2 = low
val5 = high

#2. Конструкция Switch Case (Множественные условия)

#Синтаксис

Используйте последовательные форматтеры условий для создания структуры, похожей на switch-case:

{данные:ifEQ(значение1):show(результат1):ifEQ(значение2):show(результат2):elseShow(результат по умолчанию)}

Или достигните того же с помощью оператора or:

{данные:ifEQ(значение1):show(результат1):or(данные):ifEQ(значение2):show(результат2):elseShow(результат по умолчанию)}
#Пример

Данные:

{
  "val1": 1,
  "val2": 2,
  "val3": 3
}

Шаблон:

val1 = {d.val1:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
val2 = {d.val2:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
val3 = {d.val3:ifEQ(1):show(A):ifEQ(2):show(B):elseShow(C)}
#Результат
val1 = A
val2 = B
val3 = C

#3. Многопеременные условия

#Синтаксис

Используйте логические операторы and/or для проверки нескольких переменных:

{данные1:ifEQ(условие1):and(.данные2):ifEQ(условие2):show(результат):elseShow(альтернативный результат)}
{данные1:ifEQ(условие1):or(.данные2):ifEQ(условие2):show(результат):elseShow(альтернативный результат)}
#Пример

Данные:

{
  "val2": 2,
  "val5": 5
}

Шаблон:

and = {d.val2:ifEQ(1):and(.val5):ifEQ(5):show(OK):elseShow(KO)}
or = {d.val2:ifEQ(1):or(.val5):ifEQ(5):show(OK):elseShow(KO)}
#Результат
and = KO
or = OK

#Логические операторы и форматтеры

В следующих разделах описанные форматтеры используют синтаксис встроенных условий в следующем формате:

{данные:форматтер(параметр):show(текст):elseShow(альтернативный текст)}

#1. :and(value)

#Синтаксис
{данные:ifEQ(значение):and(новые данные или условие):ifGT(другое значение):show(текст):elseShow(альтернативный текст)}
#Пример
{d.car:ifEQ('delorean'):and(.speed):ifGT(80):show('TravelInTime'):elseShow('StayHere')}
#Результат

Если d.car равно 'delorean' И d.speed больше 80, то вывод TravelInTime; в противном случае — StayHere.

#2. :or(value)

#Синтаксис
{данные:ifEQ(значение):or(новые данные или условие):ifGT(другое значение):show(текст):elseShow(альтернативный текст)}
#Пример
{d.car:ifEQ('delorean'):or(.speed):ifGT(80):show('TravelInTime'):elseShow('StayHere')}
#Результат

Если d.car равно 'delorean' ИЛИ d.speed больше 80, то вывод TravelInTime; в противном случае — StayHere.

#3. :ifEM()

#Синтаксис
{данные:ifEM():show(текст):elseShow(альтернативный текст)}
#Пример
null:ifEM():show('Result true'):elseShow('Result false')
[]:ifEM():show('Result true'):elseShow('Result false')
#Результат

Для null или пустого массива вывод Result true; в противном случае — Result false.

#4. :ifNEM()

#Синтаксис
{данные:ifNEM():show(текст):elseShow(альтернативный текст)}
#Пример
0:ifNEM():show('Result true'):elseShow('Result false')
'homer':ifNEM():show('Result true'):elseShow('Result false')
#Результат

Для непустых данных (таких как число 0 или строка 'homer') вывод Result true; для пустых данных — Result false.

#5. :ifEQ(value)

#Синтаксис
{данные:ifEQ(значение):show(текст):elseShow(альтернативный текст)}
#Пример
100:ifEQ(100):show('Result true'):elseShow('Result false')
'homer':ifEQ('homer'):show('Result true'):elseShow('Result false')
#Результат

Если данные равны указанному значению, вывод Result true; в противном случае — Result false.

#6. :ifNE(value)

#Синтаксис
{данные:ifNE(значение):show(текст):elseShow(альтернативный текст)}
#Пример
100:ifNE(100):show('Result true'):elseShow('Result false')
100:ifNE(101):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result false, второй пример выводит Result true.

#7. :ifGT(value)

#Синтаксис
{данные:ifGT(значение):show(текст):elseShow(альтернативный текст)}
#Пример
1234:ifGT(1):show('Result true'):elseShow('Result false')
-23:ifGT(19):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result true, второй пример выводит Result false.

#8. :ifGTE(value)

#Синтаксис
{данные:ifGTE(значение):show(текст):elseShow(альтернативный текст)}
#Пример
50:ifGTE(-29):show('Result true'):elseShow('Result false')
1:ifGTE(768):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result true, второй пример выводит Result false.

#9. :ifLT(value)

#Синтаксис
{данные:ifLT(значение):show(текст):elseShow(альтернативный текст)}
#Пример
-23:ifLT(19):show('Result true'):elseShow('Result false')
1290:ifLT(768):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result true, второй пример выводит Result false.

#10. :ifLTE(value)

#Синтаксис
{данные:ifLTE(значение):show(текст):elseShow(альтернативный текст)}
#Пример
5:ifLTE(5):show('Result true'):elseShow('Result false')
1290:ifLTE(768):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result true, второй пример выводит Result false.

#11. :ifIN(value)

#Синтаксис
{данные:ifIN(значение):show(текст):elseShow(альтернативный текст)}
#Пример
'car is broken':ifIN('is'):show('Result true'):elseShow('Result false')
[1,2,'toto']:ifIN(2):show('Result true'):elseShow('Result false')
#Результат

Оба примера выводят Result true (поскольку строка содержит 'is', а массив содержит 2).

#12. :ifNIN(value)

#Синтаксис
{данные:ifNIN(значение):show(текст):elseShow(альтернативный текст)}
#Пример
'car is broken':ifNIN('is'):show('Result true'):elseShow('Result false')
[1,2,'toto']:ifNIN(2):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result false (поскольку строка содержит 'is'), а второй пример выводит Result false (поскольку массив содержит 2).

#13. :ifTE(type)

#Синтаксис
{данные:ifTE('тип'):show(текст):elseShow(альтернативный текст)}
#Пример
'homer':ifTE('string'):show('Result true'):elseShow('Result false')
10.5:ifTE('number'):show('Result true'):elseShow('Result false')
#Результат

Первый пример выводит Result true (так как 'homer' является строкой), а второй пример выводит Result true (так как 10.5 является числом).

#Условные блоки

Условные блоки используются для отображения или скрытия раздела документа; как правило, они охватывают несколько тегов или целый блок текста.

#1. :showBegin / :showEnd

#Синтаксис
{данные:ifEQ(условие):showBegin}
Содержимое блока документа
{данные:showEnd}
#Пример

Данные:

{
  "toBuy": true
}

Шаблон:

Banana{d.toBuy:ifEQ(true):showBegin}
Apple
Pineapple
{d.toBuy:showEnd}Grapes
#Результат

Когда условие выполняется, содержимое между тегами отображается:

Banana
Apple
Pineapple
Grapes

#2. :hideBegin / :hideEnd

#Синтаксис
{данные:ifEQ(условие):hideBegin}
Содержимое блока документа
{данные:hideEnd}
#Пример

Данные:

{
  "toBuy": true
}

Шаблон:

Banana{d.toBuy:ifEQ(true):hideBegin}
Apple
Pineapple
{d.toBuy:hideEnd}Grapes
#Результат

Когда условие выполняется, содержимое между тегами скрывается, в результате чего получаем:

Banana
Grapes