--- url: https://docs.youcan.shop/changelog/theme-info.md --- `settings_schema.json` can declare the theme's name, author, version and support links in a `theme_info` entry. The `liquid`, `echo` and `dump` tags are fixed, and theme files are checked on save. *** # Theme info * The first entry of `config/settings_schema.json` can be a `theme_info` object. See [Theme info](/themes/config/settings_schema#theme-info). * `theme init`, a theme import and a save of `settings_schema.json` read it. A theme export writes it. * `theme_version` must be `X.Y.Z`. `theme_documentation_url` is required, with one of `theme_support_url` or `theme_support_email`. * An invalid `theme_info` is rejected with a 422 and one message per field. * `theme init` takes `--url` and `--inplace`. See [Commands](/themes/cli/commands). # Liquid * `{% liquid %}` takes one tag per line and has no closing tag. A line that starts with `#` is a comment. See [liquid](/themes/tags/liquid). * `{% echo %}` takes any expression and applies filters, the same as `{{ }}`. See [echo](/themes/tags/echo). * `{% dump %}` prints its value as JSON in a `
` block, and applies filters.
* `{% # %}` is an inline comment and renders nothing. It accepts whitespace control and several lines that each start with `#`.
* `replace` and `remove` accept `nil` input.
# Theme files
* Layouts, sections and snippets must use `.liquid`. Templates, locales and config files must use `.json`.
* `config/` accepts only `settings_schema.json` and `settings_data.json`.
* `theme dev` skips files whose name starts with a dot.
* Section `presets` accept `category`. Preset blocks take `type` and `settings`.