iwgt 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,497 @@
1
+ {
2
+ "meta": {
3
+ "source": "filters.html",
4
+ "description": "Liquid фильтры InSales",
5
+ "totalCategories": 7,
6
+ "totalFilters": 53,
7
+ "generatedAt": "2025-10-07T06:52:19.502Z"
8
+ },
9
+ "categories": [
10
+ {
11
+ "id": "collection--filtry-dlya-massivov",
12
+ "name": "Фильтры для массивов",
13
+ "description": "",
14
+ "filters": [
15
+ {
16
+ "id": "size",
17
+ "name": "size",
18
+ "description": "Возвращает длинну массива",
19
+ "parameters": [],
20
+ "example": "{% assign string = 'wooden, deepsnow, season2006' %}{% assign array = string | split: ', ' | reverse %}{{ array | size }}#=> 3"
21
+ },
22
+ {
23
+ "id": "first",
24
+ "name": "first",
25
+ "description": "Фильтр возвращает первый элемент из массива",
26
+ "parameters": [
27
+ "%"
28
+ ],
29
+ "example": "{% assign string = 'wooden, deepsnow, season2006' %}{% assign array = string | split: ', '%}{{ array | first }}#=> wooden"
30
+ },
31
+ {
32
+ "id": "last",
33
+ "name": "last",
34
+ "description": "Фильтр возвращает последний элемент из массива",
35
+ "parameters": [
36
+ "%"
37
+ ],
38
+ "example": "{% assign string = 'wooden, deepsnow, season2006' %}{% assign array = string | split: ', '%}{{ array | last }}#=> season2006"
39
+ },
40
+ {
41
+ "id": "split",
42
+ "name": "split",
43
+ "description": "Разбивает строку на массив подстрок по указанному разделителю",
44
+ "parameters": [
45
+ "%"
46
+ ],
47
+ "example": "{% assign string = 'wooden, deepsnow, season2006' %}{% assign array = string | split: ', '%}{{array[0]}} #=> wooden"
48
+ },
49
+ {
50
+ "id": "join",
51
+ "name": "join",
52
+ "description": "Фильтр объединяет массив в строку, используя как разделитель элементов указанную последовательность символов.",
53
+ "parameters": [
54
+ "%"
55
+ ],
56
+ "example": "{% assign my_string = 'wooden, deepsnow, season2006' %}{% assign my_array = my_string | split: ', '%}{{ my_array | join: ', ' }}#=> wooden, deepsnow, season2006"
57
+ },
58
+ {
59
+ "id": "reverse",
60
+ "name": "reverse",
61
+ "description": "Меняет порядок элементов в массиве.",
62
+ "parameters": [],
63
+ "example": "{% assign string = 'wooden, deepsnow, season2006' %}{% assign array = string | split: ', ' | reverse %}{{ array | first }}#=> season2006{{ array | last }}#=> wooden"
64
+ },
65
+ {
66
+ "id": "sort",
67
+ "name": "sort",
68
+ "description": "Фильтр используется для сортировки массива. Второй параметр - необязательный.",
69
+ "parameters": [
70
+ "title %"
71
+ ],
72
+ "example": "{% assign products = collection.products | sort: 'title' %}{% for product in products %}  {{ product.title }}{% endfor %}\n#=> A B a b"
73
+ },
74
+ {
75
+ "id": "map",
76
+ "name": "map",
77
+ "description": "Принимает атрибут элемента массива в качестве параметра и создает массив из значения каждого элемента массива.",
78
+ "parameters": [
79
+ "title %"
80
+ ],
81
+ "example": "{% assign collection_titles = collections | map: 'title' %}\n{% for collection_title in collection_titles %}  {{ collection_title }},{% endfor %}\n#=> каталог1,каталог2,каталог3,"
82
+ },
83
+ {
84
+ "id": "where",
85
+ "name": "where",
86
+ "description": "Отфильтровать массив по полям и их значениям",
87
+ "parameters": [
88
+ "available",
89
+ "false"
90
+ ],
91
+ "example": "{{ collections.all.products | where: \"available\", false | size }}"
92
+ },
93
+ {
94
+ "id": "concat",
95
+ "name": "concat",
96
+ "description": "Объединение двух массивов в один",
97
+ "parameters": [
98
+ " %"
99
+ ],
100
+ "example": "{% assign fruits = \"apples, oranges, peaches, tomatoes\" | split: \", \" %}{% assign vegetables = \"broccoli, carrots, lettuce, tomatoes\" | split: \", \" %}\n{% assign plants = fruits | concat: vegetables %}\n=> [\"apples\",\"oranges\",\"peaches\",\"tomatoes\",\"tomatoes\",\"broccoli\",\"carrots\",\"lettuce\",\"tomatoes\"]"
101
+ },
102
+ {
103
+ "id": "uniq",
104
+ "name": "uniq",
105
+ "description": "Убирает дубли элементов массива",
106
+ "parameters": [],
107
+ "example": "{% assign fruits = \"apples, oranges, peaches, tomatoes, tomatoes\" | split: \", \" | uniq | json  %} \n=> [apples, oranges, peaches, tomatoes]"
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "id": "collection--matematicheskie-filtry",
113
+ "name": "Математические фильтры",
114
+ "description": "",
115
+ "filters": [
116
+ {
117
+ "id": "plus",
118
+ "name": "plus",
119
+ "description": "Фильтр возвращает результат сложения input и operand. Если это строки, то они приводятся к формату \"целое\" перед сложением.",
120
+ "parameters": [
121
+ "2"
122
+ ],
123
+ "example": "{% assign number = 2 %}{{ number | plus: 2 }}#=> 4"
124
+ },
125
+ {
126
+ "id": "minus",
127
+ "name": "minus",
128
+ "description": "Фильтр возвращает результат вычитания operand из input. Если это строки, то они приводятся к формату \"целое\" перед вычитанием.",
129
+ "parameters": [
130
+ "2"
131
+ ],
132
+ "example": "{% assign number = 2 %}{{ number | minus: 2 }}#=> 0"
133
+ },
134
+ {
135
+ "id": "times",
136
+ "name": "times",
137
+ "description": "Фильтр возвращает результат умножеия",
138
+ "parameters": [
139
+ "2"
140
+ ],
141
+ "example": "{{ 10 | times: 2 }}#=> 20"
142
+ },
143
+ {
144
+ "id": "divided_by",
145
+ "name": "divided_by",
146
+ "description": "Фильтр возвращает результат деления",
147
+ "parameters": [
148
+ "2"
149
+ ],
150
+ "example": "{{ 10 | divided_by: 2 }} #=> 5"
151
+ },
152
+ {
153
+ "id": "round",
154
+ "name": "round",
155
+ "description": "round(input, operand) Фильтр возвращает результат округления operand до input знаков после разделителя.",
156
+ "parameters": [
157
+ "0"
158
+ ],
159
+ "example": "{{ 4.6 | round: 0 }}{{ 4.3 | round: 0 }}{{ 4.5612 | round: 2 }}#=> 5#=> 4#=> 4.56"
160
+ },
161
+ {
162
+ "id": "modulo",
163
+ "name": "modulo",
164
+ "description": "Модуль числа. Возвращает остаток после деления",
165
+ "parameters": [
166
+ "5"
167
+ ],
168
+ "example": "{{ 12 | modulo: 5 }} #=> 2"
169
+ },
170
+ {
171
+ "id": "to_integer",
172
+ "name": "to_integer",
173
+ "description": "Привести строку к числу",
174
+ "parameters": [],
175
+ "example": ""
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "id": "collection--filtry-dlya-ssylok",
181
+ "name": "Фильтры для ссылок",
182
+ "description": "",
183
+ "filters": [
184
+ {
185
+ "id": "asset_url",
186
+ "name": "asset_url",
187
+ "description": "Возвращает ссылку на файл из темы. Если файла в теме нет, ссылка всё равно сформируется и переход по ссылке вернет 404 статус.",
188
+ "parameters": [],
189
+ "example": "{{ 'shop.css' | asset_url }}=> //assets3.insales.ru/assets/1/7120/23504/v_1479117076/build/shop.css"
190
+ },
191
+ {
192
+ "id": "asset_url_if_exists",
193
+ "name": "asset_url_if_exists",
194
+ "description": "Возвращает ссылку на файл из темы. Если файла в теме нет, возвращается пустая строка.",
195
+ "parameters": [],
196
+ "example": "{% assign path = \"image.png\" | asset_url_if_exists %}{% if path %}  {% else %}  Картинка отсутствует{% endif %}"
197
+ },
198
+ {
199
+ "id": "file_url",
200
+ "name": "file_url",
201
+ "description": "Фильтр формирует полный путь до файла из раздела Сайт->Файлы",
202
+ "parameters": [],
203
+ "example": "{{ 'image.png' | file_url }}"
204
+ },
205
+ {
206
+ "id": "add_param",
207
+ "name": "add_param",
208
+ "description": "Добавить гет параметр к ссылке",
209
+ "parameters": [],
210
+ "example": ""
211
+ },
212
+ {
213
+ "id": "locale_url",
214
+ "name": "locale_url",
215
+ "description": "Фильтр преобразует URL с учетом текущего языка",
216
+ "parameters": [],
217
+ "example": ""
218
+ }
219
+ ]
220
+ },
221
+ {
222
+ "id": "collection--strokovye-filtry",
223
+ "name": "Строковые фильтры",
224
+ "description": "",
225
+ "filters": [
226
+ {
227
+ "id": "money",
228
+ "name": "money",
229
+ "description": "Добавляет символ валюты к числу. В соответствии с настройками в бэк-офисе. Посмотреть или изменить настройки можно тут: Настройки -> Настройки магазина -> Валюты Фильтр обрабатывает только цифры.",
230
+ "parameters": [],
231
+ "example": "{{ product.price | money }}\n#=> 1 000 руб.\n{{ 1000 | money }}\n#=> 1 000 руб."
232
+ },
233
+ {
234
+ "id": "append",
235
+ "name": "append",
236
+ "description": "Добавить символы к концу строки",
237
+ "parameters": [
238
+ ".jpg"
239
+ ],
240
+ "example": "{{ 'sales' | append: '.jpg' }}#=> sales.jpg"
241
+ },
242
+ {
243
+ "id": "prepend",
244
+ "name": "prepend",
245
+ "description": "Добавить символы к началу строки",
246
+ "parameters": [
247
+ "Made a great "
248
+ ],
249
+ "example": "{{ 'sale' | prepend: 'Made a great ' }}\n#=> Made a great sale"
250
+ },
251
+ {
252
+ "id": "capitalize",
253
+ "name": "capitalize",
254
+ "description": "Фильтр используется для преобразования первой буквы строки в заглавную",
255
+ "parameters": [],
256
+ "example": "{{ 'capitalize me' | capitalize }}#=> Capitalize me"
257
+ },
258
+ {
259
+ "id": "replace",
260
+ "name": "replace",
261
+ "description": "Заменяет все вхождения строки с подстроки.",
262
+ "parameters": [
263
+ "Awesome",
264
+ "Mega"
265
+ ],
266
+ "example": "{{ product.title | replace: 'Awesome', 'Mega' }}\n#=> Mega Shoes"
267
+ },
268
+ {
269
+ "id": "upcase",
270
+ "name": "upcase",
271
+ "description": "Фильтр преобразовывает строку к верхнему регистру.",
272
+ "parameters": [],
273
+ "example": "{{ 'i want this to be uppercase' | upcase }}#=> I WANT THIS TO BE UPPERCASE"
274
+ },
275
+ {
276
+ "id": "downcase",
277
+ "name": "downcase",
278
+ "description": "Фильтр преобразовывает строку к нижнему регистру.",
279
+ "parameters": [],
280
+ "example": "{{ 'UPPERCASE' | downcase }}#=> uppercase"
281
+ },
282
+ {
283
+ "id": "escape",
284
+ "name": "escape",
285
+ "description": "Фильтр используется для преобразовывания специальных html символов",
286
+ "parameters": [],
287
+ "example": "{{ \"test \" | escape }}#=> <p>test</p> <div class='block'></div>"
288
+ },
289
+ {
290
+ "id": "newline_to_br",
291
+ "name": "newline_to_br",
292
+ "description": "Фильтр добавляет тег конца строки перед каждым служебным символом \"Новая строка\" (символ, обозначаемый NL, \\n, имеющий код 0ah).",
293
+ "parameters": [],
294
+ "example": "{% capture var %}OneTwoThree{% endcapture %}{{ var | newline_to_br }}\n#=>\nOne \nTwo\nThree"
295
+ },
296
+ {
297
+ "id": "strip_html",
298
+ "name": "strip_html",
299
+ "description": "Этот фильтр изымает из указанного текста все HTML-теги. Очень эффективен в сочетании с truncate.",
300
+ "parameters": [
301
+ "20"
302
+ ],
303
+ "example": "{{ 'Текст в теге новая строка' | strip_html | truncate: 20 }}\n>> Текст в теге нов..."
304
+ },
305
+ {
306
+ "id": "md5",
307
+ "name": "md5",
308
+ "description": "Преобразует строку в MD5 хеш.",
309
+ "parameters": [],
310
+ "example": "{{ 'test md5' | md5 }}\n#=> 0e4e3b2681e8931c067a23c583c878d5"
311
+ },
312
+ {
313
+ "id": "remove",
314
+ "name": "remove",
315
+ "description": "Удаляет все вхождения подстроки из строки.",
316
+ "parameters": [
317
+ "world"
318
+ ],
319
+ "example": "{{ \"Hello, world. Goodbye, world.\" | remove: \"world\" }}#=> Hello, . Goodbye, ."
320
+ },
321
+ {
322
+ "id": "remove_first",
323
+ "name": "remove_first",
324
+ "description": "Удаляет только первое вхождение подстроки из строки.",
325
+ "parameters": [
326
+ "world"
327
+ ],
328
+ "example": "{{ \"Hello, world. Goodbye, world.\" | remove_first: \"world\" }}#=> Hello, . Goodbye, world."
329
+ },
330
+ {
331
+ "id": "lstrip",
332
+ "name": "lstrip",
333
+ "description": "Удалить табы, пробелы, переносы в начале строки",
334
+ "parameters": [],
335
+ "example": "{{ \" So much room for activities! \" | lstrip }} >> So much room for activities!"
336
+ },
337
+ {
338
+ "id": "truncate",
339
+ "name": "truncate",
340
+ "description": "Фильтр укорачивает строки до указанного количества символов удалением конца строки.",
341
+ "parameters": [
342
+ "13"
343
+ ],
344
+ "example": "{{ \"The cat came back the very next day\" | truncate: 13 }}The cat ca...\n{{ \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\" | truncate: 18, \", and so on\" }}ABCDEFG, and so on"
345
+ },
346
+ {
347
+ "id": "truncatewords",
348
+ "name": "truncatewords",
349
+ "description": "Фильтр укорачивает строку до указанного количества символов удалением конца строки.",
350
+ "parameters": [
351
+ "4"
352
+ ],
353
+ "example": "{{ \"The cat came back the very next day\" | truncatewords: 4 }}The cat came back...{{ \"The cat came back the very next day\" | truncatewords: 4, \"--\" }}The cat came back--"
354
+ },
355
+ {
356
+ "id": "strip_newlines",
357
+ "name": "strip_newlines",
358
+ "description": "Фильтр изымает из указанной последовательности символов служебный символ \"Новая строка\" (символ, обозначаемый NL, \\n, имеющий код 0ah).",
359
+ "parameters": [],
360
+ "example": ""
361
+ },
362
+ {
363
+ "id": "url_encode",
364
+ "name": "url_encode",
365
+ "description": "",
366
+ "parameters": [],
367
+ "example": "{{ \"john@liquidhub.ru\" | url_encode }}\n=> john%40liquidhub.ru"
368
+ },
369
+ {
370
+ "id": "url_decode",
371
+ "name": "url_decode",
372
+ "description": "",
373
+ "parameters": [],
374
+ "example": "{{ 'john%40liquidhub.ru' | url_decode }}\n=> john@liquidhub.ru"
375
+ },
376
+ {
377
+ "id": "file_type_by_url",
378
+ "name": "file_type_by_url",
379
+ "description": "Получить тип и расширение файла. image/video/audio/document/archive",
380
+ "parameters": [],
381
+ "example": "{% assign file_type = 'https://example.com/image.jpg?v=123&size=large' | file_type_by_url %}\n{{ file_type.type }} => image\n{{ file_type.ext }} => jpg"
382
+ }
383
+ ]
384
+ },
385
+ {
386
+ "id": "collection--dopolnitelnye-filtry",
387
+ "name": "Дополнительные фильтры",
388
+ "description": "",
389
+ "filters": [
390
+ {
391
+ "id": "default",
392
+ "name": "default",
393
+ "description": "Задать значение поумолчанию",
394
+ "parameters": [
395
+ "2.99"
396
+ ],
397
+ "example": "{{ product_price | default: 2.99 }} >> 2.99{% assign product_price = \"\" %} {{ product_price | default: 2.99 }} >> 2.99"
398
+ },
399
+ {
400
+ "id": "date",
401
+ "name": "date",
402
+ "description": "Фильтр преобразует формат даты в указанный (все даты - григорианского календаря)",
403
+ "parameters": [
404
+ "%Y"
405
+ ],
406
+ "example": "{{ 'now' | date: \"%Y\" }}"
407
+ },
408
+ {
409
+ "id": "json",
410
+ "name": "json",
411
+ "description": "Преобразует строку или Liquid переменную в JSON формат.",
412
+ "parameters": [],
413
+ "example": "var myObject = {    text: {{ 'Строка в html теге' | json }},    product: {{ product | json }}  }  console.log(myObject);"
414
+ },
415
+ {
416
+ "id": "custom_json",
417
+ "name": "custom_json",
418
+ "description": "Получение полей liquid объектов в JSON формате",
419
+ "parameters": [
420
+ "title",
421
+ "id",
422
+ "author"
423
+ ],
424
+ "example": "var customArticle = {{ article | custom_json: 'title', 'id', 'author' }};"
425
+ },
426
+ {
427
+ "id": "dark",
428
+ "name": "dark?",
429
+ "description": "Проверяет, темный цвет или нет. Принимает только hex.",
430
+ "parameters": [],
431
+ "example": ""
432
+ },
433
+ {
434
+ "id": "change_lightness",
435
+ "name": "change_lightness",
436
+ "description": "Изменить яркость цвета",
437
+ "parameters": [],
438
+ "example": ""
439
+ }
440
+ ]
441
+ },
442
+ {
443
+ "id": "collection--filtry-dlya-izobrazheniy",
444
+ "name": "Фильтры для изображений",
445
+ "description": "",
446
+ "filters": [
447
+ {
448
+ "id": "image_url",
449
+ "name": "image_url",
450
+ "description": "Фильтр для указания размера изображения.",
451
+ "parameters": [],
452
+ "example": ""
453
+ },
454
+ {
455
+ "id": "webp_picture_tag",
456
+ "name": "webp_picture_tag",
457
+ "description": "Фильтр создает из объекта изображения тег picture, в который добавляет изображение в формате .webp, а так же тег img с исходным форматом.",
458
+ "parameters": [
459
+ "600",
460
+ "class",
461
+ "index",
462
+ "alt",
463
+ "title"
464
+ ],
465
+ "example": "{% assign image_title = product.title | escape %}{{ product.first_image | webp_picture_tag: 600, class: 'product-image', data-index: 1, alt: image_title, title: image_title }}\nНа выходе получаем =>\n---\n{{ collection.image | webp_picture_tag: 600 }}\nНа выходе получаем =>"
466
+ }
467
+ ]
468
+ },
469
+ {
470
+ "id": "collection--html-2",
471
+ "name": "HTML",
472
+ "description": "",
473
+ "filters": [
474
+ {
475
+ "id": "select_option",
476
+ "name": "select_option",
477
+ "description": "Фильтр select_option создает HTML-элемент <option> для использования внутри тега <select>. Он автоматически устанавливает атрибут selected, если переданное значение совпадает с выбранным значением. ▎Параметры - value: Значение опции (будет использовано в атрибуте value).- selected: Текущее выбранное значение.- name: Отображаемое имя опции (текст внутри тега <option>). ▎Возвращаемое значение Возвращает строку, представляющую HTML-элемент <option>.",
478
+ "parameters": [
479
+ "current_value",
480
+ "Опция 1"
481
+ ],
482
+ "example": "1. Базовое использование:\n{% assign current_value = \"2\" %}{{ \"1\" | select_option: current_value, \"Опция 1\" }}{{ \"2\" | select_option: current_value, \"Опция 2\" }}{{ \"3\" | select_option: current_value, \"Опция 3\" }}\nРезультат:Опция 1Опция 2Опция 3\nПример для селекта с выбором количества товаров на странице\n{{ \"24\" | select_option: page_size, \"24 товара\" }}        {{ \"48\" | select_option: page_size, \"48 товара\" }}        {{ \"72\" | select_option: page_size, \"72 товара\" }}"
483
+ },
484
+ {
485
+ "id": "link_to",
486
+ "name": "link_to",
487
+ "description": "Фильтр link_to используется для создания HTML элемента ссылки (<a>) из заданного URL и текста ссылки. Кроме того, он допускает необязательный атрибут title для ссылки. Параметры link: Видимый текст ссылки (обязательно). url: URL, на который указывает ссылка (обязательно). title: Атрибут title ссылки (необязательно). Возвращаемое значениеВозвращает строку, представляющую собой HTML элемент <a>.",
488
+ "parameters": [
489
+ "cart_url",
490
+ "Ваша корзина"
491
+ ],
492
+ "example": "{{ \"Перейти в корзину\" | link_to: cart_url, \"Ваша корзина\" }}Перейти в корзину"
493
+ }
494
+ ]
495
+ }
496
+ ]
497
+ }