Generated by DeepSeek V3.2| Liquid (programming language) | |
|---|---|
| Name | Liquid |
| Paradigm | Template language, Domain-specific language |
| Designer | Shopify |
| Developer | Shopify |
| Latest release version | 5.4.0 |
| Latest release date | 19 December 2023 |
| Typing | Dynamic typing |
| Influenced by | Ruby (programming language), Jinja (template engine) |
| Operating system | Cross-platform |
| License | MIT License |
Liquid (programing language). Liquid is an open-source template language created by Shopify and written in Ruby (programming language). It is designed to be safe, extensible, and suitable for rendering user-facing content in web applications, particularly within the context of e-commerce. The language is most famously used as the core templating system for the Shopify platform, allowing merchants to customize their online storefronts.
Liquid serves as a secure, sandboxed Domain-specific language that separates template logic from application code. Its primary design goal is to allow untrusted users, such as storefront designers, to create dynamic templates without granting them access to the underlying server or database. This security model is a cornerstone of its adoption by platforms like Shopify and Jekyll (software). The language operates by combining static HTML with dynamic elements enclosed in special delimiters, which are processed by a Liquid engine before being sent to the client's web browser.
Liquid was created by Tobias Lütke, co-founder of Shopify, around 2006 to address the need for a safe templating system for the nascent e-commerce platform. It was open-sourced in 2006, with its development and stewardship remaining closely tied to Shopify. The language's evolution has been driven by the growing needs of the Shopify ecosystem, leading to numerous updates that maintain backward compatibility. Its adoption expanded significantly when it was chosen as the default templating engine for the static site generator Jekyll (software), which is widely used with GitHub Pages.
Liquid syntax uses a combination of objects, tags, and filters delimited by `` for output and `{% %}` for logic. Objects, represented by ``, output data from a template's context. Tags, such as `{% if %}` and `{% for %}`, provide control flow and iteration logic. Filters, like ``, modify the output of objects and are inspired by Unix pipeline concepts. Key features include its sandbox (computer security) environment, which restricts dangerous operations, and its support for custom tags and filters, allowing extension for specific platforms like Shopify or Jekyll (software).
The predominant use case for Liquid is within the Shopify platform, where it powers the theming layer for millions of online stores. It is also the templating engine for the popular static site generator Jekyll (software), used for blogs and documentation sites on GitHub Pages. Beyond these, Liquid is employed in other content management and e-commerce systems, such as Magento (via third-party modules) and Zendesk for customizing support ticket interfaces. Its safety and simplicity make it suitable for any application where non-developers need to create dynamic, data-driven templates.
The reference implementation is written in Ruby (programming language) and maintained by Shopify. Due to its popularity, ports to other programming languages have been created to integrate Liquid into diverse technology stacks. Notable implementations include `liquidjs` for JavaScript and Node.js environments, `dotLiquid` for the .NET Framework, `Liquid.py` for Python (programming language), and `liquid-java` for Java (programming language). These ports strive to maintain compatibility with the core Ruby (programming language) specification to ensure template portability.
Liquid shares conceptual similarities with other templating languages that emphasize safety and separation of concerns. It was influenced by the syntax and philosophy of Ruby (programming language) and Jinja (template engine), the latter being a popular engine in the Python (programming language) world. Other languages in a similar domain include Handlebars (template system) and Mustache (template system), though these typically offer fewer built-in security restrictions. Within the Shopify ecosystem, Liquid is complemented by proprietary query languages like GraphQL for data fetching.
Category:Template engines Category:Ruby (programming language) software Category:Shopify