

  
[{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the absolute value of a number","summary":"Returns the absolute value of a number","syntax":"variable | abs","name":"abs","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the absolute value","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ -3 | abs }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `hash_add_key`, kept for backwards compatibility.","deprecation_replacement":"hash_add_key","description":"Returns the hash with the given key set to the given value","summary":"Returns the hash with the given key set to the given value","syntax":"variable | add_hash_key","platformOS":true,"name":"add_hash_key","aliases":[],"arity":{"min":3,"max":3},"parameters":[{"description":"hash to add the key to","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to add; usually a string, but any value can be a key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"value to store under the key","name":"value","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"object","name":"","description":"hash with added key","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign accountants = \"Angela,Kevin,Oscar\" | split: \",\"\n  assign management = \"David,Jan,Michael\" | split: \",\"\n  assign company = {}\n  assign company = company | hash_add_key: \"name\", \"Dunder Mifflin\"\n  assign company = company | hash_add_key: \"accountants\", accountants\n  assign company = company | hash_add_key: \"management\", management\n%}\n{{ company }} =\u003e {\"name\" =\u003e \"Dunder Mifflin\", \"accountants\" =\u003e [\"Angela\", \"Kevin\", \"Oscar\"], \"management\" =\u003e [\"David\", \"Jan\", \"Michael\"]}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_add`, kept for backwards compatibility.","deprecation_replacement":"array_add","description":"Appends an element to the end of the array","summary":"Appends an element to the end of the array","syntax":"array | add_to_array","platformOS":true,"name":"add_to_array","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to which you add a new element","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"item you add to the array","name":"item","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"array to which you add the item given as the second parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign array = 'a,b,c' | split: ',' %}\n{{ array | array_add: 'd' }} =\u003e ['a', 'b', 'c', 'd']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `date_add`, kept for backwards compatibility.","deprecation_replacement":"date_add","description":"Adds a number of time units to a date","summary":"Adds a number of time units to a date","syntax":"string | add_to_date","platformOS":true,"name":"add_to_date","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"parsable time the units are added to; a number is read as whole seconds\nsince the epoch","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"how many units to add — a string holding a number is accepted and a fractional\nnumber is truncated; optional, defaults to 1","name":"number","required":false,"variadic":false,"default":"1","positional":true,"types":["number","string"]},{"description":"time unit - allowed options are: y, years, mo, months, w, weeks, d [default], days, h, hours, m, minutes, s, seconds","name":"unit","required":false,"variadic":false,"default":"'d'","positional":true,"types":["string"]}],"return_type":[{"type":"date","name":"","description":"modified Date","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-01' | date_add: 1 }} =\u003e 2010-01-02\n{{ '2010-01-01' | date_add: 1, 'mo' }} =\u003e 2010-02-01","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Adds a number of time units to a time","summary":"Adds a number of time units to a time","syntax":"string | add_to_time","platformOS":true,"name":"add_to_time","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"parsable time the units are added to; a number is read as whole seconds\nsince the epoch","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"how many units to add — a string holding a number is accepted and a fractional\nnumber is truncated; optional, defaults to 1","name":"number","required":false,"variadic":false,"default":"1","positional":true,"types":["number","string"]},{"description":"time unit - allowed options are: y, years, mo, months, w, weeks, d [default], days, h, hours, m, minutes, s, seconds","name":"unit","required":false,"variadic":false,"default":"'d'","positional":true,"types":["string"]}],"return_type":[{"type":"time","name":"","description":"modified time","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'now' | add_to_time: 1, 'w' }} # =\u003e returns current time plus one week","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'now' | add_to_time: 3, 'mo' }} # =\u003e returns current time plus three months","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Formats a value using a sprintf-style format string","summary":"Formats a value using a sprintf-style format string","syntax":"variable | advanced_format","platformOS":true,"name":"advanced_format","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"value you want to format; what it may be is decided by the format string —\n`%s` takes anything, `%.2f` a number or a time","name":"argument_to_format","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"should look like: %[flags][width][.precision]type. For more examples and information see: https://ruby-doc.org/core-2.5.1/Kernel.html#method-i-sprintf","name":"format","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"formatted string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 3.124 | advanced_format: '%.2f' }} =\u003e 3.12","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 3 | advanced_format: '%.2f' }} =\u003e 3.00\nIn the example above flags is not present, width is not present (refers to the total final\nlength of the string), precision \".2\" means 2 digits after the decimal point,\ntype \"f\" means floating point","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts amount in given currency to fractional. For example, convert USD to cents.","summary":"Converts amount in given currency to fractional. For example, convert USD to cents.","syntax":"number | amount_to_fractional","platformOS":true,"name":"amount_to_fractional","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"amount to be changed to fractional; a string holding a number and a money object are accepted too","name":"amount","required":true,"variadic":false,"default":"","positional":true,"types":["number","string"]},{"description":"currency to be used","name":"currency","required":false,"variadic":false,"default":"'USD'","positional":true,"types":["string"]}],"return_type":[{"type":"number","name":"","description":"Amount in fractional, for example cents for USD","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 10.50 | amount_to_fractional: 'USD' }} =\u003e 1050","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 10.50 | amount_to_fractional: 'JPY' }} =\u003e 11","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_any`, kept for backwards compatibility.","deprecation_replacement":"array_any","description":"Checks whether the array contains at least one element equal to the query","summary":"Checks whether the array contains at least one element equal to the query","syntax":"array | any","platformOS":true,"name":"any","aliases":[],"arity":{"min":0,"max":2},"parameters":[{"description":"array to search in","name":"array","required":false,"variadic":false,"default":"[]","positional":true,"types":["array"]},{"description":"value compared to each item in the given array","name":"query","required":false,"variadic":false,"default":"'true'","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"checks if given array contains at least one of the queried string/number","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign elements = 'foo,bar' | split: ',' %}\n{{ elements | array_any: 'foo' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Adds a given string to the end of a string","summary":"Adds a given string to the end of a string","syntax":"variable | append","name":"append","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"value to process; any value is stringified first","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"text to append","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with the string appended","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%-  assign path = product.url -%}\n\n{{ request.origin | append: path }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Appends an element to the end of the array","summary":"Appends an element to the end of the array","syntax":"array | array_add","platformOS":true,"name":"array_add","aliases":["add_to_array"],"arity":{"min":2,"max":2},"parameters":[{"description":"array to which you add a new element","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"item you add to the array","name":"item","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"array to which you add the item given as the second parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign array = 'a,b,c' | split: ',' %}\n{{ array | array_add: 'd' }} =\u003e ['a', 'b', 'c', 'd']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the array contains at least one element equal to the query","summary":"Checks whether the array contains at least one element equal to the query","syntax":"array | array_any","platformOS":true,"name":"array_any","aliases":["any"],"arity":{"min":0,"max":2},"parameters":[{"description":"array to search in","name":"array","required":false,"variadic":false,"default":"[]","positional":true,"types":["array"]},{"description":"value compared to each item in the given array","name":"query","required":false,"variadic":false,"default":"'true'","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"checks if given array contains at least one of the queried string/number","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign elements = 'foo,bar' | split: ',' %}\n{{ elements | array_any: 'foo' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes blank elements from the array","summary":"Removes blank elements from the array","syntax":"array | array_compact","platformOS":true,"name":"array_compact","aliases":["compact"],"arity":{"min":1,"max":2},"parameters":[{"description":"array with some blank values","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"optionally if you provide Hash as argument, you can remove elements which given key is blank","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["string"]}],"return_type":[{"type":"array","name":"","description":"array from which blank values are removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1,' | split: ',' | array_add: false | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1,' | split: ',' | array_add: null | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign empty_object = {} %}\n{{ '1,' | split: ',' | array_add: empty_object | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign empty_array = ',' | split: ',' %}\n{{ '1,' | split: ',' | array_add: empty_array | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign hash = [{ \"hello\": null }, { \"hello\": \"world\" }, { \"hello\": \"\" }] %}\n{{ hash | array_compact: \"hello\" }} =\u003e [{\"hello\":\"world\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes every occurrence of the given element from the array","summary":"Removes every occurrence of the given element from the array","syntax":"array | array_delete","platformOS":true,"name":"array_delete","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to process","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"value to remove","name":"element","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the initial array that has all occurences of \"element\" removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign test = '[\"test\", \"test2\", \"test\", \"test3\"]' | parse_json %}\n{% assign arr = test | array_delete: 'test' %}\n{{ arr }}  =\u003e ['test2', 'test3']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes the element at the given index from the array","summary":"Removes the element at the given index from the array","syntax":"array | array_delete_at","platformOS":true,"name":"array_delete_at","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to process","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array index to remove; must be a whole number within the array's bounds","name":"index","required":true,"variadic":false,"default":"","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the initial array that has the element at index removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign test = '[\"test\", \"test2\"]' | parse_json %}\n{% assign arr = test | array_delete_at: 1 %}\n{{ arr }}  =\u003e ['test']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the first element matching all the given field conditions","summary":"Returns the first element matching all the given field conditions","syntax":"array | array_detect","platformOS":true,"name":"array_detect","aliases":["detect"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"untyped","name":"","description":"first object from the collection that matches the specified conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"}]\n{{ objects | array_detect: foo: 2 }} =\u003e {\"foo\":2,\"bar\":\"b\"}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Finds the indices of every element matching all the given field conditions","summary":"Finds the indices of every element matching all the given field conditions","syntax":"array | array_find_index","platformOS":true,"name":"array_find_index","aliases":[],"arity":{"min":2,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"with indices from collection that matches provided conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"},{\"foo\":2,\"bar\":\"d\"}]\n{{ objects | array_find_index: foo: 2 }} =\u003e [1, 3]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Flattens an array of arrays into a single array","summary":"Flattens an array of arrays into a single array","syntax":"array | array_flatten","platformOS":true,"name":"array_flatten","aliases":["flatten"],"arity":{"min":1,"max":1},"parameters":[{"description":"array of arrays to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"with objects","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ array_of_arrays }} =\u003e [[1,2], [3,4], [5,6]]\n{{ array_of_arrays | array_flatten }} =\u003e [1,2,3,4,5,6]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Transforms array into hash, with keys equal to the values of object's method name and value being array containing objects","summary":"Transforms array into hash, with keys equal to the values of object's method name and value being array containing objects","syntax":"array | array_group_by","platformOS":true,"name":"array_group_by","aliases":["group_by"],"arity":{"min":2,"max":2},"parameters":[{"description":"array to be grouped","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"method name to be used to group Objects","name":"method_name","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"object","name":"","description":"the original array grouped by method\nspecified by the second parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign objects = [\n  { \"size\": \"xl\", \"color\": \"red\" },\n  { \"size\": \"xl\", \"color\": \"yellow\" },\n  { \"size\": \"s\", \"color\": \"red\" }\n] %}\n{{ objects | array_group_by: 'size' }} =\u003e {\"xl\":[{\"size\":\"xl\",\"color\":\"red\"},{\"size\":\"xl\",\"color\":\"yellow\"}],\"s\":[{\"size\":\"s\",\"color\":\"red\"}]}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Transforms array in array of arrays, each subarray containing exactly N elements","summary":"Transforms array in array of arrays, each subarray containing exactly N elements","syntax":"array | array_in_groups_of","platformOS":true,"name":"array_in_groups_of","aliases":["in_groups_of"],"arity":{"min":2,"max":2},"parameters":[{"description":"array to be split into groups","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"the size of each group the array is to be split into; must be a whole number","name":"number_of_elements","required":true,"variadic":false,"default":"","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the original array split into groups of the size\nspecified by the second parameter (an array of arrays)","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign elements = '1,2,3,4' | split: ',' %}\n{{ elements | array_in_groups_of: 3 }} =\u003e [[1, 2, 3], [4, null, null]]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"[array_any](#array_any) filter","deprecation_replacement":"array_any","description":"Checks if array includes element","summary":"Checks if array includes element","syntax":"array | array_include","platformOS":true,"name":"array_include","aliases":["is_included_in_array"],"arity":{"min":2,"max":2},"parameters":[{"description":"array of elements to look into","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"look for this element inside the array","name":"el","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"whether the array includes the element given","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign elements = 'a,b,c,d' | split: ',' %}\n{{ elements | array_include: 'c' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Finds index of an object in the array","summary":"Finds index of an object in the array","syntax":"array | array_index_of","platformOS":true,"name":"array_index_of","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"object to search for","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"position of the object in the array, or nil when it is not present","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [1,'abc',3]\n{{ objects | array_index_of: 'abc' }} =\u003e 1","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the elements present in both arrays","summary":"Returns the elements present in both arrays","syntax":"array | array_intersect","platformOS":true,"name":"array_intersect","aliases":["intersection"],"arity":{"min":2,"max":2},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array of objects to be processed","name":"other_array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"that exists in both arrays","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign array = '1,2,3,4' | split: ','\n  assign other_array = '3,4,5,6' | split: ','\n%}\n\n{{ array | array_intersect: other_array }} =\u003e [3,4]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns at most the first N elements of the array","summary":"Returns at most the first N elements of the array","syntax":"array | array_limit","platformOS":true,"name":"array_limit","aliases":["limit"],"arity":{"min":2,"max":2},"parameters":[{"description":"array to shrink","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"number of elements to be returned; must be a positive integer","name":"limit","required":true,"variadic":false,"default":"","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the first `limit` elements; [1,2,3,4] limited to 2 elements gives [1,2]","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"items =\u003e [{ id: 1, name: 'foo', label: 'Foo' }, { id: 2, name: 'bar', label: 'Bar' }]\n{{ items | array_limit: 1 }} =\u003e [{ id: 1, name: 'foo', label: 'Foo' }]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Extracts the values of the given keys from every object in the array","summary":"Extracts the values of the given keys from every object in the array","syntax":"array | array_map","platformOS":true,"name":"array_map","aliases":["map_attributes"],"arity":{"min":1,"max":null},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array of keys to be extracted; a key is a string for an array of hashes, or a whole\nnumber index for an array of arrays","name":"attributes","required":false,"variadic":true,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"array of arrays with values for given keys","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ items }} =\u003e [{ id: 1, name: 'foo', label: 'Foo' }, { id: 2, name: 'bar', label: 'Bar' }]\n{{ items | array_map: 'id', 'name' }} =\u003e [[1, 'foo'], [2, 'bar']]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Inserts an element at the beginning of the array","summary":"Inserts an element at the beginning of the array","syntax":"array | array_prepend","platformOS":true,"name":"array_prepend","aliases":["prepend_to_array"],"arity":{"min":2,"max":2},"parameters":[{"description":"array to which you prepend a new element","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"item you prepend to the array","name":"item","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"array to which you prepend the item given as the second parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign array = 'a,b,c' | split: ',' %}\n{{ array | array_prepend: 'd' }} =\u003e ['d', 'a', 'b', 'c']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns every element that does not match all the given field conditions","summary":"Returns every element that does not match all the given field conditions","syntax":"array | array_reject","platformOS":true,"name":"array_reject","aliases":["reject"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"with objects from collection that don't match provided conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"},{\"foo\":2,\"bar\":\"d\"}]\n{{ objects | array_reject: foo: 2 }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":3,\"bar\":\"c\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Rotates the array left by the given number of positions","summary":"Rotates the array left by the given number of positions","syntax":"array | array_rotate","platformOS":true,"name":"array_rotate","aliases":["rotate"],"arity":{"min":1,"max":2},"parameters":[{"description":"array to be rotated","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"number of times to rotate the input array; must be a whole number, optional, defaults to 1","name":"count","required":false,"variadic":false,"default":"1","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the input array rotated by a number of times given as the second\nparameter; [1,2,3,4] rotated by 2 gives [3,4,1,2]","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign numbers = \"1,2,3\" | split: \",\" %}\n{{ numbers | array_rotate }} =\u003e [2,3,1]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns every element matching all the given field conditions","summary":"Returns every element matching all the given field conditions","syntax":"array | array_select","platformOS":true,"name":"array_select","aliases":["select"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"with objects from collection that matches provided conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"},{\"foo\":2,\"bar\":\"d\"}]\n{{ objects | array_select: foo: 2 }} =\u003e [{\"foo\":2,\"bar\":\"b\"},{\"foo\":2,\"bar\":\"d\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the array with its elements in random order","summary":"Returns the array with its elements in random order","syntax":"array | array_shuffle","platformOS":true,"name":"array_shuffle","aliases":["shuffle_array"],"arity":{"min":1,"max":1},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"array with shuffled items","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ items }} =\u003e [1, 2, 3, 4]\n{{ items | array_shuffle }} =\u003e [3, 2, 4, 1]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Sorts an array of objects by the value of the given property","summary":"Sorts an array of objects by the value of the given property","syntax":"array | array_sort_by","platformOS":true,"name":"array_sort_by","aliases":["sort_by"],"arity":{"min":2,"max":2},"parameters":[{"description":"Array of Hash to be sorted by a key","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"property by which to sort an Array of Hashes","name":"property","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"Sorted object (Array of Hash)","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"array1 is [{\"title\": \"Tester\", \"value\": 1}, {\"title\": \"And\", \"value\": 2}]\n{{ array1 | array_sort_by: \"title\" }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the elements of the first array that are not in the second","summary":"Returns the elements of the first array that are not in the second","syntax":"array | array_subtract","platformOS":true,"name":"array_subtract","aliases":["subtract_array"],"arity":{"min":2,"max":2},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array of objects to be processed","name":"other_array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"that is a difference between two arrays","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign array = '1,2' | split: ','\n  assign other_array = '2' | split: ','\n%}\n\n{{ array | array_subtract: other_array }} =\u003e [1]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Sums all the numbers in the array","summary":"Sums all the numbers in the array","syntax":"array | array_sum","platformOS":true,"name":"array_sum","aliases":["sum_array"],"arity":{"min":1,"max":1},"parameters":[{"description":"array with values to be summarised","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"number","name":"","description":"summarised value of array","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign numbers = '[1,2,3]' | parse_json %}\n{{ numbers | array_sum }} =\u003e 6","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes duplicate elements from an array","summary":"Removes duplicate elements from an array","syntax":"variable | array_uniq","platformOS":true,"name":"array_uniq","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array to be processed; a single value is wrapped in an array first, so it comes back as\na one-element array","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"property to be used as the comparison key — a string key for an array of hashes, a\nwhole number index for an array of arrays","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"Returns an array with duplicate elements removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign result = \"[[1,2],[1,2],[3,4]]\" | array_uniq %}\n{{ result }} =\u003e \"[[1,2],[3,4]]\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"The `raw_url` column will be removed in a future release. Use [asset_url](#asset_url) instead.","deprecation_replacement":"asset_url","description":"Looks up an asset by name and returns the value stored in its `raw_url`\ncolumn. Intended for migrating legacy data where an explicit URL was persisted on\nthe asset row; new code should derive URLs from the asset name via `asset_url`.","summary":"Looks up an asset by name and returns the value stored in its `raw_url`\ncolumn. Intended for migrating legacy data where an explicit URL was persisted on\nthe asset row; new code should derive URLs from the asset name via `asset_url`.","syntax":"string | asset_name_to_raw_url","platformOS":true,"name":"asset_name_to_raw_url","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"asset name to look up","name":"name","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"the asset's `raw_url` if the asset exists, nil otherwise","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'logo.png' | asset_name_to_raw_url }} =\u003e 'https://example.com/instances/1/assets/logo.png'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"[asset_url](#asset_url) filter","deprecation_replacement":"asset_url","description":"Generates relative path to an asset, including `updated` query parameter.\nThe `/assets/` prefix is rewritten to the CDN origin by the reverse proxy at request time,\nso the rendered HTML stays portable across environments (custom domains, previews, on-prem).\nAlways prefer `asset_url`, which points clients straight at the CDN — `asset_path` forces\nevery request through the regional load balancer and reverse proxy before the CDN is reached,\nwhich defeats most of the CDN's benefit.","summary":"Generates relative path to an asset, including `updated` query parameter.\nThe `/assets/` prefix is rewritten to the CDN origin by the reverse proxy at request time,\nso the rendered HTML stays portable across environments (custom domains, previews, on-prem).\nAlways prefer `asset_url`, which points clients straight at the CDN — `asset_path` forces\nevery request through the regional load balancer and reverse proxy before the CDN is reached,\nwhich defeats most of the CDN's benefit.","syntax":"string | asset_path","platformOS":true,"name":"asset_path","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"path to the asset, relative to assets directory","name":"file_path","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"relative path to the physical file decorated with updated param to invalidate CDN cache.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ \"valid/file.jpg\" | asset_path }} =\u003e /assets/valid/file.jpg?updated=1565632488","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Generates CDN url to an asset","summary":"Generates CDN url to an asset","syntax":"string | asset_url","platformOS":true,"name":"asset_url","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"path to the asset, relative to assets directory","name":"file_path","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"CDN URL with the instance's asset cache buster appended.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ \"valid/file.jpg\" | asset_url }} =\u003e https://cdn-server.com/instances/1/assets/valid/file.jpg?updated=1565632488","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `hash_add_key`, kept for backwards compatibility.","deprecation_replacement":"hash_add_key","description":"Returns the hash with the given key set to the given value","summary":"Returns the hash with the given key set to the given value","syntax":"variable | assign_to_hash_key","platformOS":true,"name":"assign_to_hash_key","aliases":[],"arity":{"min":3,"max":3},"parameters":[{"description":"hash to add the key to","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to add; usually a string, but any value can be a key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"value to store under the key","name":"value","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"object","name":"","description":"hash with added key","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign accountants = \"Angela,Kevin,Oscar\" | split: \",\"\n  assign management = \"David,Jan,Michael\" | split: \",\"\n  assign company = {}\n  assign company = company | hash_add_key: \"name\", \"Dunder Mifflin\"\n  assign company = company | hash_add_key: \"accountants\", accountants\n  assign company = company | hash_add_key: \"management\", management\n%}\n{{ company }} =\u003e {\"name\" =\u003e \"Dunder Mifflin\", \"accountants\" =\u003e [\"Angela\", \"Kevin\", \"Oscar\"], \"management\" =\u003e [\"David\", \"Jan\", \"Michael\"]}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Limits a number to a minimum value","summary":"Limits a number to a minimum value","syntax":"variable | at_least","name":"at_least","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the minimum to return","name":"n","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the input, or the minimum when the input is smaller","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 4 | at_least: 5 }}\n{{ 4 | at_least: 3 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Limits a number to a maximum value","summary":"Limits a number to a maximum value","syntax":"variable | at_most","name":"at_most","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the maximum to return","name":"n","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the input, or the maximum when the input is larger","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 6 | at_most: 5 }}\n{{ 4 | at_most: 5 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Decodes a Base64-encoded string","summary":"Decodes a Base64-encoded string","syntax":"string | base64_decode","platformOS":true,"name":"base64_decode","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"Base64 encoded string","name":"base64_string","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"decoded string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'aGVsbG8gYmFzZTY0\\n' | base64_decode }} =\u003e 'hello base64'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Encodes a string as Base64, as defined by RFC 2045","summary":"Encodes a string as Base64, as defined by RFC 2045","syntax":"string | base64_encode","platformOS":true,"name":"base64_encode","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to be encoded","name":"bin","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"Returns the Base64-encoded version of bin. This method complies with RFC 2045. Line feeds are added to every 60 encoded\ncharacters.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'hello base64' | base64_encode }} =\u003e 'aGVsbG8gYmFzZTY0'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Decodes a string in URL-safe [Base64\nformat](https://developer.mozilla.org/en-US/docs/Glossary/Base64)","summary":"Decodes a string in URL-safe [Base64\nformat](https://developer.mozilla.org/en-US/docs/Glossary/Base64)","syntax":"variable | base64_url_safe_decode","name":"base64_url_safe_decode","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the decoded string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'YSBiL2M_' | base64_url_safe_decode }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Encodes a string to URL-safe [Base64\nformat](https://developer.mozilla.org/en-US/docs/Glossary/Base64)","summary":"Encodes a string to URL-safe [Base64\nformat](https://developer.mozilla.org/en-US/docs/Glossary/Base64)","syntax":"variable | base64_url_safe_encode","name":"base64_url_safe_encode","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the URL-safe Base64 representation of the input","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'a b/c?' | base64_url_safe_encode }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Capitalizes the first word in a string and downcases the remaining characters","summary":"Capitalizes the first word in a string and downcases the remaining characters","syntax":"variable | capitalize","name":"capitalize","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with its first character capitalized","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'this sentence should start with a capitalized word.' | capitalize }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Rounds a number up to the nearest integer","summary":"Rounds a number up to the nearest integer","syntax":"variable | ceil","name":"ceil","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the input rounded up to the nearest integer","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1.2 | ceil }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_compact`, kept for backwards compatibility.","deprecation_replacement":"array_compact","description":"Removes blank elements from the array","summary":"Removes blank elements from the array","syntax":"array | compact","platformOS":true,"name":"compact","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array with some blank values","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"optionally if you provide Hash as argument, you can remove elements which given key is blank","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["string"]}],"return_type":[{"type":"array","name":"","description":"array from which blank values are removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1,' | split: ',' | array_add: false | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1,' | split: ',' | array_add: null | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign empty_object = {} %}\n{{ '1,' | split: ',' | array_add: empty_object | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign empty_array = ',' | split: ',' %}\n{{ '1,' | split: ',' | array_add: empty_array | array_add: '2' | array_compact }} =\u003e [\"1\",\"2\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign hash = [{ \"hello\": null }, { \"hello\": \"world\" }, { \"hello\": \"\" }] %}\n{{ hash | array_compact: \"hello\" }} =\u003e [{\"hello\":\"world\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Computes a keyed-hash message authentication code (HMAC) for the message","summary":"Computes a keyed-hash message authentication code (HMAC) for the message","syntax":"string | compute_hmac","platformOS":true,"name":"compute_hmac","aliases":[],"arity":{"min":2,"max":4},"parameters":[{"description":"message to be authenticated","name":"data","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"secret key","name":"secret","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"defaults to SHA256. Supported algorithms are:\nSHA, SHA1, SHA224, SHA256, SHA384, SHA512, MD4, MDC2, MD5, RIPEMD160, DSS1.","name":"algorithm","required":false,"variadic":false,"default":"'sha256'","positional":true,"types":["string"]},{"description":"defaults to hex. Supported digest values are hex, none, base64","name":"digest","required":false,"variadic":false,"default":"'hex'","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"Keyed-hash message authentication code (HMAC), that can\nbe used to authenticate requests from third\nparty apps, e.g. Stripe webhooks requests","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'some_data' | compute_hmac: 'some_secret', 'MD4' }} =\u003e 'cabff538af5f97ccc27d481942616492'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Joins two arrays into one; duplicates are kept, so pipe through uniq to remove them","summary":"Joins two arrays into one; duplicates are kept, so pipe through uniq to remove them","syntax":"variable | concat","name":"concat","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"array to append to the input","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the two arrays joined into one","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign types_and_vendors = collection.all_types | concat: collection.all_vendors -%}\n\nTypes and vendors:\n\n{% for item in types_and_vendors -%}\n  {%- if item != blank -%}\n    - {{ item }}\n  {%- endif -%}\n{%- endfor %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts a timestamp into another date format. The `date` filter accepts the same parameters as\nRuby's strftime method for formatting the date. For a list of shorthand formats, refer to the\n[Ruby documentation](https://ruby-doc.org/core-3.1.1/Time.html#method-i-strftime) or [strftime\nreference and sandbox](http://www.strfti.me/).","summary":"Converts a timestamp into another date format. The `date` filter accepts the same parameters as\nRuby's strftime method for formatting the date. For a list of shorthand formats, refer to the\n[Ruby documentation](https://ruby-doc.org/core-3.1.1/Time.html#method-i-strftime) or [strftime\nreference and sandbox](http://www.strfti.me/).","syntax":"variable | date","name":"date","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"time to format — a string, a time, a date, or seconds since the epoch","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the desired date format","name":"format","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the formatted date","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.created_at | date: '%B %d, %Y' }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'now' | date: '%B %d, %Y' }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.created_at | date: format: 'abbreviated_date' }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.created_at | date: format: 'month_day_year' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Adds a number of time units to a date","summary":"Adds a number of time units to a date","syntax":"string | date_add","platformOS":true,"name":"date_add","aliases":["add_to_date"],"arity":{"min":1,"max":3},"parameters":[{"description":"parsable time the units are added to; a number is read as whole seconds\nsince the epoch","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"how many units to add — a string holding a number is accepted and a fractional\nnumber is truncated; optional, defaults to 1","name":"number","required":false,"variadic":false,"default":"1","positional":true,"types":["number","string"]},{"description":"time unit - allowed options are: y, years, mo, months, w, weeks, d [default], days, h, hours, m, minutes, s, seconds","name":"unit","required":false,"variadic":false,"default":"'d'","positional":true,"types":["string"]}],"return_type":[{"type":"date","name":"","description":"modified Date","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-01' | date_add: 1 }} =\u003e 2010-01-02\n{{ '2010-01-01' | date_add: 1, 'mo' }} =\u003e 2010-02-01","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `is_date_before`, kept for backwards compatibility.","deprecation_replacement":"is_date_before","description":"Checks whether the first time is earlier than the second","summary":"Checks whether the first time is earlier than the second","syntax":"string | date_before","platformOS":true,"name":"date_before","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"time to compare to the second parameter; a number is read as whole\nseconds since the epoch","name":"first_time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"time against which the first parameter is compared to","name":"second_time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]}],"return_type":[{"type":"boolean","name":"","description":"returns true if the first time is lower than the second time","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-02' | date_before: '2010-01-03' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '6 months ago' | date_before: '2010-01-03' }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1 day ago' | date_before: 'now' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Filter allowing to decrypt data encrypted with a specified algorithm. See encrypt filter for encryption.","summary":"Filter allowing to decrypt data encrypted with a specified algorithm. See encrypt filter for encryption.","syntax":"string | decrypt","platformOS":true,"name":"decrypt","aliases":[],"arity":{"min":3,"max":4},"named_parameters_exhaustive":true,"parameters":[{"description":"string payload to be decrypted - must be a Base64 encoded (RFC 4648) or HEX (if from_hex flag true) string","name":"payload","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"algorithm you want to use for encryption.\nSupported symmetric algorithms: aes-128-cbc, aes-128-cbc-hmac-sha1, aes-128-cbc-hmac-sha256, aes-128-ccm,\naes-128-cfb, aes-128-cfb1, aes-128-cfb8, aes-128-ctr, aes-128-ecb, aes-128-gcm, aes-128-ocb, aes-128-ofb, aes-128-xts, aes-192-cbc,\naes-192-ccm, aes-192-cfb, aes-192-cfb1, aes-192-cfb8, aes-192-ctr, aes-192-ecb, aes-192-gcm, aes-192-ocb, aes-192-ofb, aes-256-cbc,\naes-256-cbc-hmac-sha1, aes-256-cbc-hmac-sha256, aes-256-ccm, aes-256-cfb, aes-256-cfb1, aes-256-cfb8, aes-256-ctr, aes-256-ecb, aes-256-gcm,\naes-256-ocb, aes-256-ofb, aes-256-xts, aes128, aes128-wrap, aes192, aes192-wrap, aes256, aes256-wrap, aria-128-cbc, aria-128-ccm,\naria-128-cfb, aria-128-cfb1, aria-128-cfb8, aria-128-ctr, aria-128-ecb, aria-128-gcm, aria-128-ofb, aria-192-cbc, aria-192-ccm,\naria-192-cfb, aria-192-cfb1, aria-192-cfb8, aria-192-ctr, aria-192-ecb, aria-192-gcm, aria-192-ofb, aria-256-cbc, aria-256-ccm,\naria-256-cfb, aria-256-cfb1, aria-256-cfb8, aria-256-ctr, aria-256-ecb, aria-256-gcm, aria-256-ofb, aria128, aria192, aria256, bf, bf-cbc,\nbf-cfb, bf-ecb, bf-ofb, blowfish, camellia-128-cbc, camellia-128-cfb, camellia-128-cfb1, camellia-128-cfb8, camellia-128-ctr,\ncamellia-128-ecb, camellia-128-ofb, camellia-192-cbc, camellia-192-cfb, camellia-192-cfb1, camellia-192-cfb8, camellia-192-ctr,\ncamellia-192-ecb, camellia-192-ofb, camellia-256-cbc, camellia-256-cfb, camellia-256-cfb1, camellia-256-cfb8, camellia-256-ctr,\ncamellia-256-ecb, camellia-256-ofb, camellia128, camellia192, camellia256, cast, cast-cbc, cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb,\nchacha20, chacha20-poly1305, des, des-cbc, des-cfb, des-cfb1, des-cfb8, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ecb,\ndes-ede-ofb, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-cfb1, des-ede3-cfb8, des-ede3-ecb, des-ede3-ofb, des-ofb, des3, des3-wrap, desx,\ndesx-cbc, id-aes128-CCM, id-aes128-GCM, id-aes128-wrap, id-aes128-wrap-pad, id-aes192-CCM, id-aes192-GCM, id-aes192-wrap,\nid-aes192-wrap-pad, id-aes256-CCM, id-aes256-GCM, id-aes256-wrap, id-aes256-wrap-pad, id-smime-alg-CMS3DESwrap, idea, idea-cbc, idea-cfb,\nidea-ecb, idea-ofb, rc2, rc2-128, rc2-40, rc2-40-cbc, rc2-64, rc2-64-cbc, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb, rc4, rc4-40, rc4-hmac-md5,\nseed, seed-cbc, seed-cfb, seed-ecb, seed-ofb, sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb\nSupported asymmetric algorithms: RSA, RSA-OAEP","name":"algorithm","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"a key used for encryption. Key must match the algorithm requirments. For asymmetric algorithms there are public and\nprivate keys that need to passed in PEM format.","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"additional options to control the decryption algorithm","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"- transfrom key to HEX","name":"transform_key_to_hex","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"- return HEX enxrypted string instead of Base64 encoded","name":"from_hex","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"- disable cipher padding","name":"disable_cipher_padding","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"String - decrypted string using the algorithm of your choice. Initialization Vector (iv) is expected to be present in the\nencrypted payload at the beginning.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ some_payload | decrypt: 'aes-256-cbc', 'ThisPasswordIsReallyHardToGuessA' }} =\u003e decrypted string from payload\n{{ \"43553EEDD9BFE36D10F99E931245CF8826903C00D235DFD300B3CC40BD263A621FC2FB9F5C3743F75D399A912AFABF92371927C6D190E0EFF19EAE9802320391FED79D92009796403EC6B426E901AB981CE53A43557C295F3D6FC9678EE0557F\" | decrypt: 'aes-128-ecb', '4FCD5FAE2AC493C0F8CE8E1E6105D194', transform_key_to_hex: true, from_hex: true, disable_cipher_padding: true }} =\u003e iframe=true;customer.firstName=John;customer.lastName=Smith;header.accountNumber=6759370;header.authToken1=12345;header.paymentTypeCode=UTILITY;header.amount=123.45\n\nAES-256-GCM (authenticated decryption, payload format: IV + ciphertext + auth_tag):\n{% assign key = 'ThisIsA32ByteKeyForAES256GCM!!!!' %}\n{% assign encrypted = 'foo bar' | encrypt: 'aes-256-gcm', key %}\n{{ encrypted | decrypt: 'aes-256-gcm', key }} =\u003e foo bar\n\nAES-128-GCM:\n{% assign encrypted = 'secret data' | encrypt: 'aes-128-gcm', '16ByteSecretKey!' %}\n{{ encrypted | decrypt: 'aes-128-gcm', '16ByteSecretKey!' }} =\u003e secret data\n\nchacha20-poly1305 (authenticated decryption):\n{% assign encrypted = 'baz qux' | encrypt: 'chacha20-poly1305', '32ByteKeyForChaCha20Poly1305!!!!' %}\n{{ encrypted | decrypt: 'chacha20-poly1305', '32ByteKeyForChaCha20Poly1305!!!!' }} =\u003e baz qux\n\nAES-256-GCM with hex key:\n{% assign decrypted = encrypted | decrypt: 'aes-256-gcm', hex_key, transform_key_to_hex: true, from_hex: true %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns a deep copy of the object, so nested values can be changed independently","summary":"Returns a deep copy of the object, so nested values can be changed independently","syntax":"variable | deep_clone","platformOS":true,"name":"deep_clone","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"object to be duplicated","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"untyped","name":"","description":"returns a copy of the object parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign some_hash_copy = some_hash | deep_clone %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns a fallback value when the input is nil, false or empty","summary":"Returns a fallback value when the input is nil, false or empty","syntax":"variable | default","name":"default","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"value to use unless it is nil, false or empty","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"value to fall back on when the input is nil, false or empty","name":"default_value","required":false,"variadic":false,"default":"''","positional":true,"types":["untyped"]},{"description":"set allow_false: true to treat false as a value rather than as empty","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["untyped"]}],"return_type":[{"type":"untyped","name":"","description":"the input, or the default value when the input is nil, false or empty","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ product.selected_variant.url | default: product.url }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign display_price = false -%}\n\n{{ display_price | default: true, allow_false: true }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `hash_delete_key`, kept for backwards compatibility.","deprecation_replacement":"hash_delete_key","description":"Removes the given key from the hash and returns the value it held","summary":"Removes the given key from the hash and returns the value it held","syntax":"variable | delete_hash_key","platformOS":true,"name":"delete_hash_key","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"hash to remove the key from","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to remove","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"untyped","name":"","description":"value which was assigned to a deleted key. If the key did not exist in the first place, null is returned.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign hash = '{ \"a\": \"1\", \"b\": \"2\"}' | parse_json\n  assign a_value = hash | hash_delete_key: \"a\"\n%}\n{{ a_value }} =\u003e \"1\"\n{{ hash }} =\u003e { \"b\": \"2\" }","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_detect`, kept for backwards compatibility.","deprecation_replacement":"array_detect","description":"Returns the first element matching all the given field conditions","summary":"Returns the first element matching all the given field conditions","syntax":"array | detect","platformOS":true,"name":"detect","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"untyped","name":"","description":"first object from the collection that matches the specified conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"}]\n{{ objects | array_detect: foo: 2 }} =\u003e {\"foo\":2,\"bar\":\"b\"}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `hash_dig`, kept for backwards compatibility.","deprecation_replacement":"hash_dig","description":"Extracts a nested value by following the given sequence of keys","summary":"Extracts a nested value by following the given sequence of keys","syntax":"variable | dig","platformOS":true,"name":"dig","aliases":[],"arity":{"min":1,"max":null},"parameters":[{"description":"hash to traverse","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"comma separated sequence of keys to dig down the hash; a key is a string, or a whole\nnumber where the value being stepped into is an array — `hash_dig: 'images', 0, 'url'`","name":"keys","required":false,"variadic":true,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"untyped","name":"","description":"Extracted nested value specified by the sequence of keys by calling dig at each step,\nreturning null if any intermediate step is null.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign user_json = { \"name\": { \"first\": \"John\", \"last\": \"Doe\" } } %}\n{{ user_json | hash_dig: \"name\", \"first\" }} =\u003e John","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns a cryptographic hash of the string, using the chosen algorithm","summary":"Returns a cryptographic hash of the string, using the chosen algorithm","syntax":"string | digest","platformOS":true,"name":"digest","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"message that you want to obtain a cryptographic hash for","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"the hash algorithm to use. Choose from: 'md5', 'sha1', 'sha256', 'sha384', 'sha512'. Default is sha1.","name":"algorithm","required":false,"variadic":false,"default":"'sha1'","positional":true,"types":["string"]},{"description":"defaults to hex. Supported digest values are hex, none, base64","name":"digest","required":false,"variadic":false,"default":"'hex'","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"hexadecimal hash value obtained by applying the selected algorithm to the message","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'foo' | digest }} =\u003e '0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33'\n{{ 'foo' | digest: 'sha256' }} =\u003e '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae'\n{{ 'foo' | digest: 'sha256', 'base64' }} =\u003e 'LCa0a2j/xo/5m0U8HTBBNBNCLXBkg7+g+YpeiGJm564='\n{{ 'foo' | digest: 'sha256', 'none' | base64_encode }} =\u003e LCa0a2j/xo/5m0U8HTBBNBNCLXBkg7+g+YpeiGJm564= # 'none' returns the raw binary digest","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Divides a number by a given number. The `divided_by` filter produces a result of the same type\nas the divisor. This means if you divide by an integer, the result will be an integer, and if\nyou divide by a float, the result will be a float","summary":"Divides a number by a given number. The `divided_by` filter produces a result of the same type\nas the divisor. This means if you divide by an integer, the result will be an integer, and if\nyou divide by a float, the result will be a float","syntax":"variable | divided_by","name":"divided_by","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"number to divide by; an integer operand keeps the result an integer","name":"operand","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the quotient","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 4 | divided_by: 2 }}\n\n# divisor is an integer\n{{ 20 | divided_by: 7 }}\n\n# divisor is a float\n{{ 20 | divided_by: 7.0 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts a string to all lowercase characters","summary":"Converts a string to all lowercase characters","syntax":"variable | downcase","name":"downcase","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input in lowercase","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ product.title | downcase }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Downloads a remote file and returns its body","summary":"Downloads a remote file and returns its body","syntax":"string | download_file","platformOS":true,"name":"download_file","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"url to a remote file","name":"url","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"max file size of the file, default 1 megabyte. Can't exceed 50 megabytes.","name":"max_size","required":false,"variadic":false,"default":"1","positional":true,"types":["number"]}],"return_type":[{"type":"string","name":"","description":"Body of the remote file","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'http://www.example.com/my_file.txt' | download_file }} =\u003e \"Content of a file\"\n{% assign data = 'https://example.com/data.json' | download_file | parse_json %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Computes an ECDH shared secret from your private key and a peer's public key","summary":"Computes an ECDH shared secret from your private key and a peer's public key","syntax":"string | ecdh_compute","platformOS":true,"name":"ecdh_compute","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"your EC private key, PEM-encoded","name":"private_key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"the peer's EC public key. Accepts either:\n- a PEM-encoded EC public key (`-----BEGIN PUBLIC KEY-----...`), or\n- a raw, uncompressed EC point, Base64url-encoded (RFC 4648 §5, padding optional) - this is the\n  format returned by a browser's `PushSubscription.getKey('p256dh')` for Web Push.\nThe curve is always taken from `private_key`'s own curve; both keys must use the same curve\n(P-256/`prime256v1` for Web Push).","name":"peer_public_key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"defaults to 'none' (raw bytes - ready to be piped straight into the +hkdf+\nfilter). Supported values are hex, none, base64 (Base64 here is URL-safe/RFC 4648 §5, matching Web\nPush/JOSE conventions - note this differs from the standard, non-URL-safe base64 produced by the\n`digest`/`compute_hmac` filters).","name":"output","required":false,"variadic":false,"default":"'none'","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"the ECDH (Elliptic Curve Diffie-Hellman) shared secret computed from your EC private\nkey and a peer's EC public key. Intended as a building block for implementing key-agreement schemes -\nsuch as Web Push message encryption (RFC 8291/8292) - entirely from Liquid, together with the +hkdf+\nfilter.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"Web Push (RFC 8291) - deriving the ECDH shared secret between your EC private key and a subscriber's\n'p256dh' key:\n{% assign shared_secret = as_private_key | ecdh_compute: subscription.keys.p256dh %}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Two parties independently agreeing on the same secret:\n{% assign alice_secret = alice_private_key | ecdh_compute: bob_public_key, 'hex' %}\n{% assign bob_secret = bob_private_key | ecdh_compute: alice_public_key, 'hex' %}\n{% if alice_secret == bob_secret %}true{% endif %} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"The filter returns a string with the encoding changed to the one specified by the 'destination_encoding' parameter. The filter changes the string itself (its representation in memory) by first determining which graphical characters the underlying bytes in the string represent in the 'source_encoding', and then changing the bytes to encode the same graphical characters in 'destination_encoding'.","summary":"The filter returns a string with the encoding changed to the one specified by the 'destination_encoding' parameter. The filter changes the string itself (its representation in memory) by first determining which graphical characters the underlying bytes in the string represent in the 'source_encoding', and then changing the bytes to encode the same graphical characters in 'destination_encoding'.","syntax":"string | encode","platformOS":true,"name":"encode","aliases":[],"arity":{"min":3,"max":3},"parameters":[{"description":"input string that we want to reencode","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"the encoding we want the source string text converted to","name":"destination_encoding","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"the encoding of the source string text","name":"source_encoding","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"input string with encoding modified from source_encoding to destination_encoding","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'John arrived_foo' | encode: 'ISO-8859-1', 'UTF-8' }} =\u003e John arrived_foo\n{% comment %}\n  invalid:, undefined: and replace: are Ruby KEYWORD arguments, which a template cannot\n  reach: Liquid collects named filter arguments into a single trailing positional Hash,\n  and Ruby 3 does not convert that back into keywords. Passing them raises\n  \"encode filter - wrong number of arguments (given 4, expected 3)\" — measured, and the\n  reason the previous version of this example could never have worked.\n{% endcomment %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"The filter returns the encoding of the string parameter (i.e. how the underlying bytes in the string are interpreted to determine which graphical characters they encode).","summary":"The filter returns the encoding of the string parameter (i.e. how the underlying bytes in the string are interpreted to determine which graphical characters they encode).","syntax":"string | encoding","platformOS":true,"name":"encoding","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input string whose encoding we want to find","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"encoding of the string text","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'John arrived_foo' | encoding }} =\u003e 'UTF-8'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Filter allowing to encrypt data with specified algorithm. See decrypt filter for decryption","summary":"Filter allowing to encrypt data with specified algorithm. See decrypt filter for decryption","syntax":"string | encrypt","platformOS":true,"name":"encrypt","aliases":[],"arity":{"min":3,"max":5},"named_parameters_exhaustive":true,"parameters":[{"description":"string payload to be encrypted","name":"payload","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"algorithm you want to use for encryption.\nSupported symmetric algorithms: aes-128-cbc, aes-128-cbc-hmac-sha1, aes-128-cbc-hmac-sha256, aes-128-ccm,\naes-128-cfb, aes-128-cfb1, aes-128-cfb8, aes-128-ctr, aes-128-ecb, aes-128-gcm, aes-128-ocb, aes-128-ofb, aes-128-xts, aes-192-cbc,\naes-192-ccm, aes-192-cfb, aes-192-cfb1, aes-192-cfb8, aes-192-ctr, aes-192-ecb, aes-192-gcm, aes-192-ocb, aes-192-ofb, aes-256-cbc,\naes-256-cbc-hmac-sha1, aes-256-cbc-hmac-sha256, aes-256-ccm, aes-256-cfb, aes-256-cfb1, aes-256-cfb8, aes-256-ctr, aes-256-ecb, aes-256-gcm,\naes-256-ocb, aes-256-ofb, aes-256-xts, aes128, aes128-wrap, aes192, aes192-wrap, aes256, aes256-wrap, aria-128-cbc, aria-128-ccm,\naria-128-cfb, aria-128-cfb1, aria-128-cfb8, aria-128-ctr, aria-128-ecb, aria-128-gcm, aria-128-ofb, aria-192-cbc, aria-192-ccm,\naria-192-cfb, aria-192-cfb1, aria-192-cfb8, aria-192-ctr, aria-192-ecb, aria-192-gcm, aria-192-ofb, aria-256-cbc, aria-256-ccm,\naria-256-cfb, aria-256-cfb1, aria-256-cfb8, aria-256-ctr, aria-256-ecb, aria-256-gcm, aria-256-ofb, aria128, aria192, aria256, bf, bf-cbc,\nbf-cfb, bf-ecb, bf-ofb, blowfish, camellia-128-cbc, camellia-128-cfb, camellia-128-cfb1, camellia-128-cfb8, camellia-128-ctr,\ncamellia-128-ecb, camellia-128-ofb, camellia-192-cbc, camellia-192-cfb, camellia-192-cfb1, camellia-192-cfb8, camellia-192-ctr,\ncamellia-192-ecb, camellia-192-ofb, camellia-256-cbc, camellia-256-cfb, camellia-256-cfb1, camellia-256-cfb8, camellia-256-ctr,\ncamellia-256-ecb, camellia-256-ofb, camellia128, camellia192, camellia256, cast, cast-cbc, cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb,\nchacha20, chacha20-poly1305, des, des-cbc, des-cfb, des-cfb1, des-cfb8, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ecb,\ndes-ede-ofb, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-cfb1, des-ede3-cfb8, des-ede3-ecb, des-ede3-ofb, des-ofb, des3, des3-wrap, desx,\ndesx-cbc, id-aes128-CCM, id-aes128-GCM, id-aes128-wrap, id-aes128-wrap-pad, id-aes192-CCM, id-aes192-GCM, id-aes192-wrap,\nid-aes192-wrap-pad, id-aes256-CCM, id-aes256-GCM, id-aes256-wrap, id-aes256-wrap-pad, id-smime-alg-CMS3DESwrap, idea, idea-cbc, idea-cfb,\nidea-ecb, idea-ofb, rc2, rc2-128, rc2-40, rc2-40-cbc, rc2-64, rc2-64-cbc, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb, rc4, rc4-40, rc4-hmac-md5,\nseed, seed-cbc, seed-cfb, seed-ecb, seed-ofb, sm4, sm4-cbc, sm4-cfb, sm4-ctr, sm4-ecb, sm4-ofb\nSupported asymmetric algorithms: RSA, RSA-OAEP","name":"algorithm","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"a key used for encryption. Key must match the algorithm requirments. For asymmetric algorithms there are public and\nprivate keys that need to passed in PEM format.","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"initialization vector, raw bytes, must match the algorithm's IV length; optional\n(e.g. 12 or 16 bytes for aes-*-gcm, 16 bytes for aes-*-cbc). If not provided, one is generated randomly.\nNot supported for asymmetric algorithms (RSA, RSA-OAEP).","name":"iv","required":false,"variadic":false,"default":"nil","positional":true,"types":["string"]},{"description":"additional options to control the encrypt algorithm","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"- transfrom key to HEX","name":"transform_key_to_hex","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"- return HEX encrypted string instead of Base64 encoded","name":"return_hex","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"- integer value of block length","name":"pad_payload_right","required":false,"variadic":false,"default":"","positional":false,"types":["number"]}],"return_type":[{"type":"string","name":"","description":"Base64 encoded (RFC 4648) (or HEX if return_hex is true) encrypted string using the algorithm of your choice. Initialization\nVector (iv) will be appended","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% capture payload %}\n  {\n   \"key\": \"value\",\n   \"another_key\": \"another value\"\n  }\n{% endcapture %}\n{{ payload | encrypt: 'aes-256-cbc', 'ThisPasswordIsReallyHardToGuessA' }} =\u003e Kkuo2eWEnTbcrtbGjAmQVMTjptS5elsgqQe-5blHpUR-ziHPI45n2wOnY30DVZGldCTNqMT_Ml0ZFiGiupKGD4ZWxVIMkdCHaq4XgiAIUew=\n{{ \"step=2;header.amount=10;header.paymentTypeCode=ONLINE;customer.firstName=John\" | encrypt: 'aes-128-ecb', '4C6C821832AAFFF2749852CEED2FE74F', null, transform_key_to_hex: true, return_hex: true, pad_payload_right: 32 }} =\u003e 43553EEDD9BFE36D10F99E931245CF8826903C00D235DFD300B3CC40BD263A621FC2FB9F5C3743F75D399A912AFABF92371927C6D190E0EFF19EAE9802320391FED79D92009796403EC6B426E901AB981CE53A43557C295F3D6FC9678EE0557F\n\nAES-256-GCM (authenticated encryption):\n{% assign key = 'ThisIsA32ByteKeyForAES256GCM!!!!' %}\n{% assign encrypted = 'foo bar' | encrypt: 'aes-256-gcm', key %}\n{{ encrypted }} =\u003e Base64 encoded string containing IV + ciphertext + auth_tag\n\nAES-128-GCM:\n{% assign encrypted = 'secret data' | encrypt: 'aes-128-gcm', '16ByteSecretKey!' %}\n\nchacha20-poly1305 (authenticated encryption):\n{% assign encrypted = 'sensitive payload' | encrypt: 'chacha20-poly1305', '32ByteKeyForChaCha20Poly1305!!!!' %}\n\nAES-256-GCM with hex key:\n{% assign encrypted = 'foo bar' | encrypt: 'aes-256-gcm', hex_key, null, transform_key_to_hex: true, return_hex: true %}\n\nAES-128-GCM with an explicit, caller-supplied IV (e.g. a nonce derived elsewhere, as in RFC 8291 Web Push):\n{% assign encrypted = 'secret data' | encrypt: 'aes-128-gcm', '16ByteSecretKey!', derived_nonce %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Check if string ends with given substring(s)","summary":"Check if string ends with given substring(s)","syntax":"string | end_with","platformOS":true,"name":"end_with","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"string to check ends with any of the provided suffixes","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"suffix to check, or an array of suffixes of which any one matching is enough","name":"suffixes","required":true,"variadic":false,"default":"","positional":true,"types":["string","array"]}],"return_type":[{"type":"boolean","name":"","description":"true if string ends with a suffixes","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'my_example' | end_with: 'example' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'my_example' | end_with: 'my' }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign suffixes = [\"array\", \"example\"] %}\n{{ 'my_example' | end_with: suffixes }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Escapes special characters in HTML, such as `\u003c\u003e`, `'`, and `\u0026`, and converts characters into\nescape sequences. The filter doesn't effect characters within the string that don’t have a\ncorresponding escape sequence.\"","summary":"Escapes special characters in HTML, such as `\u003c\u003e`, `'`, and `\u0026`, and converts characters into\nescape sequences. The filter doesn't effect characters within the string that don’t have a\ncorresponding escape sequence.\"","syntax":"variable | escape","name":"escape","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with HTML special characters escaped","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u0026lt;p\u0026gt;Text to be escaped.\u0026lt;/p\u0026gt;' | escape }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Escapes newlines, quotes and backslashes so the text is safe inside a JavaScript string","summary":"Escapes newlines, quotes and backslashes so the text is safe inside a JavaScript string","syntax":"string | escape_javascript","platformOS":true,"name":"escape_javascript","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"text to be escaped","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"escaped text, safe to embed in a JavaScript string literal","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ \"it's a \\\"test\\\"\" | escape_javascript }} =\u003e it\\'s a \\\"test\\\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Escapes a string without changing characters that have already been escaped","summary":"Escapes a string without changing characters that have already been escaped","syntax":"variable | escape_once","name":"escape_once","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input escaped, leaving entities that are already escaped untouched","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u0026lt;p\u0026gt;Hello \u0026amp; welcome\u0026lt;/p\u0026gt;' | escape_once }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Creates url based on provided named parameters to the template","summary":"Creates url based on provided named parameters to the template","syntax":"string | expand_url_template","platformOS":true,"name":"expand_url_template","aliases":[],"arity":{"min":2,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"URL template. Read more at https://tools.ietf.org/html/rfc6570","name":"template","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"hash with data injected into template","name":"params","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"string","name":"","description":"expanded URL","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"/search/{city}/{street}\" %}\n{{ template | expand_url_template: city: \"Sydney\", street: \"BlueRoad\" }}\n=\u003e /search/Sydney/BlueRoad","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"/search{?city,street}\" %}\n{{ template | expand_url_template: city: \"Sydney\", street: \"BlueRoad\" }}\n=\u003e /search?city=Sydney\u0026street=BlueRoad","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Extracts named parameters from the url","summary":"Extracts named parameters from the url","syntax":"string | extract_url_params","platformOS":true,"name":"extract_url_params","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"URL with params to extract","name":"url","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"URL template, or an array of templates of which the first match wins.\nRead more at https://tools.ietf.org/html/rfc6570","name":"templates","required":true,"variadic":false,"default":"","positional":true,"types":["string","array"]}],"return_type":[{"type":"object","name":"","description":"hash with extracted params","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"/search/{city}/{street}\" %}\n{{ \"/search/Sydney/BlueRoad\" | extract_url_params: template  }} =\u003e {\"city\":\"Sydney\",\"street\":\"BlueRoad\"}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"/{first}{/second*}\" %}\n{{ \"/a/b/c/\" | extract_url_params: template }} =\u003e {\"first\":\"a\",\"second\":[\"b\",\"c\"]}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"/{first}/{second}{?limit,offset}\" %}\n{{ \"/my/path?limit=10\u0026offset=0\" | extract_url_params: template }} =\u003e {\"first\":\"my\",\"second\":\"path\",\"limit\":\"10\",\"offset\":\"0\"}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"/search/{+query}\" %}\n{% assign params = \"/search/this+is+my+query\" | extract_url_params: template %}\n{{ params }} =\u003e {\"query\":\"this+is+my+query\"}\n{{ params.query | split: '+' }} =\u003e [\"this\",\"is\",\"my\",\"query\"]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign template = \"{+location}/listings\" %}\n{{ \"/Warsaw/Poland/listings\" | extract_url_params: template }} =\u003e {\"location\":\"/Warsaw/Poland\"}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `hash_fetch`, kept for backwards compatibility. `hash_fetch` is deprecated too — use `hash_dig` instead.","deprecation_replacement":"hash_dig","description":"Reads a single key from the hash","summary":"Reads a single key from the hash","syntax":"variable | fetch","platformOS":true,"name":"fetch","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"input hash to be traversed","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to be fetched from hash branch","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"untyped","name":"","description":"","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign users = [{ \"name\": \"Jane\" }, { \"name\": \"Bob\" }] %}\n{{ users | first | hash_fetch: \"name\" }} =\u003e Jane","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the first item in an array with a specific property value. This requires you to provide\nboth the property name and the associated value.","summary":"Returns the first item in an array with a specific property value. This requires you to provide\nboth the property name and the associated value.","syntax":"variable | find","name":"find","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"the array to search","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the property name to test on each item","name":"property","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the value the property must equal. Omitted, any truthy value\nmatches","name":"target_value","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"untyped","name":"","description":"the first matching item, or nil when nothing matches","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ products | find: 'type', 'shirt' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the index of the first item in an array with a specific property value. This requires\nyou to provide both the property name and the associated value.","summary":"Returns the index of the first item in an array with a specific property value. This requires\nyou to provide both the property name and the associated value.","syntax":"variable | find_index","name":"find_index","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"the array to search","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the property name to test on each item","name":"property","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the value the property must equal. Omitted, any truthy value\nmatches","name":"target_value","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the index of the first matching item, or nil when nothing matches","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ products | find_index: 'type', 'shirt' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the first item in an array","summary":"Returns the first item in an array","syntax":"variable | first","name":"first","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"array to process","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"untyped","name":"","description":"the first item of the array","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign first_product = collection.products | first -%}\n\n{{ first_product.title }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.products.first.title }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_flatten`, kept for backwards compatibility.","deprecation_replacement":"array_flatten","description":"Flattens an array of arrays into a single array","summary":"Flattens an array of arrays into a single array","syntax":"array | flatten","platformOS":true,"name":"flatten","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"array of arrays to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"with objects","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ array_of_arrays }} =\u003e [[1,2], [3,4], [5,6]]\n{{ array_of_arrays | array_flatten }} =\u003e [1,2,3,4,5,6]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Rounds a number down to the nearest integer","summary":"Rounds a number down to the nearest integer","syntax":"variable | floor","name":"floor","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the input rounded down to the nearest integer","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1.2 | floor }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"The filter returns a string with the encoding changed to the one specified by the 'encoding' parameter. The filter does not change the string itself (its representation in memory) but changes how the underlying bytes in the string are interpreted to determine which characters they encode","summary":"The filter returns a string with the encoding changed to the one specified by the 'encoding' parameter. The filter does not change the string itself (its representation in memory) but changes how the underlying bytes in the string are interpreted to determine which characters they encode","syntax":"string | force_encoding","platformOS":true,"name":"force_encoding","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"input string whose encoding we want modified","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"name of the encoding the bytes should be interpreted as","name":"encoding","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"input string with encoding modified to the one specified by the encoding parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'John arrived_foo' | force_encoding: \"ISO-8859-1\" }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Formats a number using the given precision, delimiter and separator","summary":"Formats a number using the given precision, delimiter and separator","syntax":"number | format_number","platformOS":true,"name":"format_number","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"integer or float to format, a string holding one — a non-numeric string is\nread as 0 — or a time, which formats as its seconds since the epoch","name":"number","required":true,"variadic":false,"default":"","positional":true,"types":["number","string","time"]},{"description":"formatting options","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Sets the locale to be used for formatting (defaults to current locale).","name":"locale","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Sets the precision of the number (defaults to 3).","name":"precision","required":false,"variadic":false,"default":"","positional":false,"types":["number"]},{"description":"If true, precision will be the number of significant_digits. If false, the number of fractional digits\n(defaults to false).","name":"significant","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Sets the separator between the fractional and integer digits (defaults to \".\").","name":"separator","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Sets the thousands delimiter (defaults to \"\").","name":"delimiter","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"If true removes insignificant zeros after the decimal separator (defaults to false).","name":"strip_insignificant_zeros","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Sets how the number is rounded — one of up, down, ceiling, floor, half_up, half_down,\nhalf_even, banker or none (defaults to half_up).","name":"round_mode","required":false,"variadic":false,"default":"","positional":false,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"formatted number","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 111.2345 | format_number }} # =\u003e 111.235","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 111.2345 | format_number: precision: 2 }} # =\u003e 111.23","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 111 | format_number: precision: 2 }} # =\u003e 111.00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1111.2345 | format_number: precision: 2, separator: ',', delimiter: '.' }} # =\u003e 1.111,23","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts currency in fractional to whole amount. For example, convert cents to USD.","summary":"Converts currency in fractional to whole amount. For example, convert cents to USD.","syntax":"number | fractional_to_amount","platformOS":true,"name":"fractional_to_amount","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"fractional amount; must be a whole number (or a string holding one), a money object is accepted too","name":"amount","required":true,"variadic":false,"default":"","positional":true,"types":["number","string"]},{"description":"currency to be used","name":"currency","required":false,"variadic":false,"default":"'USD'","positional":true,"types":["string"]}],"return_type":[{"type":"number","name":"","description":"converted fractional amount","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1050 | fractional_to_amount: 'USD' }} =\u003e 10.5","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1050 | fractional_to_amount: 'JPY' }} =\u003e 1050","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_group_by`, kept for backwards compatibility.","deprecation_replacement":"array_group_by","description":"Transforms array into hash, with keys equal to the values of object's method name and value being array containing objects","summary":"Transforms array into hash, with keys equal to the values of object's method name and value being array containing objects","syntax":"array | group_by","platformOS":true,"name":"group_by","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to be grouped","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"method name to be used to group Objects","name":"method_name","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"object","name":"","description":"the original array grouped by method\nspecified by the second parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign objects = [\n  { \"size\": \"xl\", \"color\": \"red\" },\n  { \"size\": \"xl\", \"color\": \"yellow\" },\n  { \"size\": \"s\", \"color\": \"red\" }\n] %}\n{{ objects | array_group_by: 'size' }} =\u003e {\"xl\":[{\"size\":\"xl\",\"color\":\"red\"},{\"size\":\"xl\",\"color\":\"yellow\"}],\"s\":[{\"size\":\"s\",\"color\":\"red\"}]}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Gzip compress a string","summary":"Gzip compress a string","syntax":"string | gzip_compress","platformOS":true,"name":"gzip_compress","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to be compressed\n{% assign result = \"Lorem ipsum\" | gzip_compress | gzip_decompress %}\n{{ result }} =\u003e \"Lorem ipsum\"","name":"uncompressed_string","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"Gzip-compressed string","array_value":""}],"examples":[]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Gzip decompress a string","summary":"Gzip decompress a string","syntax":"string | gzip_decompress","platformOS":true,"name":"gzip_decompress","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to be decompressed\n{% assign result = \"Lorem ipsum\" | gzip_compress | gzip_decompress %}\n{{ result }} =\u003e \"Lorem ipsum\"","name":"compressed_string","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"Decompressed string","array_value":""}],"examples":[]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Escapes a string, so it can be safely rendered as HTML. An alias of `escape`","summary":"Escapes a string, so it can be safely rendered as HTML. An alias of `escape`","syntax":"variable | h","name":"h","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with HTML special characters escaped","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u0026lt;script\u0026gt;' | h }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Tests if any item in an array has a specific property value. This requires you to provide both\nthe property name and the associated value.","summary":"Tests if any item in an array has a specific property value. This requires you to provide both\nthe property name and the associated value.","syntax":"variable | has","name":"has","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"the array to search","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the property name to test on each item","name":"property","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the value the property must equal. Omitted, any truthy value\nmatches","name":"target_value","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"whether any item matches","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% if products | has: 'type', 'shirt' %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the hash with the given key set to the given value","summary":"Returns the hash with the given key set to the given value","syntax":"variable | hash_add_key","platformOS":true,"name":"hash_add_key","aliases":["add_hash_key","assign_to_hash_key"],"arity":{"min":3,"max":3},"parameters":[{"description":"hash to add the key to","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to add; usually a string, but any value can be a key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"value to store under the key","name":"value","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"object","name":"","description":"hash with added key","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign accountants = \"Angela,Kevin,Oscar\" | split: \",\"\n  assign management = \"David,Jan,Michael\" | split: \",\"\n  assign company = {}\n  assign company = company | hash_add_key: \"name\", \"Dunder Mifflin\"\n  assign company = company | hash_add_key: \"accountants\", accountants\n  assign company = company | hash_add_key: \"management\", management\n%}\n{{ company }} =\u003e {\"name\" =\u003e \"Dunder Mifflin\", \"accountants\" =\u003e [\"Angela\", \"Kevin\", \"Oscar\"], \"management\" =\u003e [\"David\", \"Jan\", \"Michael\"]}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes the given key from the hash and returns the value it held","summary":"Removes the given key from the hash and returns the value it held","syntax":"variable | hash_delete_key","platformOS":true,"name":"hash_delete_key","aliases":["delete_hash_key","remove_hash_key"],"arity":{"min":2,"max":2},"parameters":[{"description":"hash to remove the key from","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to remove","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"untyped","name":"","description":"value which was assigned to a deleted key. If the key did not exist in the first place, null is returned.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign hash = '{ \"a\": \"1\", \"b\": \"2\"}' | parse_json\n  assign a_value = hash | hash_delete_key: \"a\"\n%}\n{{ a_value }} =\u003e \"1\"\n{{ hash }} =\u003e { \"b\": \"2\" }","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Generates a list of additions (+), deletions (-) and changes (~) from given two ojects.","summary":"Generates a list of additions (+), deletions (-) and changes (~) from given two ojects.","syntax":"variable | hash_diff","platformOS":true,"name":"hash_diff","aliases":[],"arity":{"min":2,"max":3},"named_parameters_exhaustive":false,"parameters":[{"description":"hash to compare from","name":"hash1","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"hash to compare to","name":"hash2","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"optional options forwarded to the underlying diff (e.g. similarity)","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"How alike two array elements must be to count as changed rather than added and removed (defaults to 0.8)","name":"similarity","required":false,"variadic":false,"default":"","positional":false,"types":["number"]},{"description":"Compares values of different types as unequal, so 1 and 1.0 differ (defaults to true)","name":"strict","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Treats a string key and a symbol key as the same key (defaults to false)","name":"indifferent","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Strips whitespace from string values before comparing them (defaults to false)","name":"strip","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Compares string values ignoring case (defaults to false)","name":"case_insensitive","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Treats two numbers within this distance of each other as equal","name":"numeric_tolerance","required":false,"variadic":false,"default":"","positional":false,"types":["number"]},{"description":"Separates the segments of the reported key path (defaults to \".\")","name":"delimiter","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Keys to leave out of the comparison entirely","name":"ignore_keys","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Reports each key path as an array of segments instead of one joined string (defaults to false)","name":"array_path","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Matches array elements with a longest-common-subsequence pass (defaults to true)","name":"use_lcs","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"array","name":"","description":"array containg the difference between two hashes","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign a = '{ \"a\": 1, \"c\": \"5 \", \"d\": 6, \"e\": { \"f\": 5.12 } }' | parse_json\n  assign b = '{ \"b\": 2, \"c\": \"5\",  \"d\": 5, \"e\": { \"f\": 5.13 } }' | parse_json\n%}\n{{ a | hash_diff: b }} =\u003e [[\"-\",\"a\",1],[\"~\",\"c\",\"5 \",\"5\"],[\"~\",\"d\",6,5],[\"~\",\"e.f\",5.12,5.13],[\"+\",\"b\",2]]\n{{ a | hash_diff: b, strip: true }}  =\u003e [[\"-\",\"a\",1],[\"~\",\"d\",6,5],[\"~\",\"e.f\",5.12,5.13],[\"+\",\"b\",2]]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Extracts a nested value by following the given sequence of keys","summary":"Extracts a nested value by following the given sequence of keys","syntax":"variable | hash_dig","platformOS":true,"name":"hash_dig","aliases":["dig"],"arity":{"min":1,"max":null},"parameters":[{"description":"hash to traverse","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"comma separated sequence of keys to dig down the hash; a key is a string, or a whole\nnumber where the value being stepped into is an array — `hash_dig: 'images', 0, 'url'`","name":"keys","required":false,"variadic":true,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"untyped","name":"","description":"Extracted nested value specified by the sequence of keys by calling dig at each step,\nreturning null if any intermediate step is null.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign user_json = { \"name\": { \"first\": \"John\", \"last\": \"Doe\" } } %}\n{{ user_json | hash_dig: \"name\", \"first\" }} =\u003e John","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the hash without the given keys","summary":"Returns the hash without the given keys","syntax":"variable | hash_except","platformOS":true,"name":"hash_except","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"input hash","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"array of keys that should be removed","name":"except","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"object","name":"","description":"","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign data = null | hash_merge: foo: 'fooval', bar: 'barval', baz: 'bazval'\n%}\n{% assign exc = 'foo,baz' | split: ',' %}\n{{ data | hash_except: exc }} =\u003e { \"bar\": \"barval\" }","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"use [hash_dig](#hash_dig) filter","deprecation_replacement":"hash_dig","description":"Reads a single key from the hash","summary":"Reads a single key from the hash","syntax":"variable | hash_fetch","platformOS":true,"name":"hash_fetch","aliases":["fetch"],"arity":{"min":2,"max":2},"parameters":[{"description":"input hash to be traversed","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to be fetched from hash branch","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"untyped","name":"","description":"","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign users = [{ \"name\": \"Jane\" }, { \"name\": \"Bob\" }] %}\n{{ users | first | hash_fetch: \"name\" }} =\u003e Jane","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the hash's keys","summary":"Returns the hash's keys","syntax":"variable | hash_keys","platformOS":true,"name":"hash_keys","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input hash","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign data = null | hash_merge: foo: 'fooval', bar: 'barval'\n%}\n\n{{ data | hash_keys }} =\u003e [\"foo\", \"bar\"]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Merges two hashes; where both define a key, the second hash wins","summary":"Merges two hashes; where both define a key, the second hash wins","syntax":"variable | hash_merge","platformOS":true,"name":"hash_merge","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"hash to merge into","name":"hash1","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"hash whose keys are merged in, overwriting duplicates","name":"hash2","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"object","name":"","description":"new hash containing the contents of hash1 and the contents of hash2.\nOn duplicated keys we keep value from hash2","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign a = '{\"a\": 1, \"b\": 2 }' | parse_json\n  assign b = '{\"b\": 3, \"c\": 4 }' | parse_json\n  assign new_hash = a | hash_merge: b\n%}\n{{ new_hash }} =\u003e { \"a\": 1, \"b\": 3, \"c\": 4 }","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign a = {\"a\": 1}\n  assign a = a | hash_merge: b: 2, c: 3\n%}\n{{ a }} =\u003e { \"a\": 1, \"b\": 2, \"c\": 3 }","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the hash with its keys sorted alphabetically","summary":"Returns the hash with its keys sorted alphabetically","syntax":"variable | hash_sort","platformOS":true,"name":"hash_sort","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"Hash to be sorted","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"object","name":"","description":"Sorted hash","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign hash1 = '{\"key2\": \"value2\", \"key1\": \"value1\"}' | parse_json %}\n{{ hash1 | hash_sort }} =\u003e {\"key1\": \"value1\", \"key2\": \"value2\"}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign hash1 = '{\"a\": 1, \"c\": 2, \"b\": 3}' | parse_json %}\n{{ hash1 | hash_sort }} =\u003e {\"a\": 1, \"b\": 3, \"c\": 2}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the hash's values","summary":"Returns the hash's values","syntax":"variable | hash_values","platformOS":true,"name":"hash_values","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input hash","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign data = null | hash_merge: foo: 'fooval', bar: 'barval'\n%}\n\n{{ data | hash_values }} =\u003e [\"fooval\", \"barval\"]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Verifies an hCaptcha challenge from the submitted params","summary":"Verifies an hCaptcha challenge from the submitted params","syntax":"variable | hcaptcha","platformOS":true,"name":"hcaptcha","aliases":[],"arity":{"min":1,"max":1},"named_parameters_exhaustive":false,"parameters":[{"description":"params sent to the server","name":"params","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"boolean","name":"","description":"whether the parameters are valid hcaptcha verification parameters","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ context.params | hcaptcha }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Derives key material from input key material, using HKDF","summary":"Derives key material from input key material, using HKDF","syntax":"string | hkdf","platformOS":true,"name":"hkdf","aliases":[],"arity":{"min":1,"max":5},"parameters":[{"description":"input keying material - raw bytes, e.g. the output of +ecdh_compute+","name":"ikm","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"optional salt value (a non-secret random value); defaults to an empty string,\nwhich per RFC 5869 is equivalent to a string of HashLen zero bytes","name":"salt","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]},{"description":"optional context and application specific information; defaults to an empty\nstring","name":"info","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]},{"description":"the desired output length in octets; defaults to 32 (the digest size of\nSHA-256). Must be less than or equal to 255 * HashLen (per RFC 5869)","name":"length","required":false,"variadic":false,"default":"32","positional":true,"types":["number"]},{"description":"the underlying hash algorithm; defaults to 'sha256' (matching RFC\n8291's use of HKDF-SHA256). Any digest supported by OpenSSL::Digest can be used","name":"hash_algorithm","required":false,"variadic":false,"default":"'sha256'","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"the output keying material (OKM), raw bytes, derived via HKDF (HMAC-based\nExtract-and-Expand Key Derivation Function, RFC 5869), combining the Extract and Expand steps in a\nsingle call. Useful together with +ecdh_compute+ to implement Web Push message encryption\n(RFC 8291), or any other HKDF-based scheme, entirely from Liquid.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"RFC 5869 Appendix A.1, Test Case 1 (SHA-256, basic):\n{% assign okm = ikm | hkdf: salt, info, 42, 'sha256' %}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Web Push (RFC 8291) - deriving a Content Encryption Key from an intermediate key and a random salt:\n{% assign cek = ikm | hkdf: salt, cek_info, 16 %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Marks the string as safe to render as HTML, so its tags are not escaped","summary":"Marks the string as safe to render as HTML, so its tags are not escaped","syntax":"string | html_safe","platformOS":true,"name":"html_safe","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"text to render as HTML","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"set raw_text to true to stop it from unescaping HTML entities","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Marks the string as safe as written instead of unescaping HTML entities first (defaults to false)","name":"raw_text","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"string that can be rendered with all HTML tags, by default all variables are escaped.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003ch1\u003eHello\u003c/h1\u003e' }} =\u003e '\u0026lt;h1\u0026gt;Hello\u0026lt;/h1\u003e\u0026gt;'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003ch1\u003eHello\u003c/h1\u003e' | html_safe }} =\u003e '\u003ch1\u003eHello\u003c/h1\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003cscript\u003ealert(\"Hello\")\u003c/script\u003e' }} =\u003e \u003cscript\u003ealert(\"Hello\")\u003c/script\u003e - this will just print text in the source code of the page","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003cscript\u003ealert(\"Hello\")\u003c/script\u003e' | html_safe }} =\u003e \u003cscript\u003ealert(\"Hello\")\u003c/script\u003e - this script will be evaluated when a user enters the page","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'abc \u0026quot; def' | html_safe: raw_text: true }} =\u003e 'abc \u0026quot; def'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'abc \u0026quot; def' | html_safe: raw_text: false }} =\u003e 'abc \" def'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts HTML into plain text","summary":"Converts HTML into plain text","syntax":"string | html_to_text","platformOS":true,"name":"html_to_text","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"html to be converted to text","name":"html","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"optional. Default root_element: null, remove_nodes: 'script, link, style', replace_newline: ' '","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"css selector of node which content should be returned, default is null","name":"root_element","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"CSS selector of nodes that should be ignored, default is 'script, link, style'","name":"remove_nodes","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"specifies a character to be used to replace newlines, default is ' ' (new lines will be converted to\nspace)","name":"replace_newline","required":false,"variadic":false,"default":"","positional":false,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"text without any html tags","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003ch1\u003eHello \u003ca href=\"#\"\u003eworld\u003c/a\u003e\u003c/h1\u003e' | html_to_text }} =\u003e Hello world","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Turns a machine-readable key into a human-readable string","summary":"Turns a machine-readable key into a human-readable string","syntax":"string | humanize","platformOS":true,"name":"humanize","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input string to be transformed","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"a human readable string derived from the input; capitalizes the first word, turns\nunderscores into spaces, and strips a trailing '_id' if present. Used for creating a formatted output (e.g. by replacing underscores with spaces, capitalizing the first word, etc.).","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'car_model' | humanize }} =\u003e 'Car model'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'customer_id' | humanize }} =\u003e 'Customer'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_in_groups_of`, kept for backwards compatibility.","deprecation_replacement":"array_in_groups_of","description":"Transforms array in array of arrays, each subarray containing exactly N elements","summary":"Transforms array in array of arrays, each subarray containing exactly N elements","syntax":"array | in_groups_of","platformOS":true,"name":"in_groups_of","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to be split into groups","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"the size of each group the array is to be split into; must be a whole number","name":"number_of_elements","required":true,"variadic":false,"default":"","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the original array split into groups of the size\nspecified by the second parameter (an array of arrays)","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign elements = '1,2,3,4' | split: ',' %}\n{{ elements | array_in_groups_of: 3 }} =\u003e [[1, 2, 3], [4, null, null]]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_intersect`, kept for backwards compatibility.","deprecation_replacement":"array_intersect","description":"Returns the elements present in both arrays","summary":"Returns the elements present in both arrays","syntax":"array | intersection","platformOS":true,"name":"intersection","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array of objects to be processed","name":"other_array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"that exists in both arrays","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign array = '1,2,3,4' | split: ','\n  assign other_array = '3,4,5,6' | split: ','\n%}\n\n{{ array | array_intersect: other_array }} =\u003e [3,4]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the first time is earlier than the second","summary":"Checks whether the first time is earlier than the second","syntax":"string | is_date_before","platformOS":true,"name":"is_date_before","aliases":["date_before"],"arity":{"min":2,"max":2},"parameters":[{"description":"time to compare to the second parameter; a number is read as whole\nseconds since the epoch","name":"first_time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"time against which the first parameter is compared to","name":"second_time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]}],"return_type":[{"type":"boolean","name":"","description":"returns true if the first time is lower than the second time","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-02' | date_before: '2010-01-03' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '6 months ago' | date_before: '2010-01-03' }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1 day ago' | date_before: 'now' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the time is in the past","summary":"Checks whether the time is in the past","syntax":"string | is_date_in_past","platformOS":true,"name":"is_date_in_past","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"time object, can also be a string; a number is read as whole seconds\nsince the epoch","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]}],"return_type":[{"type":"boolean","name":"","description":"true if time passed is in the past, false otherwise","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-01' | is_date_in_past }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '3000-01-01' | is_date_in_past }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the string is a valid email address","summary":"Checks whether the string is a valid email address","syntax":"string | is_email_valid","platformOS":true,"name":"is_email_valid","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"String containing potentially valid email","name":"email","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"boolean","name":"","description":"whether or not the argument is a valid email","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign valid = 'john@example.com' | is_email_valid %}\nvalid =\u003e true\n\n{% assign valid = 'john@' | is_email_valid %}\nvalid =\u003e false","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks if a given string is a valid GPG key","summary":"Checks if a given string is a valid GPG key","syntax":"string | is_gpg_valid","platformOS":true,"name":"is_gpg_valid","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"key to be checked for validity\n{% assign valid_gpg = \"...\" | is_gpg_valid %}\n{{ result }} =\u003e false","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"boolean","name":"","description":"whether the input value is a valid GPG key or not","array_value":""}],"examples":[]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_include`, kept for backwards compatibility. `array_include` is deprecated too — use `array_any` instead.","deprecation_replacement":"array_any","description":"Checks if array includes element","summary":"Checks if array includes element","syntax":"array | is_included_in_array","platformOS":true,"name":"is_included_in_array","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array of elements to look into","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"look for this element inside the array","name":"el","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"whether the array includes the element given","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign elements = 'a,b,c,d' | split: ',' %}\n{{ elements | array_include: 'c' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the string is valid JSON","summary":"Checks whether the string is valid JSON","syntax":"variable | is_json_valid","platformOS":true,"name":"is_json_valid","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"String containing potentially valid JSON; any other type is simply not valid JSON, so the\nanswer is false rather than an error","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"whether or not the argument is a valid JSON","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign valid = '{ \"name\": \"foo\", \"bar\": {} }' | is_json_valid %}\nvalid =\u003e true\n\n{% assign valid = '{ \"foo\" }' | is_json_valid %}\nvalid =\u003e false","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the value can be parsed as a date","summary":"Checks whether the value can be parsed as a date","syntax":"variable | is_parsable_date","platformOS":true,"name":"is_parsable_date","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"object that can be a date","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"whether the parameter can be parsed as a date","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2021/2' | is_parsable_date }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Temporary token is valid for desired number of hours (by default 48), which you can use to authorize the user in third party application. To do it, include it in a header with name UserTemporaryToken. Token will be invalidated on password change.","summary":"Temporary token is valid for desired number of hours (by default 48), which you can use to authorize the user in third party application. To do it, include it in a header with name UserTemporaryToken. Token will be invalidated on password change.","syntax":"string | is_token_valid","platformOS":true,"name":"is_token_valid","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"encrypted token generated via the temporary_token GraphQL property","name":"token","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"id of the user who generated the token; a whole number, or a string holding one","name":"user_id","required":true,"variadic":false,"default":"","positional":true,"types":["number","string"]}],"return_type":[{"type":"boolean","name":"","description":"returns true if the token has not expired and was generated for the given user, false otherwise","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign token = '1234' %}\n{{ token | is_token_valid: context.current_user.id }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Combines all of the items in an array into a single string, separated by a space","summary":"Combines all of the items in an array into a single string, separated by a space","syntax":"variable | join","name":"join","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"string inserted between the items; defaults to a single space","name":"glue","required":false,"variadic":false,"default":"' '","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the items joined into one string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.all_tags | join }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.all_tags | join: ', ' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Serializes the value as JSON","summary":"Serializes the value as JSON","syntax":"variable | json","platformOS":true,"name":"json","aliases":["to_json"],"arity":{"min":1,"max":1},"parameters":[{"description":"object you want a JSON representation of","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"JSON formatted string containing a representation of object.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ user | json }} =\u003e {\"name\":\"Mike\",\"email\":\"mike@mail.com\"}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Encrypts a JSON payload as a JWE token","summary":"Encrypts a JSON payload as a JWE token","syntax":"string | jwe_encode","platformOS":true,"name":"jwe_encode","aliases":["jwe_encode_rc"],"arity":{"min":4,"max":4},"parameters":[{"description":"JSON body string that will be encypted","name":"json","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"Public key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"Key Management Algorithm used to encrypt, or to determine the value of, the Content Encryption Key\nValid options:\n  Single Asymmetric Public/Private Key Pair\n      RSA1_5\n      RSA-OAEP\n      RSA-OAEP-256\n  Two Asymmetric Public/Private Key Pairs with Key Agreement\n      ECDH-ES\n      ECDH-ES+A128KW\n      ECDH-ES+A192KW\n      ECDH-ES+A256KW\n  Symmetric Password Based Key Derivation\n      PBES2-HS256+A128KW\n      PBES2-HS384+A192KW\n      PBES2-HS512+A256KW\n  Symmetric Key Wrap\n      A128GCMKW\n      A192GCMKW\n      A256GCMKW\n      A128KW\n      A192KW\n      A256KW\n  Symmetric Direct Key (known to both sides)\n      dir","name":"alg","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"Encryption Algorithm used to perform authenticated encryption on the plain text, using the Content Encryption Key\nValid options:\n  A128CBC-HS256\n  A192CBC-HS384\n  A256CBC-HS512\n  A128GCM\n  A192GCM\n  A256GCM","name":"enc","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"","array_value":""}],"examples":[]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `jwe_encode`, kept for backwards compatibility.","deprecation_replacement":"jwe_encode","description":"Encrypts a JSON payload as a JWE token","summary":"Encrypts a JSON payload as a JWE token","syntax":"string | jwe_encode_rc","platformOS":true,"name":"jwe_encode_rc","aliases":[],"arity":{"min":4,"max":4},"parameters":[{"description":"JSON body string that will be encypted","name":"json","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"Public key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"Key Management Algorithm used to encrypt, or to determine the value of, the Content Encryption Key\nValid options:\n  Single Asymmetric Public/Private Key Pair\n      RSA1_5\n      RSA-OAEP\n      RSA-OAEP-256\n  Two Asymmetric Public/Private Key Pairs with Key Agreement\n      ECDH-ES\n      ECDH-ES+A128KW\n      ECDH-ES+A192KW\n      ECDH-ES+A256KW\n  Symmetric Password Based Key Derivation\n      PBES2-HS256+A128KW\n      PBES2-HS384+A192KW\n      PBES2-HS512+A256KW\n  Symmetric Key Wrap\n      A128GCMKW\n      A192GCMKW\n      A256GCMKW\n      A128KW\n      A192KW\n      A256KW\n  Symmetric Direct Key (known to both sides)\n      dir","name":"alg","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"Encryption Algorithm used to perform authenticated encryption on the plain text, using the Content Encryption Key\nValid options:\n  A128CBC-HS256\n  A192CBC-HS384\n  A256CBC-HS512\n  A128GCM\n  A192GCM\n  A256GCM","name":"enc","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"","array_value":""}],"examples":[]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Decodes a JWT and verifies its signature","summary":"Decodes a JWT and verifies its signature","syntax":"string | jwt_decode","platformOS":true,"name":"jwt_decode","aliases":[],"arity":{"min":2,"max":5},"parameters":[{"description":"encoded JWT token you want to decode","name":"encoded_token","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"the algorithm that was used to encode the token","name":"algorithm","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"either a shared secret or a PUBLIC key for RSA","name":"secret","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]},{"description":"default true, for testing and debugging can remove verifying the signature","name":"verify_signature","required":false,"variadic":false,"default":"true","positional":true,"types":["boolean"]},{"description":"JWK is a structure representing a cryptographic key. Currently only supports RSA public keys.\nValid options:\n  none - unsigned token\n  HS256 - SHA-256 hash algorithm\n  HS384 - SHA-384 hash algorithm\n  HS512 - SHA-512 hash algorithm\n  RS256 - RSA using SHA-256 hash algorithm\n  RS384 - RSA using SHA-384 hash algorithm\n  RS512 - RSA using SHA-512 hash algorithm","name":"jwks","required":false,"variadic":false,"default":"nil","positional":true,"types":["object"]}],"return_type":[{"type":"untyped","name":"","description":"result of decoding JWT token","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign original_payload = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXkiOiJ2YWx1ZSIsImFub3RoZXJfa2V5IjoiYW5vdGhlciB2YWx1ZSJ9.XT8sHXyPTA9DoHzssXh1q6Uv2D1ENosW0F3Ixle85L0' | jwt_decode: 'HS256', 'this-is-secret'  %} =\u003e\n[\n  {\n    \"key\" =\u003e \"value\",\n    \"another_key\" =\u003e \"another value\"\n  },\n  {\n    \"typ\" =\u003e \"JWT\",\n    \"alg\" =\u003e \"HS256\"\n  }\n]","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"RSA:\n{% capture public_key %}\n-----BEGIN PUBLIC KEY-----\nMIIBI...\n-----END PUBLIC KEY-----\n{% endcapture %}\n{% assign original_payload = 'some encoded token' | jwt_decode: 'RS256', public_key %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Encodes a payload as a signed JWT","summary":"Encodes a payload as a signed JWT","syntax":"variable | jwt_encode","platformOS":true,"name":"jwt_encode","aliases":[],"arity":{"min":2,"max":4},"named_parameters_exhaustive":false,"parameters":[{"description":"payload or message you want to encrypt","name":"payload","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"algorithm you want to use for encryption","name":"algorithm","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"either a shared secret or a private key for RSA","name":"secret","required":false,"variadic":false,"default":"nil","positional":true,"types":["string"]},{"description":"optional hash of custom headers to be added to default { \"typ\": \"JWT\", \"alg\": \"[algorithm]\" }","name":"header_fields","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"string","name":"","description":"JWT token encrypted using the algorithm of your choice","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign payload = { \"key\": \"value\", \"another_key\": \"another value\" } %}\n{{ payload | jwt_encode: 'HS256', 'this-is-secret' }} =\u003e eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXkiOiJ2YWx1ZSIsImFub3RoZXJfa2V5IjoiYW5vdGhlciB2YWx1ZSJ9.XT8sHXyPTA9DoHzssXh1q6Uv2D1ENosW0F3Ixle85L0","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign payload = { \"key\": \"value\", \"another_key\": \"another value\" } %}\n{% assign headers = { \"cty\": \"custom\" } %}\n{{ payload | jwt_encode: 'HS256', 'this-is-secret', headers }} =\u003e eyJjdHkiOiJjdXN0b20iLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJrZXkiOiJ2YWx1ZSIsImFub3RoZXJfa2V5IjoiYW5vdGhlciB2YWx1ZSJ9.DHizgDTArO7RpQE3124ufD9oirmQwrlftpxBwc9wGGA","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"RSA:\n{% capture private_key %}\n-----BEGIN RSA PRIVATE KEY-----\nMIIEpA...\n-----END RSA PRIVATE KEY-----\n{% endcapture %}\n{% assign jwt_token = payload | jwt_encode: 'RS256', private_key  %}\n{% comment %} Please note that storing private key as a plain text in a code is not a good idea. We suggest you\n              provide the key via Partner Portal and use context.constants.\u003cname of private key constant\u003e instead.{% endcomment %}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"VAPID (RFC 8292) - EC keys are commonly generated outside the app (e.g. via the `web-push` CLI) and\ndistributed as a raw, Base64url-encoded private key scalar rather than PEM; that format is accepted\ndirectly for ES256/ES384/ES512:\n{% assign claims = '{\"aud\": \"https://push-service.example.com\", \"exp\": 1700000000, \"sub\": \"mailto:admin@example.com\"}' | parse_json %}\n{% assign vapid_jwt = claims | jwt_encode: 'ES256', vapid_private_key %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Formats a time using a named format taken from the translations","summary":"Formats a time using a named format taken from the translations","syntax":"string | l","platformOS":true,"name":"l","aliases":["localize"],"arity":{"min":1,"max":3},"parameters":[{"description":"parsable time object to be formatted; a number is read as whole seconds\nsince the epoch, so a fractional one is refused","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"the format to be used for formatting the time; default is 'long'; other values can be used:\nthey are taken from translations, keys are of the form 'time.formats.#!{format_name}'","name":"format","required":false,"variadic":false,"default":"'long'","positional":true,"types":["string"]},{"description":"the time zone to be used for time — a zone name, or a number read as its UTC offset\nin hours (in seconds when the magnitude is above 13)","name":"zone","required":false,"variadic":false,"default":"nil","positional":true,"types":["string","number"]}],"return_type":[{"type":"string","name":"","description":"formatted representation of the passed parsable time, or nil","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-01' | l }} =\u003e Fri, Jan 1, 2010 at 12:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'in 14 days' | strftime: '%B %d, %Y', '', '2011-03-01' }} =\u003e March 15, 2011","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the last item in an array","summary":"Returns the last item in an array","syntax":"variable | last","name":"last","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"array to process","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"untyped","name":"","description":"the last item of the array","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign last_product = collection.products | last -%}\n\n{{ last_product.title }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.products.last.title }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_limit`, kept for backwards compatibility.","deprecation_replacement":"array_limit","description":"Returns at most the first N elements of the array","summary":"Returns at most the first N elements of the array","syntax":"array | limit","platformOS":true,"name":"limit","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to shrink","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"number of elements to be returned; must be a positive integer","name":"limit","required":true,"variadic":false,"default":"","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the first `limit` elements; [1,2,3,4] limited to 2 elements gives [1,2]","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"items =\u003e [{ id: 1, name: 'foo', label: 'Foo' }, { id: 2, name: 'bar', label: 'Bar' }]\n{{ items | array_limit: 1 }} =\u003e [{ id: 1, name: 'foo', label: 'Foo' }]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `l`, kept for backwards compatibility.","deprecation_replacement":"l","description":"Formats a time using a named format taken from the translations","summary":"Formats a time using a named format taken from the translations","syntax":"string | localize","platformOS":true,"name":"localize","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"parsable time object to be formatted; a number is read as whole seconds\nsince the epoch, so a fractional one is refused","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"the format to be used for formatting the time; default is 'long'; other values can be used:\nthey are taken from translations, keys are of the form 'time.formats.#!{format_name}'","name":"format","required":false,"variadic":false,"default":"'long'","positional":true,"types":["string"]},{"description":"the time zone to be used for time — a zone name, or a number read as its UTC offset\nin hours (in seconds when the magnitude is above 13)","name":"zone","required":false,"variadic":false,"default":"nil","positional":true,"types":["string","number"]}],"return_type":[{"type":"string","name":"","description":"formatted representation of the passed parsable time, or nil","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-01' | l }} =\u003e Fri, Jan 1, 2010 at 12:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'in 14 days' | strftime: '%B %d, %Y', '', '2011-03-01' }} =\u003e March 15, 2011","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Strips all whitespace from the left of a string","summary":"Strips all whitespace from the left of a string","syntax":"variable | lstrip","name":"lstrip","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input without leading whitespace","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign text = '  Some potions create whitespace.      ' -%}\n\n\"{{ text }}\"\n\"{{ text | lstrip }}\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Extracts the value of the given key from every object in the array","summary":"Extracts the value of the given key from every object in the array","syntax":"array | map","platformOS":true,"name":"map","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array of Hash to be processed. Nulls are skipped.","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"name of the hash key for which all values should be returned\nin array of objects","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"array","name":"","description":"array which includes all values for a given key","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign objects = '[{\"id\":1,\"name\":\"foo\",\"label\":\"Foo\"},{\"id\":2,\"name\":\"bar\",\"label\":\"Bar\"}]' | parse_json %}\n{{ objects | map: 'name' }} =\u003e ['foo', 'bar']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_map`, kept for backwards compatibility.","deprecation_replacement":"array_map","description":"Extracts the values of the given keys from every object in the array","summary":"Extracts the values of the given keys from every object in the array","syntax":"array | map_attributes","platformOS":true,"name":"map_attributes","aliases":[],"arity":{"min":1,"max":null},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array of keys to be extracted; a key is a string for an array of hashes, or a whole\nnumber index for an array of arrays","name":"attributes","required":false,"variadic":true,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"array of arrays with values for given keys","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ items }} =\u003e [{ id: 1, name: 'foo', label: 'Foo' }, { id: 2, name: 'bar', label: 'Bar' }]\n{{ items | array_map: 'id', 'name' }} =\u003e [[1, 'foo'], [2, 'bar']]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts Markdown into sanitized HTML","summary":"Converts Markdown into sanitized HTML","syntax":"string | markdown","platformOS":true,"name":"markdown","aliases":["markdownify"],"arity":{"min":1,"max":3},"named_parameters_exhaustive":false,"parameters":[{"description":"text using markdown syntax","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"sanitizer configuration, as a hash or as a string containing a JSON object.\nReplaces the default configuration entirely; pass `nil` to keep it and override only parts of it through `extra_options`","name":"options","required":false,"variadic":false,"default":"SANITIZE_DEFAULT","positional":true,"types":["object","string"]},{"description":"the same configuration — a hash or a string containing a JSON object —\ndeep-merged over `options` rather than replacing it, so one element or attribute\ncan be changed without restating the rest. A key set to null removes it; a key set to an empty object empties it\nparam; pass nil for the options param to use the default options which extra_options could then override.\nUnlike `options`, null is not accepted here: pass an empty object to override nothing","name":"extra_options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object","string"]},{"description":"Element names to keep; everything else is unwrapped","name":"elements","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Attribute names to keep per element, e.g. `{ \"a\": [\"href\"] }`; the key `all` applies to every element","name":"attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"URL schemes to allow per element and attribute, e.g. `{ \"a\": { \"href\": [\"http\", \"https\"] } }`","name":"protocols","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Attributes to add per element, e.g. `{ \"a\": { \"rel\": \"nofollow\" } }`","name":"add_attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Elements whose contents are dropped along with the element itself","name":"remove_contents","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Keeps HTML comments instead of removing them (defaults to false)","name":"allow_comments","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"processed text with markdown syntax changed to sanitized HTML.\nWe allow only safe tags and attributes by default. We also automatically add `rel=nofollow` to links. Default configuration is:\n{\n  \"elements\": [\"a\",\"abbr\",\"b\",\"blockquote\",\"br\",\"cite\",\"code\",\"dd\",\"dfn\",\"dl\",\"dt\",\"em\",\"i\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"img\",\"kbd\",\"li\",\"mark\",\"ol\",\"p\",\"pre\",\"q\",\"s\",\"samp\",\"small\",\"strike\",\"strong\",\"sub\",\"sup\",\"time\",\"u\",\"ul\",\"var\"],\n  \"attributes\":{\n    \"a\": [\"href\"],\n    \"abbr\":[\"title\"],\n    \"blockquote\":[\"cite\"],\n    \"img\":[\"align\",\"alt\",\"border\",\"height\",\"src\",\"srcset\",\"width\"],\n    \"dfn\":[\"title\"],\n    \"q\":[\"cite\"],\n    \"time\":[\"datetime\",\"pubdate\"]\n  },\n  \"add_attributes\": { \"a\" : {\"rel\":\"nofollow\"} },\n  \"protocols\": {\n    \"a\":{\"href\":[\"ftp\",\"http\",\"https\",\"mailto\",\"relative\"]},\n    \"blockquote\": {\"cite\": [\"http\",\"https\",\"relative\"] },\n    \"q\": {\"cite\": [\"http\",\"https\",\"relative\"] },\n    \"img\": {\"src\": [\"http\",\"https\",\"relative\"] }\n  }\n}","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '**Foo**' | markdown }} =\u003e \u003cp\u003e\u003cstrong\u003eFoo\u003c/strong\u003e\u003c/p\u003e","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '# Foo' | markdown }}  =\u003e '\u003ch1\u003eFoo\u003c/h1\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Automatically add rel=nofollow to links\n{{ '[Foo link](https://example.com)' | markdown }}  =\u003e '\u003cp\u003e\u003ca href=\"https://example.com\" rel=\"nofollow\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003cb\u003eFoo\u003c/b\u003e' | markdown }}  =\u003e '\u003cb\u003eFoo\u003c/b\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Tags not enabled by default are removed\n{{ '\u003cdiv class=\"hello\" style=\"font-color: red; font-size: 99px;\"\u003eFoo\u003c/div\u003e' | markdown }}  =\u003e 'Foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Attributes not enabled by default are removed\n{% assign opts = '{ \"elements\": [ \"div\" ] }' %}\n{{ '\u003cdiv class=\"hello\" style=\"font-color: red; font-size: 99px;\"\u003eFoo\u003c/div\u003e' | markdown: opts }} =\u003e \u003cdiv\u003eFoo\u003c/div\u003e","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Specify custom tags with attributes\n{% assign opts = '{ \"elements\": [ \"div\" ], \"attributes\": { \"div\": [\"class\"] } }' %}\n{{ '\u003cdiv class=\"hello\" style=\"font-color: red; font-size: 99px;\"\u003eFoo\u003c/div\u003e' | markdown: opts }} =\u003e \u003cdiv class=\"hello\"\u003eFoo\u003c/div\u003e","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Using extra_options to override options\n{% assign link1 = '[Foo link](https://example.com)' | markdown: nil, '{ \"add_attributes\": { \"a\": { \"custom_attr\": \"custom_value\", \"rel\": null } } }' %}\n{{ link1 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\" custom_attr=\"custom_value\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e\n\n{% assign link2 = '[Foo link](https://example.com)' | markdown: nil, '{ \"add_attributes\": { \"a\": {} } }' %}\n{{ link2 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e\n\n{% assign link3 = '[Foo link](https://example.com)' | markdown: nil, '{ \"add_attributes\": { \"a\": { \"custom_attr\": \"custom_value\" } } }' %}\n{{ link3 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\" rel=\"nofollow\" custom_attr=\"custom_value\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e\n\n{% assign link4 = '[Foo link](https://example.com)' | markdown %}\n{{ link4 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\" rel=\"nofollow\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `markdown`, kept for backwards compatibility.","deprecation_replacement":"markdown","description":"Converts Markdown into sanitized HTML","summary":"Converts Markdown into sanitized HTML","syntax":"string | markdownify","platformOS":true,"name":"markdownify","aliases":[],"arity":{"min":1,"max":3},"named_parameters_exhaustive":false,"parameters":[{"description":"text using markdown syntax","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"sanitizer configuration, as a hash or as a string containing a JSON object.\nReplaces the default configuration entirely; pass `nil` to keep it and override only parts of it through `extra_options`","name":"options","required":false,"variadic":false,"default":"SANITIZE_DEFAULT","positional":true,"types":["object","string"]},{"description":"the same configuration — a hash or a string containing a JSON object —\ndeep-merged over `options` rather than replacing it, so one element or attribute\ncan be changed without restating the rest. A key set to null removes it; a key set to an empty object empties it\nparam; pass nil for the options param to use the default options which extra_options could then override.\nUnlike `options`, null is not accepted here: pass an empty object to override nothing","name":"extra_options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object","string"]},{"description":"Element names to keep; everything else is unwrapped","name":"elements","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Attribute names to keep per element, e.g. `{ \"a\": [\"href\"] }`; the key `all` applies to every element","name":"attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"URL schemes to allow per element and attribute, e.g. `{ \"a\": { \"href\": [\"http\", \"https\"] } }`","name":"protocols","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Attributes to add per element, e.g. `{ \"a\": { \"rel\": \"nofollow\" } }`","name":"add_attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Elements whose contents are dropped along with the element itself","name":"remove_contents","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Keeps HTML comments instead of removing them (defaults to false)","name":"allow_comments","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"processed text with markdown syntax changed to sanitized HTML.\nWe allow only safe tags and attributes by default. We also automatically add `rel=nofollow` to links. Default configuration is:\n{\n  \"elements\": [\"a\",\"abbr\",\"b\",\"blockquote\",\"br\",\"cite\",\"code\",\"dd\",\"dfn\",\"dl\",\"dt\",\"em\",\"i\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"img\",\"kbd\",\"li\",\"mark\",\"ol\",\"p\",\"pre\",\"q\",\"s\",\"samp\",\"small\",\"strike\",\"strong\",\"sub\",\"sup\",\"time\",\"u\",\"ul\",\"var\"],\n  \"attributes\":{\n    \"a\": [\"href\"],\n    \"abbr\":[\"title\"],\n    \"blockquote\":[\"cite\"],\n    \"img\":[\"align\",\"alt\",\"border\",\"height\",\"src\",\"srcset\",\"width\"],\n    \"dfn\":[\"title\"],\n    \"q\":[\"cite\"],\n    \"time\":[\"datetime\",\"pubdate\"]\n  },\n  \"add_attributes\": { \"a\" : {\"rel\":\"nofollow\"} },\n  \"protocols\": {\n    \"a\":{\"href\":[\"ftp\",\"http\",\"https\",\"mailto\",\"relative\"]},\n    \"blockquote\": {\"cite\": [\"http\",\"https\",\"relative\"] },\n    \"q\": {\"cite\": [\"http\",\"https\",\"relative\"] },\n    \"img\": {\"src\": [\"http\",\"https\",\"relative\"] }\n  }\n}","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '**Foo**' | markdown }} =\u003e \u003cp\u003e\u003cstrong\u003eFoo\u003c/strong\u003e\u003c/p\u003e","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '# Foo' | markdown }}  =\u003e '\u003ch1\u003eFoo\u003c/h1\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Automatically add rel=nofollow to links\n{{ '[Foo link](https://example.com)' | markdown }}  =\u003e '\u003cp\u003e\u003ca href=\"https://example.com\" rel=\"nofollow\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '\u003cb\u003eFoo\u003c/b\u003e' | markdown }}  =\u003e '\u003cb\u003eFoo\u003c/b\u003e'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Tags not enabled by default are removed\n{{ '\u003cdiv class=\"hello\" style=\"font-color: red; font-size: 99px;\"\u003eFoo\u003c/div\u003e' | markdown }}  =\u003e 'Foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Attributes not enabled by default are removed\n{% assign opts = '{ \"elements\": [ \"div\" ] }' %}\n{{ '\u003cdiv class=\"hello\" style=\"font-color: red; font-size: 99px;\"\u003eFoo\u003c/div\u003e' | markdown: opts }} =\u003e \u003cdiv\u003eFoo\u003c/div\u003e","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Specify custom tags with attributes\n{% assign opts = '{ \"elements\": [ \"div\" ], \"attributes\": { \"div\": [\"class\"] } }' %}\n{{ '\u003cdiv class=\"hello\" style=\"font-color: red; font-size: 99px;\"\u003eFoo\u003c/div\u003e' | markdown: opts }} =\u003e \u003cdiv class=\"hello\"\u003eFoo\u003c/div\u003e","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Using extra_options to override options\n{% assign link1 = '[Foo link](https://example.com)' | markdown: nil, '{ \"add_attributes\": { \"a\": { \"custom_attr\": \"custom_value\", \"rel\": null } } }' %}\n{{ link1 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\" custom_attr=\"custom_value\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e\n\n{% assign link2 = '[Foo link](https://example.com)' | markdown: nil, '{ \"add_attributes\": { \"a\": {} } }' %}\n{{ link2 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e\n\n{% assign link3 = '[Foo link](https://example.com)' | markdown: nil, '{ \"add_attributes\": { \"a\": { \"custom_attr\": \"custom_value\" } } }' %}\n{{ link3 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\" rel=\"nofollow\" custom_attr=\"custom_value\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e\n\n{% assign link4 = '[Foo link](https://example.com)' | markdown %}\n{{ link4 }} =\u003e \u003cp\u003e\u003ca href=\"https://example.com\" rel=\"nofollow\"\u003eFoo link\u003c/a\u003e\u003c/p\u003e","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the string matches the regular expression","summary":"Checks whether the string matches the regular expression","syntax":"string | matches","platformOS":true,"name":"matches","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"string to check against the regular expression","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"string representing a regular expression pattern against which","name":"regexp","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"can contain 'ixm'; i - ignore case, x - extended, m - multiline\nto match the first parameter","name":"options","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]}],"return_type":[{"type":"boolean","name":"","description":"whether the given string matches the given regular expression; returns null if","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'foo' | matches: '[a-z]' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Subtracts a given number from another number","summary":"Subtracts a given number from another number","syntax":"variable | minus","name":"minus","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"number to subtract","name":"operand","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the difference","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 4 | minus: 2 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the remainder of dividing a number by a given number","summary":"Returns the remainder of dividing a number by a given number","syntax":"variable | modulo","name":"modulo","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"number to divide by, returning the remainder","name":"operand","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the remainder","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 12 | modulo: 5 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"use built in `newline_to_br` filter","deprecation_replacement":"newline_to_br","description":"Replaces every newline in the input with an HTML `\u003cbr /\u003e` tag.","summary":"Replaces every newline in the input with an HTML `\u003cbr /\u003e` tag.","syntax":"variable | new_line_to_br","platformOS":true,"name":"new_line_to_br","aliases":["nl2br"],"arity":{"min":0,"max":1},"parameters":[{"description":"the text whose newlines should become line breaks; a non-string is stringified first","name":"html","required":false,"variadic":false,"default":"''","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with each newline replaced by a `\u003cbr /\u003e` tag","array_value":""}],"examples":[]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts newlines (`\\n`) in a string to HTML line breaks (`\u003cbr\u003e`)","summary":"Converts newlines (`\\n`) in a string to HTML line breaks (`\u003cbr\u003e`)","syntax":"variable | newline_to_br","name":"newline_to_br","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with each newline replaced by a line-break tag","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ product.description | newline_to_br }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `new_line_to_br`, kept for backwards compatibility. `new_line_to_br` is deprecated too — use `newline_to_br` instead.","deprecation_replacement":"newline_to_br","description":"Replaces every newline in the input with an HTML `\u003cbr /\u003e` tag.","summary":"Replaces every newline in the input with an HTML `\u003cbr /\u003e` tag.","syntax":"variable | nl2br","platformOS":true,"name":"nl2br","aliases":[],"arity":{"min":0,"max":1},"parameters":[{"description":"the text whose newlines should become line breaks; a non-string is stringified first","name":"html","required":false,"variadic":false,"default":"''","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with each newline replaced by a `\u003cbr /\u003e` tag","array_value":""}],"examples":[]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Pads the string from the left until it reaches the given length","summary":"Pads the string from the left until it reaches the given length","syntax":"variable | pad_left","platformOS":true,"name":"pad_left","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"string to pad; a non-string is stringified first","name":"str","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"minimum length of output string; must be a whole number","name":"count","required":true,"variadic":false,"default":"","positional":true,"types":["number"]},{"description":"string to pad with","name":"symbol","required":false,"variadic":false,"default":"' '","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"returns string padded from left to the length of count with the symbol character","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'foo' | pad_left: 5 }} =\u003e '  foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'Y' | pad_left: 3, 'X' }} =\u003e 'XXY'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Replaces special characters so the string can be used as part of a URL","summary":"Replaces special characters so the string can be used as part of a URL","syntax":"string | parameterize","platformOS":true,"name":"parameterize","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"input string to be 'parameterized'","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"string to be used as separator in the output string; default is '-'","name":"separator","required":false,"variadic":false,"default":"'-'","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"replaces special characters in a string so that it may be used as part of a 'pretty' URL;\nthe default separator used is '-';","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'John arrived_foo' | parameterize }} =\u003e 'john-arrived_foo'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Parses a CSV string into rows","summary":"Parses a CSV string into rows","syntax":"string | parse_csv","platformOS":true,"name":"parse_csv","aliases":["parse_csv_rc"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"CSV","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"parse csv options","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Returns [Array of Objects]","name":"convert_to_hash","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"array","name":"","description":"Array","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% capture csv %}name,description\nname-1,description-1\nname-2,description-2\n{% endcapture %}\n{{ csv | parse_csv }} =\u003e [[\"name\",\"description\"],[\"name-1\",\"description-1\"],[\"name-2\",\"description-2\"]]\n{{ csv | parse_csv: convert_to_hash: true }} =\u003e [{\"name\":\"name-1\",\"description\":\"description-1\"},{\"name\":\"name-2\",\"description\":\"description-2\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `parse_csv`, kept for backwards compatibility.","deprecation_replacement":"parse_csv","description":"Parses a CSV string into rows","summary":"Parses a CSV string into rows","syntax":"string | parse_csv_rc","platformOS":true,"name":"parse_csv_rc","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"CSV","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"parse csv options","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Returns [Array of Objects]","name":"convert_to_hash","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"array","name":"","description":"Array","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% capture csv %}name,description\nname-1,description-1\nname-2,description-2\n{% endcapture %}\n{{ csv | parse_csv }} =\u003e [[\"name\",\"description\"],[\"name-1\",\"description-1\"],[\"name-2\",\"description-2\"]]\n{{ csv | parse_csv: convert_to_hash: true }} =\u003e [{\"name\":\"name-1\",\"description\":\"description-1\"},{\"name\":\"name-2\",\"description\":\"description-2\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Write the JSON as a literal in {% assign %} instead — {% assign object = { \"name\": \"foo\" } %}","deprecation_replacement":"assign","description":"DEPRECATED: write the JSON as a literal in {% assign %}, which takes one directly and\nproduces the same Hash with no string in between.\n\nNote this is a REWRITE and not a rename: the quoted JSON becomes markup, and a value that\nwas interpolated into the string with the `json` filter becomes a plain expression.\n\nThe rewrite covers JSON written in the TEMPLATE, which is what this filter is mostly used\nfor. A JSON document that arrives at RUNTIME — an `api_call` response body, `download_file`\noutput — reaches Liquid as a string, and `{% assign %}` stores exactly the string it was\ngiven; this filter remains the only step that turns one into a Hash.\n\nPreviously parsed a JSON string into a hash or an array.","summary":"DEPRECATED: write the JSON as a literal in {% assign %}, which takes one directly and\nproduces the same Hash with no string in between.\n\nNote this is a REWRITE and not a rename: the quoted JSON becomes markup, and a value that\nwas interpolated into the string with the `json` filter becomes a plain expression.\n\nThe rewrite covers JSON written in the TEMPLATE, which is what this filter is mostly used\nfor. A JSON document that arrives at RUNTIME — an `api_call` response body, `download_file`\noutput — reaches Liquid as a string, and `{% assign %}` stores exactly the string it was\ngiven; this filter remains the only step that turns one into a Hash.\n\nPreviously parsed a JSON string into a hash or an array.","syntax":"variable | parse_json","platformOS":true,"name":"parse_json","aliases":["to_hash"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"JSON to parse — a string; a Hash or an Array is returned unchanged","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"set to raw_text true to stop it from unescaping HTML entities","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Parses the string as written instead of unescaping HTML entities first (defaults to false)","name":"raw_text","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"untyped","name":"","description":"Hash created based on JSON","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign object = '{ \"name\": \"foo\", \"bar\": {} }' | parse_json %}\n{% assign object = { \"name\": \"foo\", \"bar\": {} } %}\nBoth produce {\"name\" =\u003e \"foo\", \"bar\" =\u003e {}}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign name = \"foo\" %}\n{% assign object = '{ \"name\": {{ name | json }} }' | parse_json %}\n{% assign object = { \"name\": name } %}\nBoth produce {\"name\" =\u003e \"foo\"}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign body = 'https://example.com/data.json' | download_file\n  assign object = body | parse_json\n%}\n{{ object.name }} =\u003e 'foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign text = '{ \"name\": \"foo\", \"bar\": {} }'\n  assign object = text | parse_json\n%}\n{{ object.name }} =\u003e 'foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign text = '{ \"key\": \"abc \u0026amp; def\" }'\n  assign object = text | parse_json\n%}\n{{ object.key }} =\u003e abc \u0026 def","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% comment %}raw_text: true keeps HTML entities as written instead of unescaping them\nbefore the JSON is parsed.{% endcomment %}\n{% liquid\n  assign text = '{ \"key\": \"abc \u0026amp; def\" }'\n  assign object = text | parse_json: raw_text: true\n%}\n{{ object.key }} =\u003e abc \u0026amp; def","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Parses an XML string into a hash","summary":"Parses an XML string into a hash","syntax":"string | parse_xml","platformOS":true,"name":"parse_xml","aliases":["xml_to_hash"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"String containing valid XML","name":"xml","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"attr_prefix: use '@' for element attributes, force_array: always try to use arrays for child elements","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Reads an element's attributes under keys prefixed with '@', telling them apart from child\nelements of the same name (defaults to false)","name":"attr_prefix","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Wraps every child element in an array, whether or not it repeats (defaults to true)","name":"force_array","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"object","name":"","description":"Hash created based on XML","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign text = '\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003cletter\u003e\u003ctitle maxlength=\"10\"\u003e Quote Letter \u003c/title\u003e\u003c/letter\u003e'\n  assign object = text | parse_xml\n%}\n{{ object }} =\u003e '{\"letter\":[{\"title\":[{\"maxlength\":\"10\",\"content\":\" Quote Letter \"}]}]}'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Use either singular or plural version of a string, depending on provided count","summary":"Use either singular or plural version of a string, depending on provided count","syntax":"string | pluralize","platformOS":true,"name":"pluralize","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"string to be pluralized","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"optional whole number based on which string will be pluralized or singularized","name":"count","required":false,"variadic":false,"default":"2","positional":true,"types":["number"]}],"return_type":[{"type":"string","name":"","description":"pluralized version of the input string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'dog' | pluralize: 1 }} =\u003e 'dog'\n{{ 'dog' | pluralize: 2 }} =\u003e 'dogs'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Adds two numbers","summary":"Adds two numbers","syntax":"variable | plus","name":"plus","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"number to add","name":"operand","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the sum","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 2 | plus: 2 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Adds a given string to the beginning of a string","summary":"Adds a given string to the beginning of a string","syntax":"variable | prepend","name":"prepend","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"value to process; any value is stringified first","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"text to put in front of the input","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with the string in front of it","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign origin = request.origin -%}\n\n{{ product.url | prepend: origin }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_prepend`, kept for backwards compatibility.","deprecation_replacement":"array_prepend","description":"Inserts an element at the beginning of the array","summary":"Inserts an element at the beginning of the array","syntax":"array | prepend_to_array","platformOS":true,"name":"prepend_to_array","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array to which you prepend a new element","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"item you prepend to the array","name":"item","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"array to which you prepend the item given as the second parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign array = 'a,b,c' | split: ',' %}\n{{ array | array_prepend: 'd' }} =\u003e ['d', 'a', 'b', 'c']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Formats an amount as a price, with the currency symbol and thousands separators","summary":"Formats an amount as a price, with the currency symbol and thousands separators","syntax":"number | pricify","platformOS":true,"name":"pricify","aliases":[],"arity":{"min":1,"max":3},"named_parameters_exhaustive":false,"parameters":[{"description":"amount to be formatted; a string holding a number and a money object are accepted too","name":"amount","required":true,"variadic":false,"default":"","positional":true,"types":["number","string"]},{"description":"currency to be used for formatting; optional, defaults to 'USD'","name":"currency","required":false,"variadic":false,"default":"'USD'","positional":true,"types":["string"]},{"description":"optional Money formatting options; default no_cents_if_whole: true","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Prints the currency symbol (defaults to the instance's \"show currency symbol\" setting)","name":"symbol","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Appends the currency name (defaults to the instance's \"show currency name\" setting)","name":"with_currency","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Drops the decimal part when the amount is whole (defaults to the instance's setting)","name":"no_cents_if_whole","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Puts a negative sign before the currency symbol rather than after it (defaults to true)","name":"sign_before_symbol","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"formatted price using global price formatting rules","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 0 | pricify }} =\u003e $0","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify }} =\u003e $1","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1.20 | pricify }} =\u003e $1.20","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1000000 | pricify }} =\u003e $1,000,000","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify: \"PLN\" }} =\u003e 1 zł","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify: \"JPY\" }} =\u003e ¥1","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify: \"USD\", no_cents_if_whole: false }} =\u003e $1.00","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Adds currency symbol and proper commas. It is used to showing prices to people.","summary":"Adds currency symbol and proper commas. It is used to showing prices to people.","syntax":"number | pricify_cents","platformOS":true,"name":"pricify_cents","aliases":[],"arity":{"min":1,"max":3},"named_parameters_exhaustive":false,"parameters":[{"description":"amount in cents to be formatted; a string holding a number and a money object are accepted too","name":"amount","required":true,"variadic":false,"default":"","positional":true,"types":["number","string"]},{"description":"currency to be used for formatting","name":"currency","required":false,"variadic":false,"default":"'USD'","positional":true,"types":["string"]},{"description":"optional Money formatting options; default no_cents_if_whole: true","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Prints the currency symbol (defaults to the instance's \"show currency symbol\" setting)","name":"symbol","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Appends the currency name (defaults to the instance's \"show currency name\" setting)","name":"with_currency","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Drops the decimal part when the amount is whole (defaults to the instance's setting)","name":"no_cents_if_whole","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Puts a negative sign before the currency symbol rather than after it (defaults to true)","name":"sign_before_symbol","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"formatted price using the global price formatting rules","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify_cents }} =\u003e $0.01","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 100 | pricify_cents }} =\u003e $1","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1000000 | pricify_cents }} =\u003e $10,000","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify_cents: \"PLN\" }} =\u003e 0.01 zł","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 1 | pricify_cents: \"JPY\" }} =\u003e ¥1","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts a hash into a URL query string","summary":"Converts a hash into a URL query string","syntax":"variable | querify","platformOS":true,"name":"querify","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"hash to be \"querified\"","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]}],"return_type":[{"type":"string","name":"","description":"a query string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ hash }} =\u003e { 'name' =\u003e 'Dan', 'id' =\u003e 1 }","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ hash | querify }} =\u003e 'name=Dan\u0026id=1'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Generates a random alphanumeric string of the given length","summary":"Generates a random alphanumeric string of the given length","syntax":"number | random_string","platformOS":true,"name":"random_string","aliases":[],"arity":{"min":0,"max":1},"parameters":[{"description":"how many random characters should be included; must be a whole number, default is 12","name":"length","required":false,"variadic":false,"default":"12","positional":true,"types":["number"]}],"return_type":[{"type":"string","name":"","description":"returns a random alphanumeric string of given length","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 10 | random_string }} =\u003e '6a1ee2629'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"HTML-escapes the string, so its tags are shown as text instead of being rendered","summary":"HTML-escapes the string, so its tags are shown as text instead of being rendered","syntax":"variable | raw_escape_string","platformOS":true,"name":"raw_escape_string","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input string to be HTML-escaped; a non-string is stringified first","name":"value","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"HTML-escaped input string; returns a string with its HTML tags visible in\nthe browser","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'foo\u003cb\u003ebar\u003c/b\u003e' | raw_escape_string }} =\u003e foo\u0026lt;b\u0026gt;bar\u0026lt;/b\u0026gt;","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns every match of the regular expression in the string","summary":"Returns every match of the regular expression in the string","syntax":"variable | regex_matches","platformOS":true,"name":"regex_matches","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"string to search; a non-string is stringified first","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"regexp to use for matching","name":"regexp","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"can contain 'ixm'; i - ignore case, x - extended, m #   - multiline (e.g. 'ix', 'm', 'mi' etc.)","name":"options","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]}],"return_type":[{"type":"array","name":"","description":"matches for the expression in the string;\neach item in the array is an array containing all groups of matches; for example\nfor the regex (.)(.) and the text 'abcdef', the result will look like:\n[[\"a\", \"b\"], [\"c\", \"d\"], [\"e\", \"f\"]]","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"To retrieve the URL from a meta tag see the example below:\n\n{% liquid\n  assign text = '\u003chtml\u003e\u003chead\u003e\u003cmeta property=\"og:image\" content=\"http://somehost.com/someimage.jpg\" /\u003e\u003c/head\u003e\u003cbody\u003econtent\u003c/body\u003e\u003c/html\u003e' | html_safe\n  assign matches = text | regex_matches: '\u003cmeta\\s+property=\"og:image\"\\s+content=\"([^\"]+)\"'\n  if matches.size \u003e 0\n    assign image_path = matches[0][0]\n    echo image_path\n  endif\n%}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_reject`, kept for backwards compatibility.","deprecation_replacement":"array_reject","description":"Returns every element that does not match all the given field conditions","summary":"Returns every element that does not match all the given field conditions","syntax":"array | reject","platformOS":true,"name":"reject","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"with objects from collection that don't match provided conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"},{\"foo\":2,\"bar\":\"d\"}]\n{{ objects | array_reject: foo: 2 }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":3,\"bar\":\"c\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes any instance of a substring inside a string","summary":"Removes any instance of a substring inside a string","syntax":"variable | remove","name":"remove","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"substring to remove everywhere it occurs","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input without any occurrence of the substring","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ \"I can't do it!\" | remove: \"'t\" }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes the first instance of a substring inside a string","summary":"Removes the first instance of a substring inside a string","syntax":"variable | remove_first","name":"remove_first","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"substring to remove from its first occurrence only","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input without the first occurrence of the substring","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ \"I hate it when I accidentally spill my duplication potion accidentally!\" | remove_first: ' accidentally' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `hash_delete_key`, kept for backwards compatibility.","deprecation_replacement":"hash_delete_key","description":"Removes the given key from the hash and returns the value it held","summary":"Removes the given key from the hash and returns the value it held","syntax":"variable | remove_hash_key","platformOS":true,"name":"remove_hash_key","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"hash to remove the key from","name":"hash","required":true,"variadic":false,"default":"","positional":true,"types":["object"]},{"description":"key to remove","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"untyped","name":"","description":"value which was assigned to a deleted key. If the key did not exist in the first place, null is returned.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign hash = '{ \"a\": \"1\", \"b\": \"2\"}' | parse_json\n  assign a_value = hash | hash_delete_key: \"a\"\n%}\n{{ a_value }} =\u003e \"1\"\n{{ hash }} =\u003e { \"b\": \"2\" }","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes the last instance of a substring inside a string","summary":"Removes the last instance of a substring inside a string","syntax":"variable | remove_last","name":"remove_last","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the substring to look for","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input without the last occurrence of the substring","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'a-b-c-' | remove_last: '-' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Replaces any instance of a substring inside a string with a given string","summary":"Replaces any instance of a substring inside a string with a given string","syntax":"variable | replace","name":"replace","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"substring to look for","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"text to put in its place","name":"replacement","required":false,"variadic":false,"default":"''","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with every occurrence replaced","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ product.handle | replace: '-', ' ' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Replaces the first instance of a substring inside a string with a given string","summary":"Replaces the first instance of a substring inside a string with a given string","syntax":"variable | replace_first","name":"replace_first","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"substring to look for","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"text to put in place of the first occurrence","name":"replacement","required":false,"variadic":false,"default":"''","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with the first occurrence replaced","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ product.handle | replace_first: '-', ' ' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Replaces the last instance of a substring inside a string with a given string","summary":"Replaces the last instance of a substring inside a string with a given string","syntax":"variable | replace_last","name":"replace_last","aliases":[],"arity":{"min":3,"max":3},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the substring to look for","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the string to substitute in","name":"replacement","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with the last occurrence replaced","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'red, red, red' | replace_last: 'red', 'blue' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Replaces the parts of the string matching the regular expression","summary":"Replaces the parts of the string matching the regular expression","syntax":"string | replace_regex","platformOS":true,"name":"replace_regex","aliases":[],"arity":{"min":3,"max":5},"parameters":[{"description":"string to search and replace in","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"regexp to use for matching","name":"regexp","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"replacement text, or hash; if hash, keys in\nthe hash must be matched texts and values their replacements","name":"replacement","required":true,"variadic":false,"default":"","positional":true,"types":["string","object"]},{"description":"can contain 'ixm'; i - ignore case, x - extended, m #   - multiline (e.g. 'ix', 'm', 'mi' etc.)","name":"options","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]},{"description":"whether all occurrences should be replaced or just the first","name":"global","required":false,"variadic":false,"default":"true","positional":true,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"string with regexp pattern replaced by replacement text","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"Basic example:\n{{ \"fooooo fooo\" | replace_regex: 'o+', 'o' }} =\u003e \"fo fo\"","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Global set to false:\n{{ \"fooooo fooo\" | replace_regex: 'o+', 'o', '', false }} =\u003e \"fo fooo\"","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Hash replacement:\n{% liquid\n  assign hash = {}\n  assign hash = hash | hash_add_key: 'ooooo', 'bbbbb'\n  assign hash = hash | hash_add_key: 'ooo', 'ccc'\n  %}\n{{ \"fooooo fooo\" | replace_regex: 'o+', hash }} =\u003e \"fbbbbb fccc\"","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Using options, ignore case:\n{{ \"FOOOOO\" | replace_regex: 'o+', 'a', 'i' }} =\u003e \"Fa\"\n{{ \"FOOOOO\" | replace_regex: 'o+', 'a' }} =\u003e \"FOOOOO\"\nUsing options, extended mode (insert spaces, newlines, and comments in the pattern to make it more readable):\n{{ \"FOOOOO\" | replace_regex: 'o+ #comment', 'a', 'ix' }} =\u003e \"Fa\"\nUsing options, multiline (. matches newline):\n{% capture newLine %}\n{% endcapture %}\n{{ \"abc\" | append: newLine | append: \"def\" | append: newLine | append: \"ghi\" | replace_regex: '.+', 'a', 'im' }} =\u003e \"a\"","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"Matches group:\n{% assign array = \"item 1,item 2,item 3,item 4\" | split: \",\" %}\n{{ array | join: \", \" | replace_regex: \"([^,]+),([^,]+)$\", \"\\1, \u0026\\2\" }} =\u003e item 1, item 2, item 3, \u0026 item 4","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Reverses the order of the items in an array","summary":"Reverses the order of the items in an array","syntax":"variable | reverse","name":"reverse","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"array to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the items in reverse order","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"Original order:\n{{ collection.products | map: 'title' | join: ', ' }}\n\nReverse order:\n{{ collection.products | reverse | map: 'title' | join: ', ' }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.title | split: '' | reverse | join: '' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_rotate`, kept for backwards compatibility.","deprecation_replacement":"array_rotate","description":"Rotates the array left by the given number of positions","summary":"Rotates the array left by the given number of positions","syntax":"array | rotate","platformOS":true,"name":"rotate","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array to be rotated","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"number of times to rotate the input array; must be a whole number, optional, defaults to 1","name":"count","required":false,"variadic":false,"default":"1","positional":true,"types":["number"]}],"return_type":[{"type":"array","name":"","description":"the input array rotated by a number of times given as the second\nparameter; [1,2,3,4] rotated by 2 gives [3,4,1,2]","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign numbers = \"1,2,3\" | split: \",\" %}\n{{ numbers | array_rotate }} =\u003e [2,3,1]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Rounds a number to the nearest integer","summary":"Rounds a number to the nearest integer","syntax":"variable | round","name":"round","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"number of decimal places to keep; defaults to 0","name":"n","required":false,"variadic":false,"default":"0","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the rounded number","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 2.7 | round }}\n{{ 1.3 | round }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 3.14159 | round: 2 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Strips all whitespace from the right of a string","summary":"Strips all whitespace from the right of a string","syntax":"variable | rstrip","name":"rstrip","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input without trailing whitespace","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign text = '  Some potions create whitespace.      ' -%}\n\n\"{{ text }}\"\n\"{{ text | rstrip }}\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes the HTML elements and attributes that are not allowed","summary":"Removes the HTML elements and attributes that are not allowed","syntax":"string | sanitize","platformOS":true,"name":"sanitize","aliases":[],"arity":{"min":1,"max":3},"named_parameters_exhaustive":false,"parameters":[{"description":"potential malicious html, which you would like to sanitize","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"options to configure which elements and attributes are allowed, example:\n{ \"elements\": [\"a\", \"b\", \"h1\"], \"attributes\": { \"a\": [\"href\"] } }. A hash, or a string containing a JSON\nobject; an array is read as the deprecated `whitelist_tags` form, an array of element names","name":"options","required":false,"variadic":false,"default":"SANITIZE_DEFAULT","positional":true,"types":["object","string","array"]},{"description":"deprecated; do not use","name":"whitelist_tags","required":false,"variadic":false,"default":"nil","positional":true,"types":["array"]},{"description":"Element names to keep; everything else is unwrapped","name":"elements","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Attribute names to keep per element, e.g. `{ \"a\": [\"href\"] }`; the key `all` applies to every element","name":"attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"URL schemes to allow per element and attribute, e.g. `{ \"a\": { \"href\": [\"http\", \"https\"] } }`","name":"protocols","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Attributes to add per element, e.g. `{ \"a\": { \"rel\": \"nofollow\" } }`","name":"add_attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Elements whose contents are dropped along with the element itself","name":"remove_contents","required":false,"variadic":false,"default":"","positional":false,"types":["array"]},{"description":"Keeps HTML comments instead of removing them (defaults to false)","name":"allow_comments","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"Sanitizes HTML input. If you want to allow any HTML, use html_safe filter.\nBy default we allow only safe html tags and attributes. We also automatically add `rel=nofollow` to links. Default configuration is:\n{\n  \"elements\": [\"a\",\"abbr\",\"b\",\"blockquote\",\"br\",\"cite\",\"code\",\"dd\",\"dfn\",\"dl\",\"dt\",\"em\",\"i\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"img\",\"kbd\",\"li\",\"mark\",\"ol\",\"p\",\"pre\",\"q\",\"s\",\"samp\",\"small\",\"strike\",\"strong\",\"sub\",\"sup\",\"time\",\"u\",\"ul\",\"var\"],\n  \"attributes\":{\n    \"a\": [\"href\"],\n    \"abbr\":[\"title\"],\n    \"blockquote\":[\"cite\"],\n    \"img\":[\"align\",\"alt\",\"border\",\"height\",\"src\",\"srcset\",\"width\"],\n    \"dfn\":[\"title\"],\n    \"q\":[\"cite\"],\n    \"time\":[\"datetime\",\"pubdate\"]\n  },\n  \"add_attributes\": { \"a\" : {\"rel\":\"nofollow\"} },\n  \"protocols\": {\n    \"a\":{\"href\":[\"ftp\",\"http\",\"https\",\"mailto\",\"relative\"]},\n    \"blockquote\": {\"cite\": [\"http\",\"https\",\"relative\"] },\n    \"q\": {\"cite\": [\"http\",\"https\",\"relative\"] },\n    \"img\": {\"src\": [\"http\",\"https\",\"relative\"] }\n  }\n}","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% capture link %}\n  \u003ca href=\"javascript:prompt(1)\"\u003eLink\u003c/a\u003e\n{% endcapture %}\n{{ link | sanitize }} =\u003e \u003ca href=\"\"\u003eLink\u003c/a\u003e\n{% assign whitelist_attributes = 'target' | split: '|' %}\n{{ link | sanitize: whitelist_attributes }} =\u003e \u003ca href=\"\"\u003eLink\u003c/a\u003e","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Scrubs invalid characters and sequences from the input string, in the given encoding (by default UTF-8)","summary":"Scrubs invalid characters and sequences from the input string, in the given encoding (by default UTF-8)","syntax":"variable | scrub","platformOS":true,"name":"scrub","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"string to be scrubbed; a non-string is stringified first","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"encoding of the input string, default UTF-8","name":"source_encoding","required":false,"variadic":false,"default":"\"UTF-8\"","positional":true,"types":["string"]},{"description":"encoding of the output string, default UTF-8","name":"final_encoding","required":false,"variadic":false,"default":"\"UTF-8\"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"Returns a string scrubbed of invalid characters and sequences; to be used when data is coming from external sources like APIs\netc.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign scrubbed = \"Hello W�orld\" | scrub %}\n{{ scrubbed }} =\u003e \"Hello World\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_select`, kept for backwards compatibility.","deprecation_replacement":"array_select","description":"Returns every element matching all the given field conditions","summary":"Returns every element matching all the given field conditions","syntax":"array | select","platformOS":true,"name":"select","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of objects to be processed","name":"objects","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"hash with conditions { field_name: value }","name":"conditions","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"array","name":"","description":"with objects from collection that matches provided conditions","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ objects }} =\u003e [{\"foo\":1,\"bar\":\"a\"},{\"foo\":2,\"bar\":\"b\"},{\"foo\":3,\"bar\":\"c\"},{\"foo\":2,\"bar\":\"d\"}]\n{{ objects | array_select: foo: 2 }} =\u003e [{\"foo\":2,\"bar\":\"b\"},{\"foo\":2,\"bar\":\"d\"}]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"use [digest](#digest) filter","deprecation_replacement":"digest","description":"Returns the SHA1 digest of the string","summary":"Returns the SHA1 digest of the string","syntax":"string | sha1","platformOS":true,"name":"sha1","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input object that you want to obtain the digest for","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"SHA1 digest of the input object","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'foo' | sha1 }} =\u003e '0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_shuffle`, kept for backwards compatibility.","deprecation_replacement":"array_shuffle","description":"Returns the array with its elements in random order","summary":"Returns the array with its elements in random order","syntax":"array | shuffle_array","platformOS":true,"name":"shuffle_array","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"array with shuffled items","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ items }} =\u003e [1, 2, 3, 4]\n{{ items | array_shuffle }} =\u003e [3, 2, 4, 1]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the size of a string or array. The size of a string is the number of characters that the\nstring includes. The size of an array is the number of items in the array.","summary":"Returns the size of a string or array. The size of a string is the number of characters that the\nstring includes. The size of an array is the number of items in the array.","syntax":"variable | size","name":"size","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"value to measure","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the number of characters, items or pairs","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.title | size }}\n{{ collection.products | size }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% if collection.products.size \u0026gt;= 10 %}\n  There are 10 or more products in this collection.\n{% else %}\n  There are less than 10 products in this collection.\n{% endif %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns a substring or series of array items, starting at a given 0-based index. By default, the\nsubstring has a length of one character, and the array series has one array item. However, you\ncan provide a second parameter to specify the number of characters or array items.","summary":"Returns a substring or series of array items, starting at a given 0-based index. By default, the\nsubstring has a length of one character, and the array series has one array item. However, you\ncan provide a second parameter to specify the number of characters or array items.","syntax":"variable | slice","name":"slice","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"string or array to take from","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"zero-based position to start at; a negative value counts back from the\nend","name":"offset","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"how many characters or items to take; defaults to 1","name":"length","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"untyped","name":"","description":"the selected part of the input","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.title | slice: 0 }}\n{{ collection.title | slice: 0, 5 }}\n\n{{ collection.all_tags | slice: 1, 2 | join: ', ' }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ collection.title | slice: -3, 3 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts the string into a lowercase, dash-separated slug for use in a URL","summary":"Converts the string into a lowercase, dash-separated slug for use in a URL","syntax":"string | slugify","platformOS":true,"name":"slugify","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"input string to be 'slugified'","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"replaces special characters in a string so that it may be used as part of a 'pretty' URL;","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'John arrived_foo' | slugify }} =\u003e 'john-arrived-foo'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Sorts the items in an array in case-sensitive alphabetical, or numerical, order","summary":"Sorts the items in an array in case-sensitive alphabetical, or numerical, order","syntax":"variable | sort","name":"sort","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"property to sort each item by; sorts the items themselves when omitted","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the items sorted, case-sensitively","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign tags = collection.all_tags | sort %}\n\n{% for tag in tags -%}\n  {{ tag }}\n{%- endfor %}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign products = collection.products | sort: 'price' %}\n\n{% for product in products -%}\n  {{ product.title }}\n{%- endfor %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_sort_by`, kept for backwards compatibility.","deprecation_replacement":"array_sort_by","description":"Sorts an array of objects by the value of the given property","summary":"Sorts an array of objects by the value of the given property","syntax":"array | sort_by","platformOS":true,"name":"sort_by","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"Array of Hash to be sorted by a key","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"property by which to sort an Array of Hashes","name":"property","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"Sorted object (Array of Hash)","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"array1 is [{\"title\": \"Tester\", \"value\": 1}, {\"title\": \"And\", \"value\": 2}]\n{{ array1 | array_sort_by: \"title\" }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Sorts the items of an array, ignoring case. Not for numbers: values are compared as strings, so\n10 sorts before 9","summary":"Sorts the items of an array, ignoring case. Not for numbers: values are compared as strings, so\n10 sorts before 9","syntax":"variable | sort_natural","name":"sort_natural","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"property to sort each item by, case-insensitively; sorts the items\nthemselves when omitted","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the items sorted, ignoring case","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign tags = collection.all_tags | sort_natural %}\n\n{% for tag in tags -%}\n  {{ tag }}\n{%- endfor %}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign products = collection.products | sort_natural: 'title' %}\n\n{% for product in products -%}\n  {{ product.title }}\n{%- endfor %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Splits a string into an array by the given separator; an Array passes through\nunchanged, so splitting a value twice is safe","summary":"Splits a string into an array by the given separator; an Array passes through\nunchanged, so splitting a value twice is safe","syntax":"variable | split","platformOS":true,"name":"split","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"value to split; an Array is returned unchanged","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"separator to split the string by; a non-string is stringified first","name":"pattern","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"array of substrings; if input is already an Array it is returned as-is","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign array = 'a,b,c' | split: ',' %}\n{{ array | split: ',' }} =\u003e ['a', 'b', 'c']","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Check if string starts with given substring(s)","summary":"Check if string starts with given substring(s)","syntax":"string | start_with","platformOS":true,"name":"start_with","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"string to check if starts with any of the provided prefixes","name":"string","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"prefix to check, or an array of prefixes of which any one matching is enough","name":"prefixes","required":true,"variadic":false,"default":"","positional":true,"types":["string","array"]}],"return_type":[{"type":"boolean","name":"","description":"true if string starts with a prefix","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'my_example' | start_with: 'my' }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'my_example' | start_with: 'example' }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign prefixes = [\"array\", \"example\"] %}\n{{ 'my_example' | start_with: prefixes }} =\u003e false","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Formats a time using a strftime format string","summary":"Formats a time using a strftime format string","syntax":"string | strftime","platformOS":true,"name":"strftime","aliases":[],"arity":{"min":2,"max":4},"parameters":[{"description":"parsable time object; a number is read as whole seconds since the epoch","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"string representing the desired output format\ne.g. '%Y-%m-%d' will result in '2020-12-21'\nCheatsheet: https://devhints.io/strftime","name":"format","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"string representing the time zone, or a number read as its UTC offset in hours\n(in seconds when the magnitude is above 13)","name":"zone","required":false,"variadic":false,"default":"nil","positional":true,"types":["string","number"]},{"description":"sets the time from which operation should be performed","name":"now","required":false,"variadic":false,"default":"nil","positional":true,"types":["string","number","date","time"]}],"return_type":[{"type":"string","name":"","description":"formatted representation of the time object; the formatted representation\nwill be based on what the format parameter specifies","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2018-05-30T09:12:34.000-07:00' | strftime: '%Y-%m-%d %H:%M' }} =\u003e 2018-05-30 16:12 # no zone given, so the instance default applies; UTC here","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign time = '2010-01-01 08:00' | to_time %}\n{{ time | strftime: \"%Y-%m-%d\" }} =\u003e '2010-01-01'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2018-05-30T09:12:34.000-07:00' | strftime: '%Y-%m-%d %H:%M', 'Europe/Warsaw' }} =\u003e 2018-05-30 18:12\n{{ '2018-05-30T09:12:34.000-07:00' | strftime: '%Y-%m-%d %H:%M', 'America/New_York' }} =\u003e 2018-05-30 12:12\n{{ '2018-05-30T09:12:34.000-07:00' | strftime: '%Y-%m-%d %H:%M', 'Sydney' }} =\u003e 2018-05-31 02:12\n{{ '2018-05-30T09:12:34.000-07:00' | strftime: '%Y-%m-%d %H:%M', 'Pacific/Apia' }} =\u003e 2018-05-31 05:12","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Strips all whitespace from the left and right of a string","summary":"Strips all whitespace from the left and right of a string","syntax":"variable | strip","name":"strip","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input without leading or trailing whitespace","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{%- assign text = '  Some potions create whitespace.      ' -%}\n\n\"{{ text }}\"\n\"{{ text | strip }}\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Strips all HTML tags from a string","summary":"Strips all HTML tags from a string","syntax":"variable | strip_html","name":"strip_html","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with every HTML tag removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"\u0026lt;!-- With HTML --\u0026gt;\n{{ product.description }}\n\n\u0026lt;!-- HTML stripped --\u0026gt;\n{{ product.description | strip_html }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes Liquid tags from the text, keeping the content they wrap","summary":"Removes Liquid tags from the text, keeping the content they wrap","syntax":"string | strip_liquid","platformOS":true,"name":"strip_liquid","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"text from which to strip liquid","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"input parameter without liquid","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% capture text %}Hello! {% raw %}{% comment %}This is a comment!{% endcomment %}{% endraw %}{% endcapture %}\n{{ text | strip_liquid }} =\u003e Hello! This is a comment!","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Strips all newline characters (line breaks) from a string","summary":"Strips all newline characters (line breaks) from a string","syntax":"variable | strip_newlines","name":"strip_newlines","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input with every newline removed","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"\u0026lt;!-- With newlines --\u0026gt;\n{{ product.description }}\n\n\u0026lt;!-- Newlines stripped --\u0026gt;\n{{ product.description | strip_newlines }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_subtract`, kept for backwards compatibility.","deprecation_replacement":"array_subtract","description":"Returns the elements of the first array that are not in the second","summary":"Returns the elements of the first array that are not in the second","syntax":"array | subtract_array","platformOS":true,"name":"subtract_array","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"array of objects to be processed","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"array of objects to be processed","name":"other_array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"array","name":"","description":"that is a difference between two arrays","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign array = '1,2' | split: ','\n  assign other_array = '2' | split: ','\n%}\n\n{{ array | array_subtract: other_array }} =\u003e [1]","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the sum of all elements in an array","summary":"Returns the sum of all elements in an array","syntax":"variable | sum","name":"sum","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"the array to search","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"sum this property of each item instead of the item itself","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the total","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ items | sum: 'quantity' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `array_sum`, kept for backwards compatibility.","deprecation_replacement":"array_sum","description":"Sums all the numbers in the array","summary":"Sums all the numbers in the array","syntax":"array | sum_array","platformOS":true,"name":"sum_array","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"array with values to be summarised","name":"array","required":true,"variadic":false,"default":"","positional":true,"types":["array"]}],"return_type":[{"type":"number","name":"","description":"summarised value of array","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign numbers = '[1,2,3]' | parse_json %}\n{{ numbers | array_sum }} =\u003e 6","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Looks up a translation by key","summary":"Looks up a translation by key","syntax":"string | t","platformOS":true,"name":"t","aliases":["translate"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"translation key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"values passed to translation string","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Enforces using specified locale instead of value provided via `?language=\u003clocale\u003e`","name":"locale","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies the default for a scenario when translation is missing. If fallback not set to true, system will\nautomatically try to load english translation first","name":"default","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"specify whether the system should try to fallback to english if translation is missing for the current\nlocale","name":"fallback","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Looks the key up under this prefix, so `t: scope: 'drinks.alcoholic'` resolves `beer` as\n`drinks.alcoholic.beer`","name":"scope","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Selects the plural form of the translation, and is interpolated as `%{count}`","name":"count","required":false,"variadic":false,"default":"","positional":false,"types":["number"]}],"return_type":[{"type":"untyped","name":"","description":"Translation value taken from translations YML file for the key given as parameter. The value is assumed to be html safe,\nplease use `t_escape` if you provide unsafe argument which can potentially include malicious script.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'beer' | t }} =\u003e 'cerveza'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'drinks.alcoholic.beer' | t }} =\u003e 'piwo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'non_existing_translation' | t: default: 'Missing', fallback: false }} =\u003e 'Missing'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'user-greeting' | t: username: 'Mike' }} =\u003e 'Hello Mike!'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Escapes unsafe arguments passed to the translation and then returns its value","summary":"Escapes unsafe arguments passed to the translation and then returns its value","syntax":"string | t_escape","platformOS":true,"name":"t_escape","aliases":["translate_escape"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"translation key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"values passed to translation string","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Enforces using specified locale instead of value provided via `?language=\u003clocale\u003e`","name":"locale","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies the default for a scenario when translation is missing","name":"default","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"specify whether the system should try to fallback to english if translation is missing","name":"fallback","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Looks the key up under this prefix","name":"scope","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Selects the plural form of the translation, and is interpolated as `%{count}`","name":"count","required":false,"variadic":false,"default":"","positional":false,"types":["number"]}],"return_type":[{"type":"untyped","name":"","description":"translation value taken from translations YML file for the key given as parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"en.yml\nen:\n  user-greeting: Hello %{username}\n\n{{ 'user-greeting' | t_escape: username: '\u003cscript\u003ealert(\"hello\")\u003c/script\u003eMike' }}\n=\u003e will not evaluate the script, it will print out:\nHello \u003cscript\u003ealert(\"hello\")\u003c/script\u003eMike","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the duration between two times, in the given unit","summary":"Returns the duration between two times, in the given unit","syntax":"string | time_diff","platformOS":true,"name":"time_diff","aliases":[],"arity":{"min":2,"max":4},"parameters":[{"description":"time the duration is measured from; a number is read as whole seconds\nsince the epoch","name":"start","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"time the duration is measured to","name":"finish","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"time unit - allowed options are: d, days, h, hours, m, minutes, s, seconds, ms, milliseconds [default];\nanything else falls back to milliseconds","name":"unit","required":false,"variadic":false,"default":"'ms'","positional":true,"types":["string"]},{"description":"defines rounding after comma; must be a whole number, default is 3","name":"precision","required":false,"variadic":false,"default":"3","positional":true,"types":["number"]}],"return_type":[{"type":"number","name":"","description":"duration between start and finish in unit; default is ms (milliseconds)","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign result = 'now' | time_diff: 'in 5 minutes', 'd' %}\n{{ result }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign minutes_until_date = 'now' | time_diff: '2026-10-08 00:00', 'm' %}\n{% comment %}{% background _ = 'commands/foo', delay: minutes_until_date %} %}{% endcomment %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Multiplies a number by a given number","summary":"Multiplies a number by a given number","syntax":"variable | times","name":"times","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"number to process, or a string holding one — Liquid coerces it","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"number to multiply by","name":"operand","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"number","name":"","description":"the product","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 2 | times: 2 }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Capitalizes every word of the string, replacing underscores and dashes with spaces","summary":"Capitalizes every word of the string, replacing underscores and dashes with spaces","syntax":"variable | titleize","platformOS":true,"name":"titleize","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to be processed; a non-string is stringified first","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"capitalizes all the words and replaces some characters in the string to create\na string in title-case format","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'foo bar_zoo-xx' | titleize }} =\u003e 'Foo Bar Zoo Xx'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts an array of rows into a CSV string","summary":"Converts an array of rows into a CSV string","syntax":"array | to_csv","platformOS":true,"name":"to_csv","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"array of rows you would like to convert to CSV; every element must itself be an array","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["array"]},{"description":"csv options","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Specifies the row separator; used to delimit rows.","name":"row_sep","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies the column separator; used to delimit fields.","name":"col_sep","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies the quote character; used to quote fields.","name":"quote_char","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies whether headers are to be written.","name":"write_headers","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Specifies whether each output field is to be quoted.","name":"force_quotes","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Specifies whether each empty output field is to be quoted.","name":"quote_empty","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Escape special chars to prevent CSV injection attacks, default true.","name":"sanitize","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"String containing CSV.\nIf one of the array element contains separator, this element will automatically be wrapped in double quotes.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign arr = '' | split: ','\n  assign headers = 'id,header1,header2' | split: ','\n  assign row1 = '1,example,value' | split: ','\n  assign row2 = '2,another,val2' | split: ','\n  assign arr = arr | array_add: headers | array_add: row1 | array_add: row2\n%}\n{{ arr | to_csv }} =\u003e \"id\",\"header1\",\"header2\"\\n1,\"example\",\"value\"\\n2,\"another\",\"val2\"","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ arr | to_csv: force_quotes: true }} =\u003e \"id\",\"header1\",\"header2\"\\n\"1\",\"example\",\"value\"\\n\"2\",\"another\",\"val2\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Parses the input into a date","summary":"Parses the input into a date","syntax":"string | to_date","platformOS":true,"name":"to_date","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"parsable time object to be converted to date; a number is read as whole\nseconds since the epoch","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]}],"return_type":[{"type":"date","name":"","description":"a Date object obtained/parsed from the input object","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010-01-01 8:00:00' | to_date }} =\u003e 2010-01-01","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `parse_json`, kept for backwards compatibility. `parse_json` is deprecated too — use `assign` instead.","deprecation_replacement":"assign","description":"DEPRECATED: write the JSON as a literal in {% assign %}, which takes one directly and\nproduces the same Hash with no string in between.\n\nNote this is a REWRITE and not a rename: the quoted JSON becomes markup, and a value that\nwas interpolated into the string with the `json` filter becomes a plain expression.\n\nThe rewrite covers JSON written in the TEMPLATE, which is what this filter is mostly used\nfor. A JSON document that arrives at RUNTIME — an `api_call` response body, `download_file`\noutput — reaches Liquid as a string, and `{% assign %}` stores exactly the string it was\ngiven; this filter remains the only step that turns one into a Hash.\n\nPreviously parsed a JSON string into a hash or an array.","summary":"DEPRECATED: write the JSON as a literal in {% assign %}, which takes one directly and\nproduces the same Hash with no string in between.\n\nNote this is a REWRITE and not a rename: the quoted JSON becomes markup, and a value that\nwas interpolated into the string with the `json` filter becomes a plain expression.\n\nThe rewrite covers JSON written in the TEMPLATE, which is what this filter is mostly used\nfor. A JSON document that arrives at RUNTIME — an `api_call` response body, `download_file`\noutput — reaches Liquid as a string, and `{% assign %}` stores exactly the string it was\ngiven; this filter remains the only step that turns one into a Hash.\n\nPreviously parsed a JSON string into a hash or an array.","syntax":"variable | to_hash","platformOS":true,"name":"to_hash","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"JSON to parse — a string; a Hash or an Array is returned unchanged","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"set to raw_text true to stop it from unescaping HTML entities","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Parses the string as written instead of unescaping HTML entities first (defaults to false)","name":"raw_text","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"untyped","name":"","description":"Hash created based on JSON","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign object = '{ \"name\": \"foo\", \"bar\": {} }' | parse_json %}\n{% assign object = { \"name\": \"foo\", \"bar\": {} } %}\nBoth produce {\"name\" =\u003e \"foo\", \"bar\" =\u003e {}}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign name = \"foo\" %}\n{% assign object = '{ \"name\": {{ name | json }} }' | parse_json %}\n{% assign object = { \"name\": name } %}\nBoth produce {\"name\" =\u003e \"foo\"}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign body = 'https://example.com/data.json' | download_file\n  assign object = body | parse_json\n%}\n{{ object.name }} =\u003e 'foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign text = '{ \"name\": \"foo\", \"bar\": {} }'\n  assign object = text | parse_json\n%}\n{{ object.name }} =\u003e 'foo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign text = '{ \"key\": \"abc \u0026amp; def\" }'\n  assign object = text | parse_json\n%}\n{{ object.key }} =\u003e abc \u0026 def","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% comment %}raw_text: true keeps HTML entities as written instead of unescaping them\nbefore the JSON is parsed.{% endcomment %}\n{% liquid\n  assign text = '{ \"key\": \"abc \u0026amp; def\" }'\n  assign object = text | parse_json: raw_text: true\n%}\n{{ object.key }} =\u003e abc \u0026amp; def","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `json`, kept for backwards compatibility.","deprecation_replacement":"json","description":"Serializes the value as JSON","summary":"Serializes the value as JSON","syntax":"variable | to_json","platformOS":true,"name":"to_json","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"object you want a JSON representation of","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"JSON formatted string containing a representation of object.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ user | json }} =\u003e {\"name\":\"Mike\",\"email\":\"mike@mail.com\"}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Formats a phone number in E.164 format, for sending SMS notifications","summary":"Formats a phone number in E.164 format, for sending SMS notifications","syntax":"string | to_mobile_number","platformOS":true,"name":"to_mobile_number","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"the base part of mobile number","name":"number","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"country for which country code should be used. Can be anything - full name, iso2, iso3","name":"country","required":false,"variadic":false,"default":"nil","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"returns mobile number in E.164 format; recommended for sending sms notifications","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '500 123 999' | to_mobile_number: 'PL' }} =\u003e '+48500123999'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Coerces the value to a positive integer, falling back to the given default","summary":"Coerces the value to a positive integer, falling back to the given default","syntax":"variable | to_positive_integer","platformOS":true,"name":"to_positive_integer","aliases":[],"arity":{"min":2,"max":2},"parameters":[{"description":"value to be coerced to positive integer","name":"param","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"default value in case param is not valid positive integer; must be a whole number","name":"default","required":true,"variadic":false,"default":"","positional":true,"types":["number"]}],"return_type":[{"type":"number","name":"","description":"number that is higher than 0","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1' | to_positive_integer: 2 }} =\u003e 1\n{{ '' | to_positive_integer: 2 }} =\u003e 2","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Parses the input into a time, accepting natural language such as 'in 3 days'","summary":"Parses the input into a time, accepting natural language such as 'in 3 days'","syntax":"string | to_time","platformOS":true,"name":"to_time","aliases":[],"arity":{"min":1,"max":4},"parameters":[{"description":"a string representation of time ('today',\n'3 days ago', 'in 10 minutes' etc.), a whole number in UNIX time format, or a time","name":"time","required":true,"variadic":false,"default":"","positional":true,"types":["string","number","date","time"]},{"description":"time zone — a zone name, or a number read as its UTC offset in hours\n(in seconds when the magnitude is above 13)","name":"zone","required":false,"variadic":false,"default":"nil","positional":true,"types":["string","number"]},{"description":"specific format to be used when parsing time","name":"format","required":false,"variadic":false,"default":"nil","positional":true,"types":["string"]},{"description":"sets the time from which operation should be performed","name":"now","required":false,"variadic":false,"default":"nil","positional":true,"types":["string","number","date","time"]}],"return_type":[{"type":"time","name":"","description":"a time object created from parsing the string representation of time given as input","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% comment %}The outputs below are relative to the time of rendering. They are shown\nagainst one fixed reference, 2017-04-15 15:21:00, so the offsets can be compared.\n{% endcomment %}\n{{ 'today' | to_time }} =\u003e 2017-04-15 15:21:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'today' | to_time: 'UTC' }} =\u003e 2017-04-15 15:21:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '1 day ago' | to_time }} =\u003e 2017-04-14 15:21:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '5 days from now' | to_time }} =\u003e 2017-04-19 15:21:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '2010:01:01' | to_time: '', '%Y:%m:%d' }} =\u003e 2010-01-01 00:00:00","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '5 days from now' | to_time: '', '', '2019-10-01' }} =\u003e 2019-10-06 12:00:00 UTC # equivalent of {{ '2019-10-01' | add_to_time: 5, 'days' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Serializes a hash as XML","summary":"Serializes a hash as XML","syntax":"variable | to_xml","platformOS":true,"name":"to_xml","aliases":["to_xml_rc"],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"hash object that will be represented as xml; an array is written as a series of `\u003canon\u003e` elements","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["object","array"]},{"description":"attr_prefix: use '@' for element attributes","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Writes keys beginning with '@' as element attributes rather than as child elements\n(defaults to false)","name":"attr_prefix","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"String containing XML","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign object = '{\"letter\":[{\"title\":[{\"maxlength\":\"10\",\"content\":\" Quote Letter \"}]}]}' | parse_json\n  assign xml = object | to_xml\n%}\n{{ object }} =\u003e '\u003cletter\u003e \u003ctitle maxlength=\"10\"\u003e Quote Letter \u003c/title\u003e \u003c/letter\u003e'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `to_xml`, kept for backwards compatibility.","deprecation_replacement":"to_xml","description":"Serializes a hash as XML","summary":"Serializes a hash as XML","syntax":"variable | to_xml_rc","platformOS":true,"name":"to_xml_rc","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"hash object that will be represented as xml; an array is written as a series of `\u003canon\u003e` elements","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["object","array"]},{"description":"attr_prefix: use '@' for element attributes","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Writes keys beginning with '@' as element attributes rather than as child elements\n(defaults to false)","name":"attr_prefix","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"string","name":"","description":"String containing XML","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign object = '{\"letter\":[{\"title\":[{\"maxlength\":\"10\",\"content\":\" Quote Letter \"}]}]}' | parse_json\n  assign xml = object | to_xml\n%}\n{{ object }} =\u003e '\u003cletter\u003e \u003ctitle maxlength=\"10\"\u003e Quote Letter \u003c/title\u003e \u003c/letter\u003e'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `t`, kept for backwards compatibility.","deprecation_replacement":"t","description":"Looks up a translation by key","summary":"Looks up a translation by key","syntax":"string | translate","platformOS":true,"name":"translate","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"translation key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"values passed to translation string","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Enforces using specified locale instead of value provided via `?language=\u003clocale\u003e`","name":"locale","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies the default for a scenario when translation is missing. If fallback not set to true, system will\nautomatically try to load english translation first","name":"default","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"specify whether the system should try to fallback to english if translation is missing for the current\nlocale","name":"fallback","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Looks the key up under this prefix, so `t: scope: 'drinks.alcoholic'` resolves `beer` as\n`drinks.alcoholic.beer`","name":"scope","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Selects the plural form of the translation, and is interpolated as `%{count}`","name":"count","required":false,"variadic":false,"default":"","positional":false,"types":["number"]}],"return_type":[{"type":"untyped","name":"","description":"Translation value taken from translations YML file for the key given as parameter. The value is assumed to be html safe,\nplease use `t_escape` if you provide unsafe argument which can potentially include malicious script.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'beer' | t }} =\u003e 'cerveza'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'drinks.alcoholic.beer' | t }} =\u003e 'piwo'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'non_existing_translation' | t: default: 'Missing', fallback: false }} =\u003e 'Missing'","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'user-greeting' | t: username: 'Mike' }} =\u003e 'Hello Mike!'","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `t_escape`, kept for backwards compatibility.","deprecation_replacement":"t_escape","description":"Escapes unsafe arguments passed to the translation and then returns its value","summary":"Escapes unsafe arguments passed to the translation and then returns its value","syntax":"string | translate_escape","platformOS":true,"name":"translate_escape","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"translation key","name":"key","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"values passed to translation string","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Enforces using specified locale instead of value provided via `?language=\u003clocale\u003e`","name":"locale","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Specifies the default for a scenario when translation is missing","name":"default","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"specify whether the system should try to fallback to english if translation is missing","name":"fallback","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Looks the key up under this prefix","name":"scope","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Selects the plural form of the translation, and is interpolated as `%{count}`","name":"count","required":false,"variadic":false,"default":"","positional":false,"types":["number"]}],"return_type":[{"type":"untyped","name":"","description":"translation value taken from translations YML file for the key given as parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"en.yml\nen:\n  user-greeting: Hello %{username}\n\n{{ 'user-greeting' | t_escape: username: '\u003cscript\u003ealert(\"hello\")\u003c/script\u003eMike' }}\n=\u003e will not evaluate the script, it will print out:\nHello \u003cscript\u003ealert(\"hello\")\u003c/script\u003eMike","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Truncates a string down to a given number of characters. If the specified number of characters\nis less than the length of the string, then an ellipsis (`...`) is appended to the truncated\nstring. The ellipsis is included in the character count of the truncated string.","summary":"Truncates a string down to a given number of characters. If the specified number of characters\nis less than the length of the string, then an ellipsis (`...`) is appended to the truncated\nstring. The ellipsis is included in the character count of the truncated string.","syntax":"variable | truncate","name":"truncate","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"maximum length of the result, counting the ellipsis; defaults to 50","name":"length","required":false,"variadic":false,"default":"50","positional":true,"types":["untyped"]},{"description":"string appended when the input is shortened; defaults to '...'","name":"truncate_string","required":false,"variadic":false,"default":"\"...\"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the shortened string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.title | truncate: 15 }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.title | truncate: 15, '--' }}\n{{ article.title | truncate: 15, '' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Truncates a string down to a given number of words. If the specified number of words is less\nthan the number of words in the string, then an ellipsis (`...`) is appended to the truncated\nstring. HTML tags are treated as words, so you should strip any HTML from truncated content. If\nyou don't strip HTML, then \u003e closing HTML tags can be removed, which can result in unexpected\nbehavior.","summary":"Truncates a string down to a given number of words. If the specified number of words is less\nthan the number of words in the string, then an ellipsis (`...`) is appended to the truncated\nstring. HTML tags are treated as words, so you should strip any HTML from truncated content. If\nyou don't strip HTML, then \u003e closing HTML tags can be removed, which can result in unexpected\nbehavior.","syntax":"variable | truncatewords","name":"truncatewords","aliases":[],"arity":{"min":1,"max":3},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"how many words to keep; defaults to 15","name":"words","required":false,"variadic":false,"default":"15","positional":true,"types":["untyped"]},{"description":"string appended when the input is shortened; defaults to '...'","name":"truncate_string","required":false,"variadic":false,"default":"\"...\"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input cut to the given number of words","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.content | strip_html | truncatewords: 15 }}","parameter":false,"display_type":"text","show_data_tab":true},{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ article.content | strip_html | truncatewords: 15, '--' }}\n\n{{ article.content | strip_html | truncatewords: 15, '' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Returns the name of the value's type","summary":"Returns the name of the value's type","syntax":"variable | type_of","platformOS":true,"name":"type_of","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"Variable whose type you want returned","name":"variable","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"Type of the variable parameter","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign variable_type = '{ \"name\": \"foo\", \"bar\": {} }' | parse_json | type_of %}\n{{ variable_type }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Reverses escape_javascript, returning the text to its original form","summary":"Reverses escape_javascript, returning the text to its original form","syntax":"string | unescape_javascript","platformOS":true,"name":"unescape_javascript","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"text to be unescaped","name":"text","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"string","name":"","description":"unescaped javascript text","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% capture js %}\n\u003cscript\u003e\n  let variable = \"\\t some text\\n\";\n  let variable2 = 'some text 2';\n  let variable3 = `some text`;\n  let variable4 = `We love ${variable3}.`;\n  \u003c/script\u003e\n{% endcapture %}\n\nThis will return the text to its original form:\n{{ js | escape_javascript | unescape_javascript }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Removes any duplicate items in an array","summary":"Removes any duplicate items in an array","syntax":"variable | uniq","name":"uniq","aliases":[],"arity":{"min":1,"max":2},"parameters":[{"description":"array to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"property to compare items by; compares the items themselves when\nomitted","name":"property","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the items without duplicates","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign potion_array = 'invisibility, health, love, health, invisibility' | split: ', ' %}\n\n{{ potion_array | uniq | join: ', ' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Converts a string to all uppercase characters","summary":"Converts a string to all uppercase characters","syntax":"variable | upcase","name":"upcase","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the input in uppercase","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ product.title | upcase }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Decodes any\n[percent-encoded](https://developer.mozilla.org/en-US/docs/Glossary/percent-encoding) characters\nin a string","summary":"Decodes any\n[percent-encoded](https://developer.mozilla.org/en-US/docs/Glossary/percent-encoding) characters\nin a string","syntax":"variable | url_decode","name":"url_decode","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the decoded string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'test%40test.com' | url_decode }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Percent-encodes a string so it can be used in a URL, converting spaces to a + character","summary":"Percent-encodes a string so it can be used in a URL, converting spaces to a + character","syntax":"variable | url_encode","name":"url_encode","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"string to process","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"the URL-encoded string","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'test@test.com' | url_encode }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Renders the URL as a QR code in SVG","summary":"Renders the URL as a QR code in SVG","syntax":"string | url_to_qrcode_svg","platformOS":true,"name":"url_to_qrcode_svg","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"URL to be encoded as QR code","name":"url","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"optional. Defaults: color: \"000\", module_size: 11, shape_rendering: \"crispEdges\", viewbox: false","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Possible options: auto | optimizeSpeed | crispEdges | geometricPrecision ; default is crispEdges","name":"shape_rendering","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Replace the `svg.width` and `svg.height` attribute with `svg.viewBox` to allow CSS scaling , default false","name":"viewbox","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Whether to make this a full SVG file, or only an svg to embed in other svg, default true","name":"standalone","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"An optional hash of custom \u003csvg\u003e attributes. Existing attributes will remain. (default {})","name":"svg_attributes","required":false,"variadic":false,"default":"","positional":false,"types":["object"]},{"description":"Default is \"000\"","name":"color","required":false,"variadic":false,"default":"","positional":false,"types":["string"]},{"description":"Default is 11","name":"module_size","required":false,"variadic":false,"default":"","positional":false,"types":["number"]}],"return_type":[{"type":"string","name":"","description":"either `\u003cpath ...\u003e...\u003c/path\u003e` or `\u003csvg ...\u003e...\u003c/svg\u003e` depending on standalone flag","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"\u003csvg width=\"319\" height=\"319\"\u003e{{ 'https://example.com' | url_to_qrcode_svg: color: '000', module_size: 11 }}\u003c/svg\u003e","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Parses a user agent header into browser, engine, OS and device information","summary":"Parses a user agent header into browser, engine, OS and device information","syntax":"string | useragent","platformOS":true,"name":"useragent","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"browser user agent from the request header","name":"useragent_header","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"object","name":"","description":"parsed browser user agent information","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ context.headers.HTTP_USER_AGENT | useragent }} =\u003e\n{\n  \"device\": {\"family\":\"Other\",\"model\":\"Other\",\"brand\":null},\n  \"family\":\"Firefox\",\n  \"os\":{\"version\":null,\"family\":\"Windows 7\"},\n  \"version\":{\"version\":\"47.0\",\"major\":\"47\",\"minor\":\"0\",\"patch\":null}\n}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Generates a random universally unique identifier (UUID v4)","summary":"Generates a random universally unique identifier (UUID v4)","syntax":"variable | uuid","platformOS":true,"name":"uuid","aliases":[],"arity":{"min":0,"max":1},"parameters":[{"description":"parameter will be ignored","name":"_dummy","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"string","name":"","description":"Universally unique identifier v4","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ '' | uuid }} =\u003e \"2d931510-d99f-494a-8c67-87feb05e1594\"\n\n{% assign id = '' | uuid %}\n{{ id }} =\u003e \"b12bd15e-4da7-41a7-b673-272221049c01\"","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Checks whether the given Partner Portal access key is valid","summary":"Checks whether the given Partner Portal access key is valid","syntax":"variable | verify_access_key","platformOS":true,"name":"verify_access_key","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"can be obtained in Partner Portal; anything but a hash is looked up as written, and\na value that is not a key is simply false","name":"access_key","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]}],"return_type":[{"type":"boolean","name":"","description":"check if key is valid","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% assign access_key = '12345' %}\n{{ access_key | verify_access_key }} =\u003e true","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Extracts provider, video id and embed metadata from a video URL","summary":"Extracts provider, video id and embed metadata from a video URL","syntax":"string | video_params","platformOS":true,"name":"video_params","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"URL to a video on the internet","name":"url","required":true,"variadic":false,"default":"","positional":true,"types":["string"]}],"return_type":[{"type":"object","name":"","description":"metadata about video","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ 'https://www.youtube.com/watch?v=8N_tupPBtWQ' | video_params }}\n{% comment %}\n  Returns a Hash with the keys: provider (\"YouTube\"), url (the input), video_id\n  (\"8N_tupPBtWQ\"), embed_url (\"https://www.youtube.com/embed/8N_tupPBtWQ\") and\n  embed_code (an iframe element wrapping embed_url).\n{% endcomment %}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Turns a video URL into an embedded video player","summary":"Turns a video URL into an embedded video player","syntax":"string | videoify","platformOS":true,"name":"videoify","aliases":[],"arity":{"min":0,"max":2},"named_parameters_exhaustive":false,"parameters":[{"description":"URL to a video on the internet","name":"url","required":false,"variadic":false,"default":"''","positional":true,"types":["string"]},{"description":"optional HTML attributes for the generated iframe (e.g. width, height)","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]}],"return_type":[{"type":"string","name":"","description":"if the given URL is supported, an HTML formatted string containing a video player (inside an iframe)\nwhich will play the video at the given URL; otherwise an empty string is returned","array_value":""}],"examples":[]},{"category":"liquid","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Filters an array to include only items with a specific property value. This requires you to\nprovide both the property name and the associated value.","summary":"Filters an array to include only items with a specific property value. This requires you to\nprovide both the property name and the associated value.","syntax":"variable | where","name":"where","aliases":[],"arity":{"min":2,"max":3},"parameters":[{"description":"the array to search","name":"input","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the property name to test on each item","name":"property","required":true,"variadic":false,"default":"","positional":true,"types":["untyped"]},{"description":"the value the property must equal. Omitted, any truthy value\nmatches","name":"target_value","required":false,"variadic":false,"default":"nil","positional":true,"types":["untyped"]}],"return_type":[{"type":"array","name":"","description":"the matching items","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{{ products | where: 'type', 'shirt' }}","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":false,"deprecation_reason":"","deprecation_replacement":"","description":"Encodes the object as application/x-www-form-urlencoded data","summary":"Encodes the object as application/x-www-form-urlencoded data","syntax":"variable | www_form_encode","platformOS":true,"name":"www_form_encode","aliases":["www_form_encode_rc"],"arity":{"min":1,"max":1},"parameters":[{"description":"data object","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["object","array"]}],"return_type":[{"type":"string","name":"","description":"This generates application/x-www-form-urlencoded data defined in HTML5 from given object.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"assign object = '{\"foo\": \"bar\", \"zoo\": [{ \"xoo\": 1 }, {\"xoo\": 2}]}' | parse_json\nassign form_data = object | www_form_encode\n  =\u003e \"foo=bar\u0026zoo[0][xoo]=555\u0026zoo[1][xoo]=999\",","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `www_form_encode`, kept for backwards compatibility.","deprecation_replacement":"www_form_encode","description":"Encodes the object as application/x-www-form-urlencoded data","summary":"Encodes the object as application/x-www-form-urlencoded data","syntax":"variable | www_form_encode_rc","platformOS":true,"name":"www_form_encode_rc","aliases":[],"arity":{"min":1,"max":1},"parameters":[{"description":"data object","name":"object","required":true,"variadic":false,"default":"","positional":true,"types":["object","array"]}],"return_type":[{"type":"string","name":"","description":"This generates application/x-www-form-urlencoded data defined in HTML5 from given object.","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"assign object = '{\"foo\": \"bar\", \"zoo\": [{ \"xoo\": 1 }, {\"xoo\": 2}]}' | parse_json\nassign form_data = object | www_form_encode\n  =\u003e \"foo=bar\u0026zoo[0][xoo]=555\u0026zoo[1][xoo]=999\",","parameter":false,"display_type":"text","show_data_tab":true}]},{"category":"platformOS","deprecated":true,"deprecation_reason":"Alias of `parse_xml`, kept for backwards compatibility.","deprecation_replacement":"parse_xml","description":"Parses an XML string into a hash","summary":"Parses an XML string into a hash","syntax":"string | xml_to_hash","platformOS":true,"name":"xml_to_hash","aliases":[],"arity":{"min":1,"max":2},"named_parameters_exhaustive":true,"parameters":[{"description":"String containing valid XML","name":"xml","required":true,"variadic":false,"default":"","positional":true,"types":["string"]},{"description":"attr_prefix: use '@' for element attributes, force_array: always try to use arrays for child elements","name":"options","required":false,"variadic":false,"default":"{}","positional":true,"types":["object"]},{"description":"Reads an element's attributes under keys prefixed with '@', telling them apart from child\nelements of the same name (defaults to false)","name":"attr_prefix","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]},{"description":"Wraps every child element in an array, whether or not it repeats (defaults to true)","name":"force_array","required":false,"variadic":false,"default":"","positional":false,"types":["boolean"]}],"return_type":[{"type":"object","name":"","description":"Hash created based on XML","array_value":""}],"examples":[{"name":"","description":"","syntax":"","path":"","raw_liquid":"{% liquid\n  assign text = '\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\u003cletter\u003e\u003ctitle maxlength=\"10\"\u003e Quote Letter \u003c/title\u003e\u003c/letter\u003e'\n  assign object = text | parse_xml\n%}\n{{ object }} =\u003e '{\"letter\":[{\"title\":[{\"maxlength\":\"10\",\"content\":\" Quote Letter \"}]}]}'","parameter":false,"display_type":"text","show_data_tab":true}]}]


