theme-check 1.14.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8c635ed30803cdeab5dfba7a7b65cbfabeaedf1d7c38bb0b99c35d1597798a4
4
- data.tar.gz: 5abd13766f9f027aa6e5280120893380c6d845b230b0083d591701a5a9a31610
3
+ metadata.gz: f431a7aed9be02cea5198104449f31ca23fad3dc36bbca6372d0746544d41996
4
+ data.tar.gz: 57d65be02e66672324a61ca469d714bddcf36ff029d2f36cd5714f277074706f
5
5
  SHA512:
6
- metadata.gz: c04023a0aa3c5de15038248e7f24fbaabcbe97a85fa67183006ddc59328d1e4641d490dad8f8643709d19259f91b01e3e996c23a0d03b951b59d3f35048e52ac
7
- data.tar.gz: 81b5ad32a2fdcfa72ab07e47864616c5a2063ad9150ccc914d3a5b5863e09bc834d3497c78ac2d057a5645d3832dca0967c9fa425c661625fa9acf1c27c243d4
6
+ metadata.gz: 4875e5a214fb3fccf59cd8358f2e7a12009b5ec5b9212d869d8613532d5943a32ef48ee697ebb61b6404bf61a8b05d8811e01c4e41cc4fcedd69a5caeea9fd1c
7
+ data.tar.gz: 80f0bce8792f5abf066831dfc0d56af96f9fa4952b9af09a883ea839cdb94205632150d740c408ebe1e5ac1122da8974920c6b9d31d54a325928493198b73fe7
data/CHANGELOG.md CHANGED
@@ -1,4 +1,10 @@
1
1
 
