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Інструменти форматування
Повідомлення про переклад ШІ

Ця документація була автоматично перекладена штучним інтелектом.

#Обробка циклів

Обробка циклів використовується для повторного відображення даних з масивів або об'єктів шляхом визначення початкових і кінцевих маркерів циклу. Нижче описано кілька поширених сценаріїв.

#Ітерація по масивах

#1. Опис синтаксису

  • Використовуйте тег {d.array[i].property} для визначення поточного елемента циклу та {d.array[i+1].property} для вказівки наступного елемента, щоб позначити область циклу.
  • Під час циклу перший рядок (частина [i]) автоматично використовується як шаблон для повторення; вам потрібно лише один раз написати приклад циклу в шаблоні.

Приклад формату синтаксису:

{d.назваМасиву[i].властивість}
{d.назваМасиву[i+1].властивість}

#2. Приклад: Простий цикл по масиву

#Дані
{
  "cars": [
    { "brand": "Toyota", "id": 1 },
    { "brand": "Hyundai", "id": 2 },
    { "brand": "BMW",    "id": 3 },
    { "brand": "Peugeot","id": 4 }
  ]
}
#Шаблон
Carsid
{d.cars[i].brand}{d.cars[i].id}
{d.cars[i+1].brand}
#Результат
Carsid
Toyota1
Hyundai2
BMW3
Peugeot4

#3. Приклад: Вкладений цикл по масиву

Підходить для випадків, коли масив містить вкладені масиви; вкладеність може бути нескінченною.

#Дані
[
  {
    "brand": "Toyota",
    "models": [
      { "size": "Prius 4", "power": 125 },
      { "size": "Prius 5", "power": 139 }
    ]
  },
  {
    "brand": "Kia",
    "models": [
      { "size": "EV4", "power": 450 },
      { "size": "EV6", "power": 500 }
    ]
  }
]
#Шаблон
{d[i].brand}

Models
{d[i].models[i].size} - {d[i].models[i].power}
{d[i].models[i+1].size}

{d[i+1].brand}
#Результат
Toyota

Models
Prius 4 - 125
Prius 5 - 139

Kia

#4. Приклад: Двоспрямований цикл (розширена функція, v4.8.0+)

Двоспрямовані цикли дозволяють одночасно ітерувати як по рядках, так і по стовпцях, що підходить для створення порівняльних таблиць та інших складних макетів (примітка: наразі деякі формати офіційно підтримуються лише в шаблонах DOCX, HTML та MD).

#Дані
{
  "titles": [
    { "name": "Kia" },
    { "name": "Toyota" },
    { "name": "Hopium" }
  ],
  "cars": [
    { "models": [ "EV3", "Prius 1", "Prototype" ] },
    { "models": [ "EV4", "Prius 2", "" ] },
    { "models": [ "EV6", "Prius 3", "" ] }
  ]
}
#Шаблон
{d.titles[i].name}{d.titles[i+1].name}
{d.cars[i].models[i]}{d.cars[i].models[i+1]}
{d.cars[i+1].models[i]}
#Результат
KiaToyotaHopium
EV3Prius 1Prototype
EV4Prius 2
EV6Prius 3

#5. Приклад: Доступ до значень ітератора циклу (v4.0.0+)

У циклі ви можете безпосередньо отримати доступ до індексу поточної ітерації, що допомагає задовольнити особливі вимоги до форматування.

#Приклад шаблону
{d[i].cars[i].other.wheels[i].tire.subObject:add(.i):add(..i):add(...i)}

Примітка: Кількість крапок вказує на рівень індексу (наприклад, .i представляє поточний рівень, тоді як ..i представляє попередній рівень). Наразі існує проблема зі зворотним порядком; будь ласка, зверніться до офіційної документації для отримання детальної інформації.

#Ітерація по об'єктах

#1. Опис синтаксису

  • Для властивостей в об'єкті використовуйте .att для отримання назви властивості та .val для отримання її значення.
  • Під час ітерації кожен елемент властивості обробляється по черзі.

Приклад формату синтаксису:

