Home

Awesome

@liquify/schema

This module contains JSON Schema Stores which are used by the Liquify IDE extension. This package is available on the npm registry for modules consumed within the project.

The sections schema store that was written for the Shopify Liquid variation is not MIT. Please ask permission before using, borrowing logic and/or adapting it into your projects. Unless you have consent, you cannot implement the structures.

Note  This only applies to the section schema store - All other schemas are MIT.

Why?

Liquify supports completions and validations for JSON files and embedded regions. Projects using the Liquify IDE tool require these stores to provide intellisense features.

Usage

If you are using the Liquify extension (vscode-liquid) these stores will be provided automatically. In cases where you require reference to the stores explicitly, then you can implement them using the unpkg CDN.

When referencing a schema, it is assumed that your text editor supports JSON $schema properties.

{
  "$schema": "https://unpkg.com/@liquify/schema/{store}"
}

Replace the {store} portion with the appropriate Schema Store below.

Internal Usage

Using the module within the workspace points main in the root package.json to the /package directory.

MIT Stores

Below the available MIT schema stores provided in this module.

Liquidrc

JSON Schema used for providing intellisense features in .liquidrc, .liquidrc.json files. The stores are also used in vscode workspace settings via the liquid.* property.

Æsthetic

JSON Schema used for providing intellisense features for .esthetic, esthetic.config.json or Æ.json files but also on the format property in the .liquidrc file. The stores are also used for on the package.json esthetic field and vscode workspace settings via the liquid.format.* property.

Æsthetic Package JSON

JSON Schema used for providing intellisense features in package.json files via the esthetic key property.

Syncify

JSON Schema used for providing intellisense features in syncify.config.json files.

This store is made available by default via the vscode-liquid extension.

Syncify Package JSON

JSON Schema used for providing intellisense features in package.json files via the syncify key property. This store is available within the @syncify/schema module.

This store is made available by default via the vscode-liquid extension.

Syncify ENV

JSON Schema used for providing intellisense features in .env.syncify and .env.syncify.json files. This store is available within the @syncify/schema module.

This store is made available by default via the vscode-liquid extension.

Syncify Shared Schema

JSON Schema used for providing intellisense features in Syncify Shared Section files. This store is available within the @syncify/schema module.

This store is made available by default via the vscode-liquid extension.

VSCode Liquid Configuration

JSON Schema used for providing intellisense features within vscode workspace and user settings. The stores are injected into the vscode-liquid extension configuration field of the containing package.json file.

Theme Liquid Docs

JSON Schema used for the data references available in the theme-liquid-docs repository, seeing as the company with 2000+ developers failed to provide them.

TODO

Licensed Stores

Below is the list of license imposed schema stores available. Licensed schemas are MIT usage for individuals and developers but Shopify Employees do not have permission to leverage, use, borrow or even view these schemas. You are not paid to copy or redistribute work that you did not create for your financial benefit or so you can score points at your job. Either write your own or contact me for usage.

Shopify Templates

JSON Schema used for providing intellisense features for Shopify OS 2.0 template files. The stores are for Shopify theme environments.

This store is made available by default via the vscode-liquid extension.

Shopify Sections

JSON Schema used for providing intellisense features within the Liquify Liquid Language Server package. The stores are passed to {% schema %} embedded regions of the Shopify Liquid variation.

This store is made available by default via the vscode-liquid extension.

Shopify Section Groups

JSON Schema used for providing intellisense features for Shopify Section Groups. The stores are for Shopify theme environments.

Shopify Settings Schema

JSON Schema used for providing intellisense features within settings_schema.json files. The stores are for Shopify theme environments.

Shopify Settings Data

JSON Schema used for providing intellisense features within settings_data.json files. The stores are for Shopify theme environments.

Contributing

The stores are written using Draft 7 of the JSON Schema specification. The markdownDescription field links to Markdown files contained in the stores/descriptions directory. Descriptions and generated and injected when running pnpm build and are rendered in hover and completion descriptions.

Publishing

The distributed package is published to the NPM Registry in an isolated manner. See the package.json scripts runners for prepublishOnly and prepublish for a contextual understanding of this.

Testing

The test directory links to generated stores in the package directory. The containing test/live directory is where stores are tested against CDN linked variations.

Author

🥛 Νίκος Σαβίδης <img align="right" src="https://img.shields.io/badge/-@niksavvidis-1DA1F2?logo=twitter&logoColor=fff" />