theme-check 1.13.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/data/shopify_liquid/documentation/filters.json +90 -60
- data/data/shopify_liquid/documentation/objects.json +996 -348
- data/data/shopify_liquid/documentation/tags.json +81 -30
- data/docs/checks/img_lazy_loading.md +7 -5
- data/docs/checks/schema_json_format.md +3 -3
- data/lib/theme_check/checks/img_lazy_loading.rb +1 -5
- data/lib/theme_check/cli.rb +15 -0
- data/lib/theme_check/language_server/completion_providers/filter_completion_provider.rb +15 -9
- data/lib/theme_check/shopify_liquid/documentation/markdown_template.rb +1 -1
- data/lib/theme_check/shopify_liquid/source_index/base_entry.rb +7 -1
- data/lib/theme_check/shopify_liquid/source_index/filter_entry.rb +5 -1
- data/lib/theme_check/shopify_liquid/source_index/object_entry.rb +7 -1
- data/lib/theme_check/shopify_liquid/source_index/parameter_entry.rb +4 -0
- data/lib/theme_check/shopify_liquid/source_index/property_entry.rb +13 -1
- data/lib/theme_check/shopify_liquid/source_index/return_type_entry.rb +4 -0
- data/lib/theme_check/shopify_liquid/source_index/tag_entry.rb +4 -0
- data/lib/theme_check/version.rb +1 -1
- metadata +3 -3
| @@ -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> &rarr; <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> &rarr; <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> &rarr; <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> &rarr; <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> &rarr; <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> &rarr; <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 | 
             
              },
         | 
| @@ -2657,7 +2657,7 @@ | |
| 2657 2657 | 
             
                    "description": "",
         | 
| 2658 2658 | 
             
                    "syntax": "",
         | 
| 2659 2659 | 
             
                    "path": "/",
         | 
| 2660 | 
            -
                    "raw_liquid": "{{ \"I hate it when I accidentally spill my duplication potion accidentally!\" |  | 
| 2660 | 
            +
                    "raw_liquid": "{{ \"I hate it when I accidentally spill my duplication potion accidentally!\" | remove_last: ' accidentally' }}",
         | 
| 2661 2661 | 
             
                    "parameter": false,
         | 
| 2662 2662 | 
             
                    "display_type": "text",
         | 
| 2663 2663 | 
             
                    "show_data_tab": true
         | 
| @@ -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.",
         | 
| @@ -3888,17 +3888,17 @@ | |
| 3888 3888 | 
             
                "examples": [
         | 
| 3889 3889 | 
             
                  {
         | 
| 3890 3890 | 
             
                    "name": "Basic types",
         | 
| 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",
         | 
| 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 }}",
         | 
| 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
         | 
| @@ -3965,7 +3965,7 @@ | |
| 3965 3965 | 
             
                "category": "metafield",
         | 
| 3966 3966 | 
             
                "deprecated": false,
         | 
| 3967 3967 | 
             
                "deprecation_reason": "",
         | 
| 3968 | 
            -
                "description": "The following outlines the output for each metafield type:\n\n| Metafield type | Output |\n| --- | --- |\n| `single_line_text_field` | The metafield text |\n| `multi_line_text_field` | The metafield text |\n| `page_reference` | The page title |\n| `product_reference` | The product title |\n| `collection_reference` | The collection title |\n| `variant_reference` | The variant title |\n| `file_reference` | The file URL |\n| `number_integer` | The number |\n| `number_decimal` | The number |\n| `date` | The date |\n| `date-time` | The date and time |\n| `url` | The URL |\n| `json` | The JSON |\n| `boolean` | The boolean value |\n| `color` | The color value |\n| `weight` | The weight value and unit |\n| `volume` | The volume value and unit |\n| `dimension` | The dimension value and unit |\n| `rating` | The rating value |\n| `list.single_line_text_field` | The metafield values converted to a sentence.<br><br>For example, if you had the values `Toronto`, `Ottawa`, and `Vancouver`, then the output would be:<br><br>`Toronto, Ottawa, and Vancouver` |\n| `money` | The money value, formatted using the store's [**HTML with currency** setting](https://help.shopify.com/manual/payments/currency-formatting). |",
         | 
| 3968 | 
            +
                "description": "The following outlines the output for each metafield type:\n\n| Metafield type | Output |\n| --- | --- |\n| `single_line_text_field` | The metafield text |\n| `multi_line_text_field` | The metafield text |\n| `page_reference` | The page title |\n| `product_reference` | The product title |\n| `collection_reference` | The collection title |\n| `variant_reference` | The variant title |\n| `file_reference` | The file URL |\n| `number_integer` | The number |\n| `number_decimal` | The number |\n| `date` | The date |\n| `date-time` | The date and time |\n| `url` | The URL |\n| `json` | The JSON |\n| `boolean` | The boolean value |\n| `color` | The color value |\n| `weight` | The weight value and unit |\n| `volume` | The volume value and unit |\n| `dimension` | The dimension value and unit |\n| `rating` | The rating value |\n| `list.single_line_text_field` | The metafield values converted to a sentence.<br><br>For example, if you had the values `Toronto`, `Ottawa`, and `Vancouver`, then the output would be:<br><br>`Toronto, Ottawa, and Vancouver` |\n| `money` | The money value, formatted using the store's [**HTML with currency** setting](https://help.shopify.com/manual/payments/currency-formatting). |\n| `rich_text_field` | The rich text value as simple text |",
         | 
| 3969 3969 | 
             
                "parameters": [
         | 
| 3970 3970 |  | 
| 3971 3971 | 
             
                ],
         | 
| @@ -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 | 
             
              }
         |