2
+ v1.15.0 / 2023-04-14
3
+ ==================
4
+
5
+ * Improve rule for lazy loading to prevent developers from overusing it
6
+ * Introduce `--update-docs` flag to synchronously update Theme Check resources (objects, filters, and tags) (#707)
7
+
2
8
  v1.14.0 / 2023-01-10
3
9
  ==================
4
10
 
@@ -133,7 +133,7 @@
133
133
  "category": "collection",
134
134
  "deprecated": false,
135
135
  "deprecation_reason": "",
136
- "description": "Accepts the following values:\n\n- `manual`\n- `best-selling`\n- `title-ascending`\n- `title-descending`\n- `price-ascending`\n- `price-descending`\n- `created-ascending`\n- `created-descending`\n\n> Tip:\n> You can append the `sort_by` filter to the [`url_for_type`](/api/liquid/filters/url_for_type)\n> and [`url_for_vendor`](/api/liquid/filters/url_for_vendor) filters.",
136
+ "description": "Accepts the following values:\n\n- `manual`\n- `best-selling`\n- `title-ascending`\n- `title-descending`\n- `price-ascending`\n- `price-descending`\n- `created-ascending`\n- `created-descending`\n\n> Tip:\n> You can append the `sort_by` filter to the [`url_for_type`](/docs/api/liquid/filters/url_for_type)\n> and [`url_for_vendor`](/docs/api/liquid/filters/url_for_vendor) filters.",
137
137
  "parameters": [
138
138
 
139
139
  ],
@@ -229,7 +229,7 @@
229
229
  "category": "collection",
230
230
  "deprecated": false,
231
231
  "deprecation_reason": "",
232
- "description": "When the collection context is included, you can access the associated [`collection` object](/api/liquid/objects/collection)\nin the [product template](/themes/architecture/templates/product).\n\n> Caution:\n> Because a standard product page and a product page in the context of a collection have the same content on separate\n> URLs, you should consider the SEO implications of using the `within` filter.",
232
+ "description": "When the collection context is included, you can access the associated [`collection` object](/docs/api/liquid/objects/collection)\nin the [product template](/themes/architecture/templates/product).\n\n> Caution:\n> Because a standard product page and a product page in the context of a collection have the same content on separate\n> URLs, you should consider the SEO implications of using the `within` filter.",
233
233
  "parameters": [
234
234
 
235
235
  ],
@@ -814,7 +814,7 @@
814
814
  {
815
815
  "category": "color",
816
816
  "deprecated": true,
817
- "deprecation_reason": "The `hex_to_rgba` filter has been replaced by [`color_to_rgb`](/api/liquid/filters/color_to_rgb) and\n[`color_modify`](/api/liquid/filters/color_modify).",
817
+ "deprecation_reason": "The `hex_to_rgba` filter has been replaced by [`color_to_rgb`](/docs/api/liquid/filters/color_to_rgb) and\n[`color_modify`](/docs/api/liquid/filters/color_modify).",
818
818
  "description": "",
819
819
  "parameters": [
820
820
  {
@@ -1023,8 +1023,8 @@
1023
1023
  {
1024
1024
  "category": "localization",
1025
1025
  "deprecated": true,
1026
- "deprecation_reason": "Deprecated without a direct replacement because the [currency form](/api/liquid/tags/form#form-currency) has also been\ndeprecated.",
1027
- "description": "The `currency_selector` filter must be applied to the [`form` object](/api/liquid/objects/form) within a\n[currency form](/api/liquid/tags/form#form-currency).",
1026
+ "deprecation_reason": "Deprecated without a direct replacement because the [currency form](/docs/api/liquid/tags/form#form-currency) has also been\ndeprecated.",
1027
+ "description": "The `currency_selector` filter must be applied to the [`form` object](/docs/api/liquid/objects/form) within a\n[currency form](/docs/api/liquid/tags/form#form-currency).",
1028
1028
  "parameters": [
1029
1029
  {
1030
1030
  "description": "The desired `class` attribute.",
@@ -1229,7 +1229,7 @@
1229
1229
  },
1230
1230
  {
1231
1231
  "name": "format",
1232
- "description": "Specify a locale-aware date format. You can use the following formats:\n\n- `abbreviated_date`\n- `basic`\n- `date`\n- `date_at_time`\n- `default`\n- `on_date`\n- `short` (deprecated)\n- `long` (deprecated)\n\n> Note:\n> You can also [define custom formats](/api/liquid/filters/date-setting-format-options-in-locale-files) in your theme's locale files.\n",
1232
+ "description": "Specify a locale-aware date format. You can use the following formats:\n\n- `abbreviated_date`\n- `basic`\n- `date`\n- `date_at_time`\n- `default`\n- `on_date`\n- `short` (deprecated)\n- `long` (deprecated)\n\n> Note:\n> You can also [define custom formats](/docs/api/liquid/filters/date-setting-format-options-in-locale-files) in your theme's locale files.\n",
1233
1233
  "syntax": "string | date: format: string",
1234
1234
  "path": "/blogs/potion-notions/how-to-tell-if-you-have-run-out-of-invisibility-potion",
1235
1235
  "raw_liquid": "{{ article.created_at | date: format: 'abbreviated_date' }}",
@@ -1305,7 +1305,7 @@
1305
1305
  "category": "font",
1306
1306
  "deprecated": false,
1307
1307
  "deprecation_reason": "",
1308
- "description": "The `font_modify` filter requires two parameters. The first indicates which property should be modified and the second is\neither the new value, or modification amount, for that property.\n\n> Tip:\n> You can access every variant of the chosen font's family by using [`font.variants`](/api/liquid/objects/font#font-variants).\n> However, you can more easily access specific styles and weights by using the `font_modify` filter.\n\nThe following table outlines the valid font properties and modification values:\n\n<table>\n <thead>\n <th>Property</th>\n <th>Modification value</th>\n <th>Output</th>\n </thead>\n <tbody>\n <tr>\n <td rowspan=3><code>style</code></td>\n <td><code>normal</code></td>\n <td>Returns the normal variant of the same weight, if it exists.</td>\n </tr>\n <tr>\n <td><code>italic</code></td>\n <td>Returns the italic variant of the same weight, if it exists.</td>\n </tr>\n <tr>\n <td><code>oblique</code></td>\n <td>\n <p>Returns the oblique variant of the same weight, if it exists.</p>\n <p>Oblique variants are similar to italic variants in appearance. All Shopify fonts have only oblique or italic variants, not both.</p>\n </td>\n </tr>\n <tr>\n <td rowspan=7><code>weight</code></td>\n <td><code>100</code> → <code>900</code></td>\n <td>Returns a variant of the same style with the given weight, if it exists.</td>\n </tr>\n <tr>\n <td><code>normal</code></td>\n <td>Returns a variant of the same style with a weight of <code>400</code>, if it exists.</td>\n </tr>\n <tr>\n <td><code>bold</code></td>\n <td>Returns a variant of the same style with a weight of <code>700</code>, if it exists.</td>\n </tr>\n <tr>\n <td><code>+100</code> → <code>+900</code></td>\n <td>\n <p>Returns a variant of the same style with a weight incremented by the given value, if it exists.</p>\n <p>For example, if a font has a weight of <code>400</code>, then using <code>+100</code> would return the font with a weight of <code>500</code>.</p>\n </td>\n </tr>\n <tr>\n <td><code>-100</code> → <code>-900</code></td>\n <td>\n <p>Returns a variant of the same style with a weight decremented by the given value, if it exists.</p>\n <p>For example, if a font has a weight of <code>400</code>, then using <code>-100</code> would return the font with a weight of <code>300</code>.</p>\n </td>\n </tr>\n <tr>\n <td><code>lighter</code></td>\n <td>Returns a lighter variant of the same style by applying the rules used by the <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Meaning_of_relative_weights\">CSS <code>font-weight</code> property</a> and browser <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\">fallback weights</a>, if it exists.</td>\n </tr>\n <tr>\n <td><code>bolder</code></td>\n <td>Returns a bolder variant of the same style by applying the rules used by the <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Meaning_of_relative_weights\">CSS <code>font-weight</code> property</a> and browser <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\">fallback weights</a>, if it exists.</td>\n </tr>\n </tbody>\n</table>",
1308
+ "description": "The `font_modify` filter requires two parameters. The first indicates which property should be modified and the second is\neither the new value, or modification amount, for that property.\n\n> Tip:\n> You can access every variant of the chosen font's family by using [`font.variants`](/docs/api/liquid/objects/font#font-variants).\n> However, you can more easily access specific styles and weights by using the `font_modify` filter.\n\nThe following table outlines the valid font properties and modification values:\n\n<table>\n <thead>\n <th>Property</th>\n <th>Modification value</th>\n <th>Output</th>\n </thead>\n <tbody>\n <tr>\n <td rowspan=3><code>style</code></td>\n <td><code>normal</code></td>\n <td>Returns the normal variant of the same weight, if it exists.</td>\n </tr>\n <tr>\n <td><code>italic</code></td>\n <td>Returns the italic variant of the same weight, if it exists.</td>\n </tr>\n <tr>\n <td><code>oblique</code></td>\n <td>\n <p>Returns the oblique variant of the same weight, if it exists.</p>\n <p>Oblique variants are similar to italic variants in appearance. All Shopify fonts have only oblique or italic variants, not both.</p>\n </td>\n </tr>\n <tr>\n <td rowspan=7><code>weight</code></td>\n <td><code>100</code> → <code>900</code></td>\n <td>Returns a variant of the same style with the given weight, if it exists.</td>\n </tr>\n <tr>\n <td><code>normal</code></td>\n <td>Returns a variant of the same style with a weight of <code>400</code>, if it exists.</td>\n </tr>\n <tr>\n <td><code>bold</code></td>\n <td>Returns a variant of the same style with a weight of <code>700</code>, if it exists.</td>\n </tr>\n <tr>\n <td><code>+100</code> → <code>+900</code></td>\n <td>\n <p>Returns a variant of the same style with a weight incremented by the given value, if it exists.</p>\n <p>For example, if a font has a weight of <code>400</code>, then using <code>+100</code> would return the font with a weight of <code>500</code>.</p>\n </td>\n </tr>\n <tr>\n <td><code>-100</code> → <code>-900</code></td>\n <td>\n <p>Returns a variant of the same style with a weight decremented by the given value, if it exists.</p>\n <p>For example, if a font has a weight of <code>400</code>, then using <code>-100</code> would return the font with a weight of <code>300</code>.</p>\n </td>\n </tr>\n <tr>\n <td><code>lighter</code></td>\n <td>Returns a lighter variant of the same style by applying the rules used by the <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Meaning_of_relative_weights\">CSS <code>font-weight</code> property</a> and browser <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\">fallback weights</a>, if it exists.</td>\n </tr>\n <tr>\n <td><code>bolder</code></td>\n <td>Returns a bolder variant of the same style by applying the rules used by the <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Meaning_of_relative_weights\">CSS <code>font-weight</code> property</a> and browser <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\">fallback weights</a>, if it exists.</td>\n </tr>\n </tbody>\n</table>",
1309
1309
  "parameters": [
1310
1310
  {
1311
1311
  "description": "Font property to modify",
@@ -1345,7 +1345,7 @@
1345
1345
  },
1346
1346
  {
1347
1347
  "name": "Non-existent font variants",
1348
- "description": "If the `font_modify` filter tries to create a font variant that doesn't exist, then it returns `nil`. To handle this, you can either assign a fallback value with the [`default` filter](/api/liquid/filters/default), or check for `nil` before using the variant.\n",
1348
+ "description": "If the `font_modify` filter tries to create a font variant that doesn't exist, then it returns `nil`. To handle this, you can either assign a fallback value with the [`default` filter](/docs/api/liquid/filters/default), or check for `nil` before using the variant.\n",
1349
1349
  "syntax": "",
1350
1350
  "path": "/",
1351
1351
  "raw_liquid": "{%- assign bold_font = settings.type_body_font | font_modify: 'weight', 'bold' -%}\n{%- assign italic_font = settings.type_body_font | font_modify: 'style', 'italic' -%}\n{%- assign heavy_font = settings.type_body_font | font_modify: 'weight', '900' | default: bold_font -%}\n{%- assign oblique_font = settings.type_body_font | font_modify: 'style', 'oblique' | default: italic_font -%}\n\nh2 {\n font-style: {{ heavy_font.weight }};\n}\n\n.italic {\n {% if oblique_font -%}\n font-style: {{ oblique_font.style }};\n {%- else -%}\n font-style: {{ italic_font.style }};\n {%- endif %}\n}",
@@ -1434,7 +1434,7 @@
1434
1434
  "category": "payment",
1435
1435
  "deprecated": false,
1436
1436
  "deprecation_reason": "",
1437
- "description": "> Note:\n> You can't render dynamic checkout buttons through AJAX requests, including those through the\n> [Section Rendering API](/api/section-rendering). The dynamic checkout buttons are added by JavaScript included\n> by Shopify through the [`content_for_header`](/api/liquid/objects/content_for_header) object, which only runs on\n> the initial page load.",
1437
+ "description": "> Note:\n> You can't render dynamic checkout buttons through AJAX requests, including those through the\n> [Section Rendering API](/api/section-rendering). The dynamic checkout buttons are added by JavaScript included\n> by Shopify through the [`content_for_header`](/docs/api/liquid/objects/content_for_header) object, which only runs on\n> the initial page load.",
1438
1438
  "parameters": [
1439
1439
 
1440
1440
  ],
@@ -1458,7 +1458,7 @@
1458
1458
  "show_data_tab": true
1459
1459
  }
1460
1460
  ],
1461
- "summary": "Generates an HTML container to host [dynamic checkout buttons](https://help.shopify.com/manual/online-store/dynamic-checkout)\nfor a product. The `payment_button` filter must be used on the `form` object within a [product form](/api/liquid/tags/form#form-product).",
1461
+ "summary": "Generates an HTML container to host [dynamic checkout buttons](https://help.shopify.com/manual/online-store/dynamic-checkout)\nfor a product. The `payment_button` filter must be used on the `form` object within a [product form](/docs/api/liquid/tags/form#form-product).",
1462
1462
  "syntax": "form | payment_button",
1463
1463
  "name": "payment_button"
1464
1464
  },
@@ -1466,7 +1466,7 @@
1466
1466
  "category": "payment",
1467
1467
  "deprecated": false,
1468
1468
  "deprecation_reason": "",
1469
- "description": "The `payment_terms` filter must be used on the `form` object within a [product form](/api/liquid/tags/form#form-product) or\n[cart form](/api/liquid/tags/form#form-cart).\n\n```liquid\n{% form 'product', product %}\n {{ form | payment_terms }}\n{% endform %}\n```\n\n```liquid\n{% form 'cart', cart %}\n {{ form | payment_terms }}\n{% endform %}\n```",
1469
+ "description": "The `payment_terms` filter must be used on the `form` object within a [product form](/docs/api/liquid/tags/form#form-product) or\n[cart form](/docs/api/liquid/tags/form#form-cart).\n\n```liquid\n{% form 'product', product %}\n {{ form | payment_terms }}\n{% endform %}\n```\n\n```liquid\n{% form 'cart', cart %}\n {{ form | payment_terms }}\n{% endform %}\n```",
1470
1470
  "parameters": [
1471
1471
 
1472
1472
  ],
@@ -1521,7 +1521,7 @@
1521
1521
  },
1522
1522
  {
1523
1523
  "name": "format",
1524
- "description": "Specify a locale-aware date format. Accepts the following values:\n\n- `abbreviated_date`\n- `basic`\n- `date`\n- `date_at_time`\n- `default`\n- `on_date`\n- `short` (deprecated)\n- `long` (deprecated)\n\n> Note:\n> You can also [define custom formats](/api/liquid/filters/date-setting-format-options-in-locale-files) in your theme's locale files.\n",
1524
+ "description": "Specify a locale-aware date format. Accepts the following values:\n\n- `abbreviated_date`\n- `basic`\n- `date`\n- `date_at_time`\n- `default`\n- `on_date`\n- `short` (deprecated)\n- `long` (deprecated)\n\n> Note:\n> You can also [define custom formats](/docs/api/liquid/filters/date-setting-format-options-in-locale-files) in your theme's locale files.\n",
1525
1525
  "syntax": "string | time_tag: format: string",
1526
1526
  "path": "/blogs/potion-notions/how-to-tell-if-you-have-run-out-of-invisibility-potion",
1527
1527
  "raw_liquid": "{{ article.created_at | time_tag: format: 'abbreviated_date' }}",
@@ -1600,7 +1600,7 @@
1600
1600
  "category": "format",
1601
1601
  "deprecated": false,
1602
1602
  "deprecation_reason": "",
1603
- "description": "> Tip:\n> When using the JSON output in JavaScript, you don't need to wrap it in quotes because the `json` filter includes them.\n> The `json` filter also escapes any quotes inside the output.\n\n#### Product inventory\n\nWhen applied to a [`product` object](/api/liquid/objects/product) on any Shopify store created after December 5, 2017, the\n`json` filter doesn't output values for the `inventory_quantity` and `inventory_policy` properties of any associated\n[variants](/api/liquid/objects/variant). These properties are excluded to help prevent bots and crawlers from retrieving\ninventory quantities for stores to which they aren't granted access.\n\nIf you need inventory information, you can access it through individual variants.",
1603
+ "description": "> Tip:\n> When using the JSON output in JavaScript, you don't need to wrap it in quotes because the `json` filter includes them.\n> The `json` filter also escapes any quotes inside the output.\n\n#### Product inventory\n\nWhen applied to a [`product` object](/docs/api/liquid/objects/product) on any Shopify store created after December 5, 2017, the\n`json` filter doesn't output values for the `inventory_quantity` and `inventory_policy` properties of any associated\n[variants](/docs/api/liquid/objects/variant). These properties are excluded to help prevent bots and crawlers from retrieving\ninventory quantities for stores to which they aren't granted access.\n\nIf you need inventory information, you can access it through individual variants.",
1604
1604
  "parameters": [
1605
1605
 
1606
1606
  ],
@@ -1984,7 +1984,7 @@
1984
1984
  "category": "array",
1985
1985
  "deprecated": false,
1986
1986
  "deprecation_reason": "",
1987
- "description": "> Note:\n> The `concat` filter won't filter out duplicates. If you want to remove duplicates, then you need to use the\n> [`uniq` filter](/api/liquid/filters/uniq).",
1987
+ "description": "> Note:\n> The `concat` filter won't filter out duplicates. If you want to remove duplicates, then you need to use the\n> [`uniq` filter](/docs/api/liquid/filters/uniq).",
1988
1988
  "parameters": [
1989
1989
 
1990
1990
  ],
@@ -2057,7 +2057,7 @@
2057
2057
  "show_data_tab": true
2058
2058
  }
2059
2059
  ],
2060
- "summary": "Sets a default value for any variable whose value is one of the following:\n\n- [`empty`](/api/liquid/basics#empty)\n- [`false`](/api/liquid/basics#truthy-and-falsy)\n- [`nil`](/api/liquid/basics#nil)",
2060
+ "summary": "Sets a default value for any variable whose value is one of the following:\n\n- [`empty`](/docs/api/liquid/basics#empty)\n- [`false`](/docs/api/liquid/basics#truthy-and-falsy)\n- [`nil`](/docs/api/liquid/basics#nil)",
2061
2061
  "syntax": "variable | default: variable",
2062
2062
  "name": "default"
2063
2063
  },
@@ -2083,13 +2083,13 @@
2083
2083
  "description": "",
2084
2084
  "syntax": "",
2085
2085
  "path": "/",
2086
- "raw_liquid": "{{ 4 | divided_by: 2 }}",
2086
+ "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 }}",
2087
2087
  "parameter": false,
2088
2088
  "display_type": "text",
2089
2089
  "show_data_tab": true
2090
2090
  }
2091
2091
  ],
2092
- "summary": "Divides a number by a given number.",
2092
+ "summary": "Divides a number by a given number. The `divided_by` filter produces a result of the same type as the divisor. This means if you divide by an integer, the result will be an integer, and if you divide by a float, the result will be a float.",
2093
2093
  "syntax": "number | divided_by: number",
2094
2094
  "name": "divided_by"
2095
2095
  },
