shopify123.cn--一个shopify自学开店、赚美金的网站!
当前位置:shopify > shopify开店教程 > 正文

shopify主题入门(2.liquid:基础)

序言

Liquid是由Shopify建立并采用Ruby撰写的模版词汇。 它那时做为两个开放源码工程项目能在GitHub上赢得,并被很多不同的应用软件工程项目和公司采用。 Liquid是所有Shopify主轴的支撑点,用作在新浪网零售店网页读取静态文本。

此基础

Liquid采用条码、第一类和冷却系统的女团来读取静态文本。 它在Liquid模版文档中采用,那些文档形成了两个主轴。

条码

条码用以掌控模版的方法论,如条件句子、循环式句子、表达式句子等;除那些基本的方法论处置句子,Liquid还表述了一些主轴条码,如注解条码、Liquid条码、配置文件条码、layout条码、paginate条码、raw条码、render条码、section条码、style条码等。如:

{% if user.name == elvis %} Hey Elvis {% endif %}
第一类

第一类也叫作表达式,包涵用作在网页上显示静态文本的特性。包括自上而下第一类、文本第一类、其他表达式。输入两个第一类的特性:

{{ product.title }}
冷却系统

Liquid冷却系统用作修正位数、字符串、第一类和表达式的输入。 它被置放在输入记号 {{}} 或是 echo 句子中,并由管线字符串 | 表示。如:

{{ hello, world! | capitalize | remove: "world" }}

操作符

Liquid是没有数数操作符的,根本无法通过冷却系统展开演算;Liquid只有较为操作符和方法论操作符,还有两个“包涵”操作符。

操作符表明==等同于!=左右>小于<小于>=小于等同于<=小于等同于or方法论或and方法论与contains包涵。检查和字符串中与否存有子字符串;或是检查和字符串字符串与否存有字符串;特别注意,contains 根本无法用作检查和字符串。

“包涵”操作符实例:

{% if customer.email contains "shopify.com" %} Hey there, Shopify employee! {% endif %}

方法论操作符实例:

{% if true and false %} false {% endif %}

特别注意:较为操作符根本无法展开对角较为,下列实例会收起:

{% if true == 2 > 1 %} ... {% endif %}

在js里头,会演算“2 > 1”,回到“true”,再较为“true == true”,演算结论为“true”,但在Liquid里,会收起。

操作符错误率

较为操作符, 包涵操作符 > 方法论操作符

有两个需要特别注意的地方:

Liquid操作符不包涵方括号,采用方括号展开演算会收起;Liquid方法论操作符 and 和 or 具有完全相同错误率的,且紧密结合性从右向左。
{% if true or false and false %} 结论为true,下面的演算次序为“true or (false and false)”与演算回到false,或眩晕 {% endif %}

正则表达式

Liquid有五种正则表达式。

1. 字符串 String

采用下划线或单引号包覆。

{% assign my_string = "Hello World!" %}

2. 值 Number

值包涵有理数和十进制。

{% assign my_int = 25 %} {% assign my_float = 39.756 %}

3. 常量 Boolean

常量包涵 true 和 false。

{% assign foo = true %} {% assign bar = false %}

4. 无 Nil

nil是两个特殊的空值,是Liquid代码没有值回到时的值。

打印nil值到网页上,不会展示任何文本。

{% if fulfillment.tracking_numbers %} There is a tracking number. {% endif %}

5. 字符串 Array

字符串是能用以保存任何表达式类型的列表。

采用循环式访问字符串中的所有项。

{% for tag in product.tags %} {{ tag }} {% endfor %}

采用中括号访问字符串中特定下标的项(下标从0开始)。

<!-- if product.tags = "sale", "spring", "summer", "wholesale" --> {{ product.tag[0] }} {{ product.tag[1] }} {{ product.tag[2] }}

在Liquid中建立字符串只有一种方式:采用split冷却系统将两个字符串分解为字符串字符串。

{% assign words = Hi, how are you today? | split: %} {% for word in words %} {{ word }} {% endfor %}

6. 空降 EmptyDrop

通过 handle 访问两个已被删除的第一类(例如 page 或 post)时会回到 EmptyDrop 第一类。

例如,下列的page_1, page_2, page_3都是 EmptyDrop 第一类:

{% assign variable = "hello" %} {% assign page_1 = pages[variable] %} {% assign page_2 = pages["does-not-exist"] %} {% assign page_3 = pages.this-handle-does-not-exist %}

检查和第一类与否为空:

{% unless pages.about == empty %} <!-- This will only print if the page with handle "about" is not empty --> <h1>{{ pages.about.title }}</h1> <div>{{ pages.about.content }}</div> {% endunless %}

特别注意:经测试,blank 和 empty 都可检查和字符串或第一类与否为空,但官网采用 blank 来检查和字符串与否为空;采用 empty 检查和第一类与否为空,也没说两者能混用,为了保险起见,还是按照官网的实例来采用。

真值和假值(truthy 和falsy)

除 nil 和 false 为假值,其他值都为真值,包括 0、空字符串、EmptyDrop第一类。

去除条码空白符

{{ }} 和 {% %} 条码即使不输入任何文本,但仍然会在html中渲染两个空行;如果需要删除那些空行,能在条码中包涵连字符串,如:{{-, -}}, {%-, -%}。

版权保护: 本文由 shopify 原创,转载请保留链接: http://www.shopify123.cn/shopify/4016.html