Add tech_docs/liquid_template_language.md
This commit is contained in:
89
tech_docs/liquid_template_language.md
Normal file
89
tech_docs/liquid_template_language.md
Normal file
@@ -0,0 +1,89 @@
|
|||||||
|
The Liquid template language is a simple, expressive, and powerful templating language originally created by Shopify. It's designed to enable developers to embed dynamic content in static web pages, particularly in e-commerce sites, but it's also widely used in static site generators like Jekyll and other web applications.
|
||||||
|
|
||||||
|
### Key Features of Liquid:
|
||||||
|
|
||||||
|
1. **Simple Syntax**:
|
||||||
|
- Liquid uses a combination of tags, filters, and objects to embed logic and dynamic content within templates.
|
||||||
|
- Tags: Control the logic (e.g., `{% if %}`, `{% for %}`, `{% assign %}`).
|
||||||
|
- Objects: Output data from variables (e.g., `{{ product.title }}`).
|
||||||
|
- Filters: Modify the output of objects (e.g., `{{ product.title | upcase }}`).
|
||||||
|
|
||||||
|
2. **Safe and Secure**:
|
||||||
|
- Liquid ensures that template authors can't execute arbitrary code, providing a secure way to embed logic within templates.
|
||||||
|
|
||||||
|
3. **Designed for Performance**:
|
||||||
|
- It's optimized for speed and efficiency, making it suitable for high-traffic e-commerce sites.
|
||||||
|
|
||||||
|
4. **Extensible**:
|
||||||
|
- Liquid allows for custom filters and tags, enabling developers to extend its functionality as needed.
|
||||||
|
|
||||||
|
### Basic Syntax Examples:
|
||||||
|
|
||||||
|
1. **Variables**:
|
||||||
|
```liquid
|
||||||
|
{{ variable_name }}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Tags**:
|
||||||
|
- Control structures, such as loops and conditionals:
|
||||||
|
```liquid
|
||||||
|
{% if product.available %}
|
||||||
|
This product is available.
|
||||||
|
{% else %}
|
||||||
|
This product is out of stock.
|
||||||
|
{% endif %}
|
||||||
|
```
|
||||||
|
|
||||||
|
- Iteration over collections:
|
||||||
|
```liquid
|
||||||
|
{% for product in products %}
|
||||||
|
{{ product.title }}
|
||||||
|
{% endfor %}
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Filters**:
|
||||||
|
- Used to modify output:
|
||||||
|
```liquid
|
||||||
|
{{ "hello world" | upcase }} <!-- Outputs: HELLO WORLD -->
|
||||||
|
{{ product.price | divided_by: 100 }} <!-- Converts cents to dollars -->
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Use Cases:
|
||||||
|
|
||||||
|
1. **E-commerce Sites**:
|
||||||
|
- Display product information, handle shopping cart logic, and render customer data dynamically.
|
||||||
|
|
||||||
|
2. **Static Site Generators**:
|
||||||
|
- Used in Jekyll to render dynamic content on static websites.
|
||||||
|
|
||||||
|
3. **Content Management Systems**:
|
||||||
|
- Integrates with CMS platforms to allow for dynamic content rendering.
|
||||||
|
|
||||||
|
### Example in an E-commerce Context:
|
||||||
|
|
||||||
|
```liquid
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{{ page.title }}</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>{{ shop.name }}</h1>
|
||||||
|
<ul>
|
||||||
|
{% for product in collections.frontpage.products %}
|
||||||
|
<li>
|
||||||
|
<h2>{{ product.title }}</h2>
|
||||||
|
<p>{{ product.description }}</p>
|
||||||
|
<p>Price: {{ product.price | divided_by: 100 | currency }}</p>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example, the Liquid template dynamically generates a list of products, displaying their title, description, and price.
|
||||||
|
|
||||||
|
### Conclusion
|
||||||
|
|
||||||
|
Liquid is a versatile and secure templating language well-suited for applications where dynamic content needs to be rendered safely and efficiently. Its straightforward syntax and extensive use in platforms like Shopify and Jekyll make it a popular choice among developers.
|
||||||
Reference in New Issue
Block a user