@@ -2792,7 +2792,7 @@
2792
2792
  },
2793
2793
  {
2794
2794
  "name": "Reversing strings",
2795
- "description": "You can't use the `reverse` filter on strings directly. However, you can use the [`split` filter](/api/liquid/filters/split) to create an array of characters in the string, reverse that array, and then use the [`join` filter](/api/liquid/filters/join) to combine them again.\n",
2795
+ "description": "You can't use the `reverse` filter on strings directly. However, you can use the [`split` filter](/docs/api/liquid/filters/split) to create an array of characters in the string, reverse that array, and then use the [`join` filter](/docs/api/liquid/filters/join) to combine them again.\n",
2796
2796
  "syntax": "",
2797
2797
  "path": "/collections/sale-potions",
2798
2798
  "raw_liquid": "{{ collection.title | split: '' | reverse | join: '' }}",
@@ -3499,7 +3499,7 @@
3499
3499
  "show_data_tab": false
3500
3500
  }
3501
3501
  ],
3502
- "summary": "Generates an HTML `<iframe>` tag containing the player for a given external video. The input for the `external_video_tag`\nfilter can be either a [`media` object](/api/liquid/objects/media) or [`external_video_url`](/api/liquid/filters/external_video_url).",
3502
+ "summary": "Generates an HTML `<iframe>` tag containing the player for a given external video. The input for the `external_video_tag`\nfilter can be either a [`media` object](/docs/api/liquid/objects/media) or [`external_video_url`](/docs/api/liquid/filters/external_video_url).",
3503
3503
  "syntax": "variable | external_video_tag",
3504
3504
  "name": "external_video_tag"
3505
3505
  },
@@ -3531,7 +3531,7 @@
3531
3531
  "show_data_tab": false
3532
3532
  }
3533
3533
  ],
3534
- "summary": "Returns the URL for a given external video. Use this filter to specify parameters for the external video player generated\nby the [`external_video_tag` filter](/api/liquid/filters/external_video_tag).",
3534
+ "summary": "Returns the URL for a given external video. Use this filter to specify parameters for the external video player generated\nby the [`external_video_tag` filter](/docs/api/liquid/filters/external_video_tag).",
3535
3535
  "syntax": "media | external_video_url: attribute: string",
3536
3536
  "name": "external_video_url"
3537
3537
  },
@@ -3539,7 +3539,7 @@
3539
3539
  "category": "media",
3540
3540
  "deprecated": false,
3541
3541
  "deprecation_reason": "",
3542
- "description": "By default, `width` and `height` attributes are added to the `<img>` tag based on the dimensions and aspect ratio from\nthe image URL. However, you can override these attributes with the [width](/api/liquid/filters/image_tag#image_tag-width) and [height](/api/liquid/filters/image_tag#image_tag-height)\nparameters. If only one parameter is provided, then only that attribute is added.\n\n> Note:\n> This filter automatically applies the `object-position` css style from the focal point value if set. For more\n> information, refer to the [`focal_point` object](/api/liquid/objects/focal_point).",
3542
+ "description": "By default, `width` and `height` attributes are added to the `<img>` tag based on the dimensions and aspect ratio from\nthe image URL. However, you can override these attributes with the [width](/docs/api/liquid/filters/image_tag#image_tag-width) and [height](/docs/api/liquid/filters/image_tag#image_tag-height)\nparameters. If only one parameter is provided, then only that attribute is added.\n\n> Note:\n> This filter automatically applies the `object-position` css style from the focal point value if set. For more\n> information, refer to the [`focal_point` object](/docs/api/liquid/objects/focal_point).",
3543
3543
  "parameters": [
3544
3544
  {
3545
3545
  "description": "The width of the image.",
@@ -3659,7 +3659,7 @@
3659
3659
  },
3660
3660
  {
3661
3661
  "name": "srcset",
3662
- "description": "By default, Shopify generates a `srcset`. However, you can create your own `srcset`.\nThe `srcset` parameter takes precedence over the [`width` parameter](/api/liquid/filters/image_tag#image_tag-width).\nYou shouldn't to use the `srcset` parameter unless you want to remove the attribute by setting the parameter to `nil`.\n",
3662
+ "description": "By default, Shopify generates a `srcset`. However, you can create your own `srcset`.\nThe `srcset` parameter takes precedence over the [`width` parameter](/docs/api/liquid/filters/image_tag#image_tag-width).\nYou shouldn't to use the `srcset` parameter unless you want to remove the attribute by setting the parameter to `nil`.\n",
3663
3663
  "syntax": "image_url | image_tag: srcset: string",
3664
3664
  "path": "/products/health-potion",
3665
3665
  "raw_liquid": "{{ product | image_url: width: 200 | image_tag: srcset: nil }}",
@@ -3698,7 +3698,7 @@
3698
3698
  "show_data_tab": true
3699
3699
  }
3700
3700
  ],
