You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: app/views/pages/developer-guide/platformos-workflow/directory-structure/config.liquid
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@ metadata:
25
25
|safe_translate |true|If disabled, the `translate` filter (`t` is an alias for it) will mark the output as html_safe. This can lead to XSS vulnerability, if you provide user input as a variable, as it could contain malicious JavaScript. In such scenario, you should explicitly use another filter, `translate_escape` (or `t_escape`). However, by keeping this flag as `true`, the system will automatically use the equivalent of `t_escape` if you provide any variable to the translation key, making your application safer by default. We highly recommend keeping this flag to `true`.|
26
26
|skip_elasticsearch |false|If you do not use the `keyword` argument in `records`/`users` queries or `customizations`/`people` queries, you can increase performance by avoiding indexing data in the ELasticSearch by setting this flag to `true`.|
27
27
|slug_exact_match |true|If disabled, a page with slug `abc` will match not only `example.com/abc`, but also URLs like `example.com/abc/1`, `example.com/abc/1/x` and to control this behavior, you would need to set [max_deep_level Page property](/developer-guide/pages/pages#available-properties). By keeping this flag as true, only `example.com/abc` will be matched. Additionally, you will be able to use named parameters in the URLss, like /abc/:id. We highly recommend setting this flag to true.|
28
+
|string_interpolation |false|When enabled, allows using {% raw %}`{{ }}`{% endraw %} syntax inside double-quoted strings for variable interpolation (e.g., {% raw %}`{% assign greeting = "Hello {{ name }}!" %}`{% endraw %}). This provides a more readable alternative to filter chains. **Note:** Enabling this is a breaking change if you have existing templates with double-quoted strings containing literal {% raw %}`{{ }}`{% endraw %} text - use single quotes for literals instead. We recommend enabling this for new projects.|
28
29
|sync_assets |false|If enabled, with each deploy we will ensure that the state of `admin_assets` matches assets that were listed in the asset manifest, that is generated by pos-cli during pos-cli deploy.
29
30
|sync_translations |false|If enabled, translations will be synchronized on each sync/deploy similarly to other resources, meaning if you remove a translation form a translation file and sync it, it will disappear from the Instance. It will also remove all translations from the deleted file. The default behaviour (for backwards compatibility) is that translations will not be deleted; in order to delete a translation one needs to explicitly call `admin_translation_unset` GraphQL mutation. This setting is compatible with `modules_that_allow_delete_on_deploy`.
30
31
|translation_keys_to_ignore |[]|Allows to list translation keys which will not be updated/delete on sync/deploy. It is most useful if you would like to change translations using UI and will not reflect it in your codebase. Translations will still be created if not defined.
* **String interpolation in double-quoted strings**: You can now use `{{ }}` syntax inside double-quoted strings for cleaner, more readable variable interpolation. This feature is **disabled by default on existing instances** to prevent backwards compatibility issues, but **enabled by default on new instances**. To enable on an existing instance, add to your `config.yml`: `string_interpolation: true`
* Works with variables, property access, array access, and filters
28
+
* Supports filter chains: {% raw %}`"{{ name | upcase | truncate: 10 }}"`{% endraw %}
29
+
* Multiple interpolations: {% raw %}`"{{ first }} {{ last }}"`{% endraw %}
30
+
* Works in all tags that accept string values (assign, function, background, export, log, etc.):
31
+
```liquid
32
+
{% raw %}
33
+
{% assign var = "world" %}
34
+
{% log "hello {{ var }}" %}
35
+
{% assign greeting = "hello {{ var }}" %}
36
+
{% function res = "lib/func", arg: "hello {{ var }}" %}
37
+
{% endraw %}
38
+
```
39
+
40
+
**Important notes:**
41
+
* Single-quoted strings never interpolate (use for literal `{{ }}` text)
42
+
* **Breaking change if enabled:** Existing templates with double-quoted strings containing literal {% raw %}`{{ }}`{% endraw %} text will now interpolate. Use single quotes for literal text: {% raw %}`'Use {{ variable }} syntax'`{% endraw %}
* **Upgraded internal dependencies** for improved performance and security
47
+
* **Upgraded GraphQL gem to the latest version** for security and performance
17
48
* **Clearer error messages for `record_update` and `record_destroy`**: When a record with the provided ID cannot be found, the error message now clearly specifies which table was being searched. For example:
18
49
* Before: `Couldn't find Customization with 'id'=123`
19
50
* After: `Can't find Boats with id=123`
51
+
* **`assign` tag now supports hash/array operations directly**: The `assign` tag has been extended with capabilities previously only available through `hash_assign` (which is now deprecated). You can now use a single, unified syntax for all variable assignments, including initializing hash and array:
52
+
* **Empty hash/array literals**: {% raw %}`{% assign foo = {} %}`, `{% assign bar = [] %}`{% endraw %} (no need to do {% raw %}`'{}' | parse_json`{% endraw %} anymore)
53
+
* **Inline hash/array literals with values**: You can now create hashes and arrays with initial values directly in the assign tag. Variables are evaluated, and can be used both as values and as keys:
* **Mixed notation** (combining dots and brackets): {% raw %}`{% assign foo.bar["baz"] = "qux" %}`{% endraw %}
65
+
* **Array append with `<<`**: {% raw %}`{% assign foo << 'bar' %}`{% endraw %} (no need to use `array_add` filter)
66
+
* **Nested operations**: Full support for deeply nested hash and array assignments, e.g., {% raw %}`{% assign foo["bar"]["baz"]["qux"] = [] %}{% assign foo["bar"]["baz"]["qux"] << "first" %}`{% endraw %}
67
+
* **Performance**: Key lookups are pre-computed at parse time for faster rendering
68
+
* **`function` tag now supports the same hash/array syntax**: Bracket notation, dot notation, mixed notation, and array append with `<<` now work with `function` too:
69
+
* {% raw %}`{% function foo["bar"] = 'partials/compute', input: 'baz' %}`{% endraw %}
70
+
* {% raw %}`{% function foo.bar["baz"] = 'partials/get_name', id: 123 %}`{% endraw %}
71
+
* {% raw %}`{% function foo << 'partials/fetch_item', id: 1 %}`{% endraw %}
0 commit comments