{d.назваОб'єкта[i].att}  // назва властивості
{d.назваОб'єкта[i].val}  // значення властивості

#2. Приклад: Ітерація по властивостях об'єкта

#Дані
{
  "myObject": {
    "paul": "10",
    "jack": "20",
    "bob":  "30"
  }
}
#Шаблон
People namePeople age
{d.myObject[i].att}{d.myObject[i].val}
{d.myObject[i+1].att}{d.myObject[i+1].val}
#Результат
People namePeople age
paul10
jack20
bob30

#Обробка сортування

Використовуючи функцію сортування, ви можете безпосередньо сортувати дані масиву в шаблоні.

#1. Опис синтаксису: Сортування за зростанням

  • Використовуйте атрибут як критерій сортування в тезі циклу. Формат синтаксису:
    {d.array[атрибутСортування, i].властивість}
    {d.array[атрибутСортування+1, i+1].властивість}
  • Якщо потрібне сортування за кількома критеріями, розділіть атрибути комами в дужках.

#2. Приклад: Сортування за числовим атрибутом

#Дані
{
  "cars": [
    { "brand": "Ferrari", "power": 3 },
    { "brand": "Peugeot", "power": 1 },
    { "brand": "BMW",     "power": 2 },
    { "brand": "Lexus",   "power": 1 }
  ]
}
#Шаблон
Cars
{d.cars[power, i].brand}
{d.cars[power+1, i+1].brand}
#Результат
Cars
Peugeot
Lexus
BMW
Ferrari

#3. Приклад: Сортування за кількома атрибутами

#Дані
{
  "cars": [
    { "brand": "Ferrari", "power": 3, "sub": { "size": 1 } },
    { "brand": "Aptera",  "power": 1, "sub": { "size": 20 } },
    { "brand": "Peugeot", "power": 1, "sub": { "size": 20 } },
    { "brand": "BMW",     "power": 2, "sub": { "size": 1 } },
    { "brand": "Kia",     "power": 1, "sub": { "size": 10 } }
  ]
}
#Шаблон
Cars
{d.cars[power, sub.size, i].brand}
{d.cars[power+1, sub.size+1, i+1].brand}
#Результат
Cars
Kia
Aptera
Peugeot
BMW
Ferrari

#Обробка фільтрації

Фільтрація використовується для відсіювання рядків у циклі на основі певних умов.

#1. Опис синтаксису: Числова фільтрація

  • Додайте умови в тег циклу (наприклад, age > 19). Формат синтаксису:
    {d.array[i, умова].властивість}

#2. Приклад: Числова фільтрація

#Дані
[
  { "name": "John",   "age": 20 },
  { "name": "Eva",    "age": 18 },
  { "name": "Bob",    "age": 25 },
  { "name": "Charly", "age": 30 }
]
#Шаблон
People
{d[i, age > 19, age < 30].name}
{d[i+1, age > 19, age < 30].name}
#Результат
People
John
Bob

#3. Опис синтаксису: Фільтрація за рядком

  • Вказуйте умови для рядків, використовуючи одинарні лапки. Наприклад:
    {d.array[i, type='rocket'].name}

#4. Приклад: Фільтрація за рядком

#Дані
[
  { "name": "Falcon 9",    "type": "rocket" },
  { "name": "Model S",     "type": "car" },
  { "name": "Model 3",     "type": "car" },
  { "name": "Falcon Heavy","type": "rocket" }
]
#Шаблон
People
{d[i, type='rocket'].name}
{d[i+1, type='rocket'].name}
#Результат
People
Falcon 9
Falcon Heavy

#5. Опис синтаксису: Фільтрація перших N елементів

  • Ви можете використовувати індекс циклу i для фільтрації перших N елементів. Наприклад:
    {d.array[i, i < N].властивість}

#6. Приклад: Фільтрація перших двох елементів

#Дані
[
  { "name": "Falcon 9" },
  { "name": "Model S" },
  { "name": "Model 3" },
  { "name": "Falcon Heavy" }
]
#Шаблон
People
{d[i, i < 2].name}
{d[i+1, i < 2].name}
#Результат
People
Falcon 9
Model S

#7. Опис синтаксису: Виключення останніх N елементів

  • Використовуйте негативну індексацію i для представлення елементів з кінця. Наприклад:
    • {d.array[i=-1].властивість} отримує останній елемент.
    • {d.array[i, i!=-1].властивість} виключає останній елемент.

#8. Приклад: Виключення останнього та двох останніх елементів

#Дані
[
  { "name": "Falcon 9" },
  { "name": "Model S" },
  { "name": "Model 3" },
  { "name": "Falcon Heavy" }
]
#Шаблон
Останній елемент: {d[i=-1].name}

Виключення останнього елемента:
{d[i, i!=-1].name}
{d[i+1, i!=-1].name}

Виключення двох останніх елементів:
{d[i, i<-2].name}
{d[i+1, i<-2].name}
#Результат
Останній елемент: Falcon Heavy

Виключення останнього елемента:
Falcon 9
Model S
Model 3

Виключення двох останніх елементів:
Falcon 9
Model S

#9. Опис синтаксису: Інтелектуальна фільтрація

  • За допомогою блоків інтелектуальних умов ви можете приховати весь рядок на основі складних умов. Наприклад:
    {d.array[i].властивість:ifIN('ключовеСлово'):drop(row)}

#10. Приклад: Інтелектуальна фільтрація

#Дані
[
  { "name": "Falcon 9" },
  { "name": "Model S" },
  { "name": "Model 3" },
  { "name": "Falcon Heavy" }
]
#Шаблон
People
{d[i].name}
{d[i].name:ifIN('Falcon'):drop(row)}
{d[i+1].name}
#Результат
People
Model S
Model 3

(Примітка: Рядки, що містять "Falcon" у шаблоні, видаляються умовою інтелектуальної фільтрації.)

#Обробка видалення дублікатів

#1. Опис синтаксису

  • За допомогою користувацького ітератора ви можете отримати унікальні (неповторювані) елементи на основі значення певної властивості. Синтаксис схожий на звичайний цикл, але автоматично ігнорує дублікати.

Приклад формату:

{d.array[властивість].властивість}
{d.array[властивість+1].властивість}

#2. Приклад: Вибір унікальних даних

#Дані
[
  { "type": "car",   "brand": "Hyundai" },
  { "type": "plane", "brand": "Airbus" },
  { "type": "plane", "brand": "Boeing" },
  { "type": "car",   "brand": "Toyota" }
]
#Шаблон
Vehicles
{d[type].brand}
{d[type+1].brand}
#Результат
Vehicles
Hyundai
Airbus