3701
- "summary": "Generates an HTML `<img>` tag for a given [`image_url`](/api/liquid/filters/image_url).",
3701
+ "summary": "Generates an HTML `<img>` tag for a given [`image_url`](/docs/api/liquid/filters/image_url).",
3702
3702
  "syntax": "string | image_tag",
3703
3703
  "name": "image_tag"
3704
3704
  },
@@ -3814,7 +3814,7 @@
3814
3814
  "category": "media",
3815
3815
  "deprecated": false,
3816
3816
  "deprecation_reason": "",
3817
- "description": "> Note:\n> When `mp4` videos are uploaded, Shopify generates an `m3u8` file as an additional [`video_source`](/api/liquid/objects/video_source).\n> An `m3u8` file enables video players to leverage [HTTP live streaming (HLS)](https://developer.apple.com/streaming/),\n> resulting in an optimized video experience based on the user's internet connection. If loop is enabled, the HLS source is not used\n> in order to allow progessive download to cache the video.\n>\n> If the `m3u8` source isn't supported, then the player falls back to the `mp4` source.",
3817
+ "description": "> Note:\n> When `mp4` videos are uploaded, Shopify generates an `m3u8` file as an additional [`video_source`](/docs/api/liquid/objects/video_source).\n> An `m3u8` file enables video players to leverage [HTTP live streaming (HLS)](https://developer.apple.com/streaming/),\n> resulting in an optimized video experience based on the user's internet connection. If loop is enabled, the HLS source is not used\n> in order to allow progessive download to cache the video.\n>\n> If the `m3u8` source isn't supported, then the player falls back to the `mp4` source.",
3818
3818
  "parameters": [
3819
3819
  {
3820
3820
  "description": "The dimensions of the video's poster image.",
@@ -3891,14 +3891,14 @@
3891
3891
  "description": "Most metafield types return a simple HTML element:\n\n| Type | Element | Attributes |\n| --- | --- | --- |\n| `boolean` | `<span>` | `class=\"metafield-boolean\"` |\n| `collection_reference` | `<a>` | `class=\"metafield-collection_reference\"` |\n| `color` | `<span>` | `class=\"metafield-color\"` |\n| `date` | `<time>` | `datetime=\"<the metafield value>\"`<br><br>`class=\"metafield-date\"`<br><br>Value is localized to the customer |\n| `date_time` | `<time>` | `datetime=\"<the metafield value>\"`<br><br>`class=\"metafield-date\"`<br><br>Value is localized to the customer |\n| `json` | `<script>` | `type=\"application/json\"`<br><br>`class=\"metafield-json\"` |\n| `money` | `<span>` | `class=\"metafield-money\"`<br><br>Value is formatted using the store's [HTML with currency setting](https://help.shopify.com/manual/payments/currency-formatting) |\n| `multi_line_text_field` | `<span>` | `class=\"metafield-multi_line_text_field\"` |\n| `number_decimal` | `<span>` | `class=\"metafield-number_decimal\"` |\n| `number_integer` | `<span>` | `class=\"metafield-number_integer\"` |\n| `page_reference` | `<a>` | `class=\"metafield-page_reference\"` |\n| `product_reference` | `<a>` | `class=\"metafield-page_reference\"` |\n| `rating` | `<span>` | `class=\"metafield-rating\"` | |\n| `single_line_text_field` | `<span>` | `class=\"metafield-single_line_text_field\"` |\n| `url` | `<a>` | `class=\"metafield-url\"` |\n| `variant_reference` | `<a>` | `class=\"metafield-variant_reference\"` |\n| `rich_text_field` | <div> | `class=\"metafield-rich_text_field\"` |\n",
3892
3892
  "syntax": "",
3893
3893
  "path": "/products/health-potion",
3894
- "raw_liquid": "<!-- boolean -->\n{{ product.metafields.information.seasonal | metafield_tag }}\n\n<!-- collection_reference -->\n{{ product.metafields.information.related_collection | metafield_tag }}\n\n<!-- color -->\n{{ product.metafields.details.potion_color | metafield_tag }}\n\n<!-- date -->\n{{ product.metafields.information.expiry | metafield_tag }}\n\n<!-- date_time -->\n{{ product.metafields.information.brew_date | metafield_tag }}\n\n<!-- json -->\n{{ product.metafields.information.burn_temperature | metafield_tag }}\n\n<!-- money -->\n{{ product.metafields.details.price_per_ml | metafield_tag }}\n\n<!-- multi_line_text_field -->\n{{ product.metafields.information.shipping | metafield_tag }}\n\n<!-- number_decimal -->\n{{ product.metafields.information.salinity | metafield_tag }}\n\n<!-- number_integer -->\n{{ product.metafields.information.doses_per_day | metafield_tag }}\n\n<!-- page_reference -->\n{{ product.metafields.information.dosage | metafield_tag }}\n\n<!-- product_reference -->\n{{ product.metafields.information.related_product | metafield_tag }}\n\n<!-- rating -->\n{{ product.metafields.details.rating | metafield_tag }}\n\n<!-- single_line_text_field -->\n{{ product.metafields.information.directions | metafield_tag }}\n\n<!-- url -->\n{{ product.metafields.information.health | metafield_tag }}\n\n<!-- variant_reference -->\n{{ product.metafields.information.health | metafield_tag }}\n\n<!-- rich_text_field -->\n{{ product.metafields.information.health | metafield_tag }}",
3894
+ "raw_liquid": "<!-- boolean -->\n{{ product.metafields.information.seasonal | metafield_tag }}\n\n<!-- collection_reference -->\n{{ product.metafields.information.related_collection | metafield_tag }}\n\n<!-- color -->\n{{ product.metafields.details.potion_color | metafield_tag }}\n\n<!-- date -->\n{{ product.metafields.information.expiry | metafield_tag }}\n\n<!-- date_time -->\n{{ product.metafields.information.brew_date | metafield_tag }}\n\n<!-- json -->\n{{ product.metafields.information.burn_temperature | metafield_tag }}\n\n<!-- money -->\n{{ product.metafields.details.price_per_ml | metafield_tag }}\n\n<!-- multi_line_text_field -->\n{{ product.metafields.information.shipping | metafield_tag }}\n\n<!-- number_decimal -->\n{{ product.metafields.information.salinity | metafield_tag }}\n\n<!-- number_integer -->\n{{ product.metafields.information.doses_per_day | metafield_tag }}\n\n<!-- page_reference -->\n{{ product.metafields.information.dosage | metafield_tag }}\n\n<!-- product_reference -->\n{{ product.metafields.information.related_product | metafield_tag }}\n\n<!-- rating -->\n{{ product.metafields.details.rating | metafield_tag }}\n\n<!-- single_line_text_field -->\n{{ product.metafields.information.directions | metafield_tag }}\n\n<!-- url -->\n{{ product.metafields.information.health | metafield_tag }}\n\n<!-- variant_reference -->\n{{ product.metafields.information.health | metafield_tag }}\n\n<!-- rich_text_field -->\n{{ product.metafields.information.rich_description | metafield_tag }}",
3895
3895
  "parameter": false,
3896
3896
  "display_type": "text",
3897
3897
  "show_data_tab": false
3898
3898
  },
3899
3899
  {
3900
3900
  "name": "Complex types",
3901
- "description": "\nThe following metafield types return nested elements, or different elements depending on the metafield contents:\n\n- [`dimension`](/api/liquid/filters/metafield_tag#metafield_tag-dimension)\n- [`file_reference`](/api/liquid/filters/metafield_tag#metafield_tag-file_reference)\n- [`list.single_line_text_field`](/api/liquid/filters/metafield_tag#metafield_tag-list.single_line_text_field)\n- [`volume`](/api/liquid/filters/metafield_tag#metafield_tag-volume)\n- [`weight`](/api/liquid/filters/metafield_tag#metafield_tag-weight)",
3901
+ "description": "\nThe following metafield types return nested elements, or different elements depending on the metafield contents:\n\n- [`dimension`](/docs/api/liquid/filters/metafield_tag#metafield_tag-dimension)\n- [`file_reference`](/docs/api/liquid/filters/metafield_tag#metafield_tag-file_reference)\n- [`list.single_line_text_field`](/docs/api/liquid/filters/metafield_tag#metafield_tag-list.single_line_text_field)\n- [`volume`](/docs/api/liquid/filters/metafield_tag#metafield_tag-volume)\n- [`weight`](/docs/api/liquid/filters/metafield_tag#metafield_tag-weight)\n",
3902
3902
  "syntax": "",
3903
3903
  "path": "/products/health-potion",
3904
3904
  "raw_liquid": "",
@@ -3918,7 +3918,7 @@
3918
3918
  },
3919
3919
  {
3920
3920
  "name": "file_reference",
3921
- "description": "The output varies depending on the type of file. There are the following categories of file type:\n\n| File type | Description |\n| --- | --- |\n| Image | Images in the format of `jpg`, `png`, `gif`, `heic`, and `webp`. |\n| Video | Videos in the format of `mov`, and `mp4`. |\n| Other | Any other file type. |\n\n##### Image\n\nOutputs an `<img>` element with the following attributes:\n\n| Attribute | Value |\n| --- | --- |\n| `src` | The image's URL. |\n| `alt` | The image's alt text. |\n| `class` | `metafield-file_reference` |\n\n##### Video\n\nOutputs a `<video>` element with the following attributes:\n\n| Attribute | Value |\n| --- | --- |\n| `src` | The video's URL. |\n| `poster` | The video's preview image (poster) URL. |\n| `playsinline` | N/A - Indicates the video will be played \"inline\" within the element's playback area. |\n| `preload` | `metadata` - Only metadata is pre-fetched before the video is played. |\n\nThe `<video>` element contains the following child elements:\n\n| Child element | HTML element | Attributes |\n| --- | --- | --- |\n| The video's multimedia playlist source, for [HTTP live streaming (HLS)](https://developer.apple.com/streaming/) | `<source>` | `src=\"<the video's m3u8 source URL>\"`<br><br>`type=\"application/x-mpegURL\"` |\n| The video's original source | `<source>` | `src=\"<the video's source URL>\"`<br><br>`type=\"<the video's original source MIME type>\"` |\n| The video's preview (poster) image | `<img>` | `src=\"<the video's preview image URL>\"` |\n\n##### Other\n\nOutputs an `<a>` element with a link to the file and the following attribute:\n\n| Attribute | Value |\n| --- | --- |\n| `class` | `metafield-file_reference` |\n\nThe `<a>` element contains an `<img>` element for the file's [preview image](/api/liquid/objects/generic_file#generic_file-preview_image) with the following attributes:\n\n| Attribute | Value |\n| --- | --- |\n| `src` | The file's preview image URL. |\n| `loading` | `lazy` - The image isn't loaded until it's almost in view. |\n",
3921
+ "description": "The output varies depending on the type of file. There are the following categories of file type:\n\n| File type | Description |\n| --- | --- |\n| Image | Images in the format of `jpg`, `png`, `gif`, `heic`, and `webp`. |\n| Video | Videos in the format of `mov`, and `mp4`. |\n| Other | Any other file type. |\n\n##### Image\n\nOutputs an `<img>` element with the following attributes:\n\n| Attribute | Value |\n| --- | --- |\n| `src` | The image's URL. |\n| `alt` | The image's alt text. |\n| `class` | `metafield-file_reference` |\n\n##### Video\n\nOutputs a `<video>` element with the following attributes:\n\n| Attribute | Value |\n| --- | --- |\n| `src` | The video's URL. |\n| `poster` | The video's preview image (poster) URL. |\n| `playsinline` | N/A - Indicates the video will be played \"inline\" within the element's playback area. |\n| `preload` | `metadata` - Only metadata is pre-fetched before the video is played. |\n\nThe `<video>` element contains the following child elements:\n\n| Child element | HTML element | Attributes |\n| --- | --- | --- |\n| The video's multimedia playlist source, for [HTTP live streaming (HLS)](https://developer.apple.com/streaming/) | `<source>` | `src=\"<the video's m3u8 source URL>\"`<br><br>`type=\"application/x-mpegURL\"` |\n| The video's original source | `<source>` | `src=\"<the video's source URL>\"`<br><br>`type=\"<the video's original source MIME type>\"` |\n| The video's preview (poster) image | `<img>` | `src=\"<the video's preview image URL>\"` |\n\n##### Other\n\nOutputs an `<a>` element with a link to the file and the following attribute:\n\n| Attribute | Value |\n| --- | --- |\n| `class` | `metafield-file_reference` |\n\nThe `<a>` element contains an `<img>` element for the file's [preview image](/docs/api/liquid/objects/generic_file#generic_file-preview_image) with the following attributes:\n\n| Attribute | Value |\n| --- | --- |\n| `src` | The file's preview image URL. |\n| `loading` | `lazy` - The image isn't loaded until it's almost in view. |\n",
3922
3922
  "syntax": "",
3923
3923
  "path": "/products/health-potion",
3924
3924
  "raw_liquid": "<!-- Image -->\n{{ product.metafields.information.promo_image | metafield_tag }}\n\n<!-- Video -->\n{{ product.metafields.information.promo_video | metafield_tag }}\n\n<!-- Other -->\n{{ product.metafields.information.disclaimers | metafield_tag }}",
@@ -3928,10 +3928,10 @@
3928
3928
  },
3929
3929
  {
3930
3930
  "name": "list.single_line_text_field",
3931
- "description": "Outputs a `<ul>` element with the following attribute:\n\n| Attribute | Value |\n| --- | --- |\n| `class` | `metafield-single_line_text_field-array` |\n\nThe `<ul>` element contains an `<li>` element for each item in the list with a `class` of `metafield-single_line_text_field`.\n",
3931
+ "description": "Outputs a `<ul>` element by default with the following attribute:\n\n| Attribute | Value |\n| --- | --- |\n| `class` | `metafield-single_line_text_field-array` |\n\nThe `<ul>` element contains an `<li>` element for each item in the list with a `class` of `metafield-single_line_text_field`.\n\nTo output an `<ol>` element, pass the `list_format` parameter with a value of `ordered`.\n",
3932
3932
  "syntax": "",
3933
3933
  "path": "/products/health-potion",
3934
- "raw_liquid": "{{ product.metafields.information.pickup_locations | metafield_tag }}",
3934
+ "raw_liquid": "<!-- <ul> element -->\n{{ product.metafields.information.pickup_locations | metafield_tag }}\n\n<!-- <ol> element -->\n{{ product.metafields.information.pickup_locations | metafield_tag: list_format: 'ordered' }}",
3935
3935
  "parameter": false,
3936
3936
  "display_type": "text",
3937
3937
  "show_data_tab": false
@@ -4117,7 +4117,7 @@
4117
4117
  "show_data_tab": true
4118
4118
  }
4119
4119
  ],
4120
- "summary": "Formats a given price based on the store's [**HTML without currency** setting](https://help.shopify.com/manual/payments/currency-formatting), excluding the decimal separator\n(either `.` or `,`) and trailing zeros.\n\nIf the price has a non-zero decimal value, then the output is the same as the [`money` filter](/api/liquid/filters#money).",
4120
+ "summary": "Formats a given price based on the store's [**HTML without currency** setting](https://help.shopify.com/manual/payments/currency-formatting), excluding the decimal separator\n(either `.` or `,`) and trailing zeros.\n\nIf the price has a non-zero decimal value, then the output is the same as the [`money` filter](/docs/api/liquid/filters#money).",
4121
4121
  "syntax": "number | money_without_trailing_zeros",
4122
4122
  "name": "money_without_trailing_zeros"
4123
4123
  },
@@ -4149,10 +4149,40 @@
4149
4149
  "show_data_tab": true
4150
4150
  }
4151
4151
  ],
4152
- "summary": "Generates HTML for a set of links for paginated results. Must be applied to the [`paginate` object](/api/liquid/objects/paginate).",
4152
+ "summary": "Generates HTML for a set of links for paginated results. Must be applied to the [`paginate` object](/docs/api/liquid/objects/paginate).",
4153
4153
  "syntax": "paginate | default_pagination",
4154
4154
  "name": "default_pagination"
4155
4155
  },
4156
+ {
4157
+ "category": "customer",
4158
+ "deprecated": false,
4159
+ "deprecation_reason": "",
4160
+ "description": "Configure the storefront for Follow on Shop. [Learn more](https://help.shopify.com/manual/online-store/themes/customizing-themes/follow-on-shop)\n\n> Note:\n> The presence of the [Shop](/docs/api/liquid/objects/shop) object\n> is required for validation purposes only.\n\n> Note:\n> The `action` specified is always `'follow'`. If this parameter is not supplied the button will not render.\n\n```liquid\n{{ shop | login_button: action: 'follow' }}\n```",
4161
+ "parameters": [
4162
+ {
4163
+ "description": "Specify 'follow' for the follow flow.",
4164
+ "name": "action",
4165
+ "required": true,
4166
+ "types": [
4167
+ "string"
4168
+ ]
4169
+ }
4170
+ ],
4171
+ "return_type": [
4172
+ {
4173
+ "type": "string",
4174
+ "name": "",
4175
+ "description": "",
4176
+ "array_value": ""
4177
+ }
4178
+ ],
4179
+ "examples": [
4180
+
4181
+ ],
4182
+ "summary": "Generates an HTML Button that enables a customer to follow the Shop in the Shop App",
4183
+ "syntax": "shop | login_button: action: 'follow'",
4184
+ "name": "login_button"
4185
+ },
4156
4186
  {
4157
4187
  "category": "string",
4158
4188
  "deprecated": false,
@@ -4213,7 +4243,7 @@
4213
4243
  "show_data_tab": true
4214
4244
  }
4215
4245
  ],
4216
- "summary": "Converts a string into a [handle](/api/liquid/basics#handles).",
4246
+ "summary": "Converts a string into a [handle](/docs/api/liquid/basics#handles).",
4217
4247
  "syntax": "string | handleize",
4218
4248
  "name": "handleize"
4219
4249
  },
@@ -4253,7 +4283,7 @@
4253
4283
  "category": "string",
4254
4284
  "deprecated": false,
4255
4285
  "deprecation_reason": "",
4256
- "description": "The `url_param_escape` filter escapes the same characters as [`url_escape`](/api/liquid/filters/url_escape), with the\naddition of `&`.",
4286
+ "description": "The `url_param_escape` filter escapes the same characters as [`url_escape`](/docs/api/liquid/filters/url_escape), with the\naddition of `&`.",
4257
4287
  "parameters": [
4258
4288
 
4259
4289
  ],
@@ -4525,7 +4555,7 @@
4525
4555
  {
4526
4556
  "category": "media",
4527
4557
  "deprecated": true,
4528
- "deprecation_reason": "The `article_img_url` filter has been replaced by [`image_url`](/api/liquid/filters/image_url).",
4558
+ "deprecation_reason": "The `article_img_url` filter has been replaced by [`image_url`](/docs/api/liquid/filters/image_url).",
4529
4559
  "description": "",
4530
4560
  "parameters": [
4531
4561
  {
@@ -4558,7 +4588,7 @@
4558
4588
  },
4559
4589
  {
4560
4590
  "name": "size",
4561
- "description": "By default, the `article_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/api/liquid/filters/img_url#img_url-size).\n",
4591
+ "description": "By default, the `article_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/docs/api/liquid/filters/img_url#img_url-size).\n",
4562
4592
  "syntax": "image | article_img_url: string",
4563
4593
  "path": "/blogs/potion-notions/how-to-tell-if-you-have-run-out-of-invisibility-potion",
4564
4594
  "raw_liquid": "{{ article.image | article_img_url: 'large' }}",
@@ -4567,7 +4597,7 @@
4567
4597
  "show_data_tab": true
4568
4598
  }
4569
4599
  ],
4570
- "summary": "Returns the [CDN URL](/themes/best-practices/performance/platform#shopify-cdn) for an [article's image](/api/liquid/objects/article#article-image).",
4600
+ "summary": "Returns the [CDN URL](/themes/best-practices/performance/platform#shopify-cdn) for an [article's image](/docs/api/liquid/objects/article#article-image).",
4571
4601
  "syntax": "variable | article_img_url",
4572
4602
  "name": "article_img_url"
4573
4603
  },
@@ -4607,7 +4637,7 @@
4607
4637
  },
4608
4638
  {
4609
4639
  "name": "size",
4610
- "description": "By default, the `asset_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/api/liquid/filters/img_url#img_url-size).\n",
4640
+ "description": "By default, the `asset_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/docs/api/liquid/filters/img_url#img_url-size).\n",
4611
4641
  "syntax": "image | asset_img_url: string",
4612
4642
  "path": "/",
4613
4643
  "raw_liquid": "{{ 'red-and-black-bramble-berries.jpg' | asset_img_url: 'large' }}",
@@ -4655,7 +4685,7 @@
4655
4685
  {
4656
4686
  "category": "media",
4657
4687
  "deprecated": true,
4658
- "deprecation_reason": "The `collection_img_url` filter has been replaced by [`image_url`](/api/liquid/filters/image_url).",
4688
+ "deprecation_reason": "The `collection_img_url` filter has been replaced by [`image_url`](/docs/api/liquid/filters/image_url).",
4659
4689
  "description": "",
4660
4690
  "parameters": [
4661
4691
  {
@@ -4688,7 +4718,7 @@
4688
4718
  },
4689
4719
  {
4690
4720
  "name": "The size parameter",
4691
- "description": "By default, the `collection_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/api/liquid/filters/img_url#img_url-size).\n",
4721
+ "description": "By default, the `collection_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/docs/api/liquid/filters/img_url#img_url-size).\n",
4692
4722
  "syntax": "image | collection_img_url: string",
4693
4723
  "path": "/collections/sale-potions",
4694
4724
  "raw_liquid": "{{ collection.image | collection_img_url: 'large' }}",
@@ -4697,7 +4727,7 @@
4697
4727
  "show_data_tab": true
4698
4728
  }
4699
4729
  ],
4700
- "summary": "Returns the [CDN URL](/themes/best-practices/performance/platform#shopify-cdn) for a [collection's image](/api/liquid/objects/collection#collection-image).",
4730
+ "summary": "Returns the [CDN URL](/themes/best-practices/performance/platform#shopify-cdn) for a [collection's image](/docs/api/liquid/objects/collection#collection-image).",
4701
4731
  "syntax": "variable | collection_img_url",
4702
4732
  "name": "collection_img_url"
4703
4733
  },
@@ -4737,7 +4767,7 @@
4737
4767
  },
4738
4768
  {
4739
4769
  "name": "The size parameter",
4740
- "description": "By default, the `file_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/api/liquid/filters/img_url#img_url-size).\n",
4770
+ "description": "By default, the `file_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/docs/api/liquid/filters/img_url#img_url-size).\n",
4741
4771
  "syntax": "image | file_img_url: string",
4742
4772
  "path": "/",
4743
4773
  "raw_liquid": "{{ 'potions-header.png' | file_img_url: 'large' }}",
@@ -4793,7 +4823,7 @@
4793
4823
  "category": "hosted_file",
4794
4824
  "deprecated": false,
4795
4825
  "deprecation_reason": "",
4796
- "description": "Global assets are kept in a directory on Shopify's server. Using global assets can be faster than loading the resource\ndirectly.\n\nDepending on the resource type, you might need to use an additional filter to load the resource. The following table\noutlines which filter to use for specific resource types.\n\n| Resource type | Additional filter |\n| --- | --- |\n| JavaScript (`.js`) | [`script_tag`](/api/liquid/filters/script_tag) |\n| CSS (`.css`) | [`stylesheet_tag`](/api/liquid/filters/stylesheet_tag) |\n\nThe following table outlines the available global assets:\n\n| Category | Assets |\n| --- | --- |\n| Firebug | - `firebug/firebug.css`<br>- `firebug/firebug.html`<br>- `firebug/firebug.js`<br>- `firebug/firebugx.js`<br>- `firebug/errorIcon.png`<br>- `firebug/infoIcon.png`<br>- `firebug/warningIcon.png` |\n| JavaScript libraries | - `controls.js`<br>- `dragdrop.js`<br>- `effects.js`<br>- `ga.js`<br>- `mootools.js` |\n| Lightbox | - `lightbox.css`<br>- `lightbox.js`<br><br>- `lightbox/v1/lightbox.css`<br>- `lightbox/v1/lightbox.js`<br><br>- `lightbox/v2/lightbox.css`<br>- `lightbox/v2/lightbox.js`<br>- `lightbox/v2/close.gif`<br>- `lightbox/v2/loading.gif`<br>- `lightbox/v2/overlay.png`<br>- `lightbox/v2/zoom-lg.gif`<br><br>- `lightbox/v204/lightbox.css`<br>- `lightbox/v204/lightbox.js`<br>- `lightbox/v204/bullet.gif`<br>- `lightbox/v204/close.gif`<br>- `lightbox/v204/closelabel.gif`<br>- `lightbox/v204/donatebutton.gif`<br>- `lightbox/v204/downloadicon.gif`<br>- `lightbox/v204/loading.gif`<br>- `lightbox/v204/nextlabel.png`<br>- `lightbox/v204/prevlabel.gif` |\n| Prototype | - `prototype.js`<br>- `prototype/1.5/prototype.js`<br>- `prototype/1.6/prototype.js` |\n| script.aculo.us | - `scriptaculous/1.8.2/scriptaculous.js`<br>- `scriptaculous/1.8.2/builder.js`<br>- `scriptaculous/1.8.2/controls.js`<br>- `scriptaculous/1.8.2/dragdrop.js`<br>- `scriptaculous/1.8.2/effects.js`<br>- `scriptaculous/1.8.2/slider.js`<br>- `scriptaculous/1.8.2/sound.js`<br>- `scriptaculous/1.8.2/unittest.js` |\n| Shopify | - `list-collection.css`<br>- `textile.css` |",
4826
+ "description": "Global assets are kept in a directory on Shopify's server. Using global assets can be faster than loading the resource\ndirectly.\n\nDepending on the resource type, you might need to use an additional filter to load the resource. The following table\noutlines which filter to use for specific resource types.\n\n| Resource type | Additional filter |\n| --- | --- |\n| JavaScript (`.js`) | [`script_tag`](/docs/api/liquid/filters/script_tag) |\n| CSS (`.css`) | [`stylesheet_tag`](/docs/api/liquid/filters/stylesheet_tag) |\n\nThe following table outlines the available global assets:\n\n| Category | Assets |\n| --- | --- |\n| Firebug | - `firebug/firebug.css`<br>- `firebug/firebug.html`<br>- `firebug/firebug.js`<br>- `firebug/firebugx.js`<br>- `firebug/errorIcon.png`<br>- `firebug/infoIcon.png`<br>- `firebug/warningIcon.png` |\n| JavaScript libraries | - `controls.js`<br>- `dragdrop.js`<br>- `effects.js`<br>- `ga.js`<br>- `mootools.js` |\n| Lightbox | - `lightbox.css`<br>- `lightbox.js`<br><br>- `lightbox/v1/lightbox.css`<br>- `lightbox/v1/lightbox.js`<br><br>- `lightbox/v2/lightbox.css`<br>- `lightbox/v2/lightbox.js`<br>- `lightbox/v2/close.gif`<br>- `lightbox/v2/loading.gif`<br>- `lightbox/v2/overlay.png`<br>- `lightbox/v2/zoom-lg.gif`<br><br>- `lightbox/v204/lightbox.css`<br>- `lightbox/v204/lightbox.js`<br>- `lightbox/v204/bullet.gif`<br>- `lightbox/v204/close.gif`<br>- `lightbox/v204/closelabel.gif`<br>- `lightbox/v204/donatebutton.gif`<br>- `lightbox/v204/downloadicon.gif`<br>- `lightbox/v204/loading.gif`<br>- `lightbox/v204/nextlabel.png`<br>- `lightbox/v204/prevlabel.gif` |\n| Prototype | - `prototype.js`<br>- `prototype/1.5/prototype.js`<br>- `prototype/1.6/prototype.js` |\n| script.aculo.us | - `scriptaculous/1.8.2/scriptaculous.js`<br>- `scriptaculous/1.8.2/builder.js`<br>- `scriptaculous/1.8.2/controls.js`<br>- `scriptaculous/1.8.2/dragdrop.js`<br>- `scriptaculous/1.8.2/effects.js`<br>- `scriptaculous/1.8.2/slider.js`<br>- `scriptaculous/1.8.2/sound.js`<br>- `scriptaculous/1.8.2/unittest.js` |\n| Shopify | - `list-collection.css`<br>- `textile.css` |",
4797
4827
  "parameters": [
4798
4828
 
4799
4829
  ],
@@ -4825,7 +4855,7 @@
4825
4855
  "category": "media",
4826
4856
  "deprecated": false,
4827
4857
  "deprecation_reason": "",
4828
- "description": "You can use the `image_url` filter on the following objects, as well as their `src` property:\n\n- [`article`](/api/liquid/objects/article)\n- [`collection`](/api/liquid/objects/collection)\n- [`image`](/api/liquid/objects/image)\n- [`line_item`](/api/liquid/objects/line_item)\n- [`product`](/api/liquid/objects/product)\n- [`variant`](/api/liquid/objects/variant)\n\n> Caution:\n> You need to specify either a [`width`](/api/liquid/filters/image_url#image_url-width) or\n> [`height`](/api/liquid/filters/image_url#image_url-height) parameter. If neither are specified, then an error is returned.\n\n> Note:\n> Regardless of the specified dimensions, an image can never be resized to be larger than its original dimensions.",
4858
+ "description": "You can use the `image_url` filter on the following objects, as well as their `src` property:\n\n- [`article`](/docs/api/liquid/objects/article)\n- [`collection`](/docs/api/liquid/objects/collection)\n- [`image`](/docs/api/liquid/objects/image)\n- [`line_item`](/docs/api/liquid/objects/line_item)\n- [`product`](/docs/api/liquid/objects/product)\n- [`variant`](/docs/api/liquid/objects/variant)\n- [`country`](/docs/api/liquid/objects/country)\n\n> Caution:\n> You need to specify either a [`width`](/docs/api/liquid/filters/image_url#image_url-width) or\n> [`height`](/docs/api/liquid/filters/image_url#image_url-height) parameter. If neither are specified, then an error is returned.\n\n> Note:\n> Regardless of the specified dimensions, an image can never be resized to be larger than its original dimensions.",
4829
4859
  "parameters": [
4830
4860
  {
4831
4861
  "description": "How the image should be cropped to match the desired dimensions.",
@@ -4909,10 +4939,10 @@
4909
4939
  },
4910
4940
  {
4911
4941
  "name": "crop",
4912
- "description": "Specify which part of the image to show if the specified dimensions result in an aspect ratio that differs from the original. You can use the following values:\n\n- `top`\n- `center`\n- `bottom`\n- `left`\n- `right`\n\nThe default value is `center`.\n",
4942
+ "description": "Specify which part of the image to show if the specified dimensions result in an aspect ratio that differs from the original. You can use the following values:\n\n- `top`\n- `center`\n- `bottom`\n- `left`\n- `right`\n- `region`\n\nThe default value is `center`.\n\nWhen using the `region` crop mode, the starting point for the crop is defined by `crop_left` and `crop_top` and extends to the `crop_width` and `crop_height`.\nOptionally, to resize the region extracted by the crop, use the `width` and `height` parameters.\n\n> Note:\n> Country flags are SVG images and can only be cropped if a value for `format`\n> is also provided.\n",
4913
4943
  "syntax": "variable | image_url: crop: string",
4914
4944
  "path": "/products/health-potion",
4915
- "raw_liquid": "{{ product | image_url: width: 400, height: 400, crop: 'bottom' }}",
4945
+ "raw_liquid": "{{ product | image_url: width: 400, height: 400, crop: 'bottom' }}\n\n{{ product | image_url: crop: 'region', crop_left: 32, crop_top: 32, crop_width: 512, crop_height: 512 }}\n\n{{ product | image_url: crop: 'region', width: 100, height: 100, crop_left: 32, crop_top: 32, crop_width: 512, crop_height: 512 }}",
4916
4946
  "parameter": true,
4917
4947
  "display_type": "text",
4918
4948
  "show_data_tab": true
@@ -4945,8 +4975,8 @@
4945
4975
  {
4946
4976
  "category": "media",
4947
4977
  "deprecated": true,
4948
- "deprecation_reason": "The `img_tag` filter has been replaced by [`image_tag`](/api/liquid/filters/image_tag).",
4949
- "description": "You can also use the `img_tag` filter on the following objects:\n\n- [`article`](/api/liquid/objects/article)\n- [`collection`](/api/liquid/objects/collection)\n- [`image`](/api/liquid/objects/image)\n- [`line_item`](/api/liquid/objects/line_item)\n- [`product`](/api/liquid/objects/product)\n- [`variant`](/api/liquid/objects/variant)",
4978
+ "deprecation_reason": "The `img_tag` filter has been replaced by [`image_tag`](/docs/api/liquid/filters/image_tag).",
4979
+ "description": "You can also use the `img_tag` filter on the following objects:\n\n- [`article`](/docs/api/liquid/objects/article)\n- [`collection`](/docs/api/liquid/objects/collection)\n- [`image`](/docs/api/liquid/objects/image)\n- [`line_item`](/docs/api/liquid/objects/line_item)\n- [`product`](/docs/api/liquid/objects/product)\n- [`variant`](/docs/api/liquid/objects/variant)",
4950
4980
  "parameters": [
4951
4981
  {
4952
4982
  "description": "The image's alt text.",
@@ -4994,7 +5024,7 @@
4994
5024
  },
4995
5025
  {
4996
5026
  "name": "Optional parameters",
4997
- "description": "The `img_tag` filter accepts 3 unnamed parameters, separated by commas, to specify the `alt` and `class` attributes, and the\n[size](/api/liquid/filters/img_url#img_url-size) of the image. Because the parameters are read in that order, you must include a value for each parameter before the last\nparameter you want to specify. If you don't want to include a parameter that precedes one that you do want to include, then\nyou can set the value to an empty string.\n\n> Note:\n> The `size` attribute of the `img_tag` filter can't be used in conjunction with the [`img_url` filter](/api/liquid/filters/img_url).\n> If both are used, then the `img_url` filter will override the `size` parameter of the `img_tag` filter.\n",
5027
+ "description": "The `img_tag` filter accepts 3 unnamed parameters, separated by commas, to specify the `alt` and `class` attributes, and the\n[size](/docs/api/liquid/filters/img_url#img_url-size) of the image. Because the parameters are read in that order, you must include a value for each parameter before the last\nparameter you want to specify. If you don't want to include a parameter that precedes one that you do want to include, then\nyou can set the value to an empty string.\n\n> Note:\n> The `size` attribute of the `img_tag` filter can't be used in conjunction with the [`img_url` filter](/docs/api/liquid/filters/img_url).\n> If both are used, then the `img_url` filter will override the `size` parameter of the `img_tag` filter.\n",
4998
5028
  "syntax": "variable | img_tag: string, string, string",
4999
5029
  "path": "/products/health-potion",
5000
5030
  "raw_liquid": "{{ product | img_tag: 'image alt text', '', '450x450' }}",
@@ -5010,8 +5040,8 @@
5010
5040
  {
5011
5041
  "category": "media",
5012
5042
  "deprecated": true,
5013
- "deprecation_reason": "The `img_url` filter has been replaced by [`image_url`](/api/liquid/filters/image_url).",
5014
- "description": "You can use the `img_url` filter on the following objects:\n\n- [`article`](/api/liquid/objects/article)\n- [`collection`](/api/liquid/objects/collection)\n- [`image`](/api/liquid/objects/image)\n- [`line_item`](/api/liquid/objects/line_item)\n- [`product`](/api/liquid/objects/product)\n- [`variant`](/api/liquid/objects/variant)",
5043
+ "deprecation_reason": "The `img_url` filter has been replaced by [`image_url`](/docs/api/liquid/filters/image_url).",
5044
+ "description": "You can use the `img_url` filter on the following objects:\n\n- [`article`](/docs/api/liquid/objects/article)\n- [`collection`](/docs/api/liquid/objects/collection)\n- [`image`](/docs/api/liquid/objects/image)\n- [`line_item`](/docs/api/liquid/objects/line_item)\n- [`product`](/docs/api/liquid/objects/product)\n- [`variant`](/docs/api/liquid/objects/variant)",
5015
5045
  "parameters": [
5016
5046
  {
5017
5047
  "description": "The desired image size.",
@@ -5187,7 +5217,7 @@
5187
5217
  "show_data_tab": true
5188
5218
  }
5189
5219
  ],
5190
- "summary": "Returns the URL for an SVG image of a given [payment type](/api/liquid/objects/shop#shop-enabled_payment_types).",
5220
+ "summary": "Returns the URL for an SVG image of a given [payment type](/docs/api/liquid/objects/shop#shop-enabled_payment_types).",
5191
5221
  "syntax": "type | payment_type_img_url",
5192
5222
  "name": "payment_type_img_url"
5193
5223
  },
@@ -5236,7 +5266,7 @@
5236
5266
  "show_data_tab": true
5237
5267
  }
5238
5268
  ],
5239
- "summary": "Generates an HTML `<svg>` tag for a given [payment type](/api/liquid/objects/shop#shop-enabled_payment_types).",
5269
+ "summary": "Generates an HTML `<svg>` tag for a given [payment type](/docs/api/liquid/objects/shop#shop-enabled_payment_types).",
5240
5270
  "syntax": "type | payment_type_svg_tag",
5241
5271
  "name": "payment_type_svg_tag"
5242
5272
  },
@@ -5293,7 +5323,7 @@
5293
5323
  "category": "html",
5294
5324
  "deprecated": false,
5295
5325
  "deprecation_reason": "",
5296
- "description": "You should use this filter sparingly. For example, consider preloading only resources necessary for rendering\nabove-the-fold content. To learn more about preloading resources, refer to\n[Performance best practices for Shopify themes](/themes/best-practices/performance#preload-key-resources-defer-or-avoid-loading-others).\n\n> Tip:\n> If you want to preload a stylesheet, then use [`stylesheet_tag`](/api/liquid/filters/stylesheet_tag). If you want to\n> preload an image, then use [`image_tag`](/api/liquid/filters/image_tag).\n\nThe input to this filter must be a URL from one of the following filters:\n\n- [`asset_url`](/api/liquid/filters/asset_url)\n- [`global_asset_url`](/api/liquid/filters/global_asset_url)\n- [`shopify_asset_url`](/api/liquid/filters/shopify_asset_url)\n\nThe `preload_tag` filter also requires an [`as` parameter](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-as)\nbased on the kind of resource being preloaded.",
5326
+ "description": "You should use this filter sparingly. For example, consider preloading only resources necessary for rendering\nabove-the-fold content. To learn more about preloading resources, refer to\n[Performance best practices for Shopify themes](/themes/best-practices/performance#preload-key-resources-defer-or-avoid-loading-others).\n\n> Tip:\n> If you want to preload a stylesheet, then use [`stylesheet_tag`](/docs/api/liquid/filters/stylesheet_tag). If you want to\n> preload an image, then use [`image_tag`](/docs/api/liquid/filters/image_tag).\n\nThe input to this filter must be a URL from one of the following filters:\n\n- [`asset_url`](/docs/api/liquid/filters/asset_url)\n- [`global_asset_url`](/docs/api/liquid/filters/global_asset_url)\n- [`shopify_asset_url`](/docs/api/liquid/filters/shopify_asset_url)\n\nThe `preload_tag` filter also requires an [`as` parameter](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-as)\nbased on the kind of resource being preloaded.",
5297
5327
  "parameters": [
5298
5328
  {
5299
5329
  "description": "The type of element or resource to preload.",
@@ -5341,7 +5371,7 @@
5341
5371
  {
5342
5372
  "category": "media",
5343
5373
  "deprecated": true,
5344
- "deprecation_reason": "The `product_img_url` filter has been replaced by [`image_url`](/api/liquid/filters/image_url).",
5374
+ "deprecation_reason": "The `product_img_url` filter has been replaced by [`image_url`](/docs/api/liquid/filters/image_url).",
5345
5375
  "description": "This can be the product's `featured_image` or any image from the `images` array.",
5346
5376
  "parameters": [
5347
5377
  {
@@ -5374,7 +5404,7 @@
5374
5404
  },
5375
5405
  {
5376
5406
  "name": "The size parameter",
5377
- "description": "By default, the `product_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/api/liquid/filters/img_url#img_url-size).\n",
5407
+ "description": "By default, the `product_img_url` filter returns the `small` version of the image (100 x 100 px). However, you can specify a [size](/docs/api/liquid/filters/img_url#img_url-size).\n",
5378
5408
  "syntax": "image | product_img_url: string",
5379
5409
  "path": "/products/health-potion",
5380
5410
  "raw_liquid": "{{ product.images[0] | product_img_url: 'large' }}",
@@ -5383,7 +5413,7 @@
5383
5413
  "show_data_tab": true
5384
5414
  }
5385
5415
  ],
5386
- "summary": "Returns the [CDN URL](/themes/best-practices/performance/platform#shopify-cdn) for a [product image](/api/liquid/objects/product).",
5416
+ "summary": "Returns the [CDN URL](/themes/best-practices/performance/platform#shopify-cdn) for a [product image](/docs/api/liquid/objects/product).",
5387
5417
  "syntax": "variable | product_img_url",
5388
5418
  "name": "product_img_url"
5389
5419
  },
@@ -5553,7 +5583,7 @@
5553
5583
  "show_data_tab": true
5554
5584
  }
5555
5585
  ],
5556
- "summary": "Generates a formatted weight for a [`variant` object](/api/liquid/objects/variant#variant-weight). The weight unit is\nset in the [general settings](https://www.shopify.com/admin/settings/general) in the Shopify admin.",
5586
+ "summary": "Generates a formatted weight for a [`variant` object](/docs/api/liquid/objects/variant#variant-weight). The weight unit is\nset in the [general settings](https://www.shopify.com/admin/settings/general) in the Shopify admin.",
5557
5587
  "syntax": "number | weight_with_unit",
5558
5588
  "name": "weight_with_unit"
5559
5589
  }