开源模板语言Liquid

本文介绍了Liquid,一门由Shopify用Ruby实现的开源模板语言。内容涵盖Liquid的三大组成部分:对象、标记和过滤器。讲解了对象的使用,标记中的控制流(如if、unless、elsif/else、case/when)、迭代和循环(如for、break、continue、limit、offset、reversed、cycle、tablerow)以及变量的创建和操作(assign、capture、increment、decrement)。文章通过代码示例详细解释了每个概念,帮助读者深入了解Liquid。
摘要由CSDN通过智能技术生成

其实我早就应该了解Liquid的,但是因为一些原因, 终究还是没去了解Liquid,直到今天,再次遇见它,我准备进入它的世界,看看它面纱下的样子。

Liquid是一门由Shopify使用Ruby实现的开源模板语言,这门语言应用比较广泛,所以才会再次遇见它,哈哈。Liquid的代码分为这三部分对象(object),标记(tag),过滤器(filter)

对象(object)

这个对象相当于就是面向对象编程语言里的类的实例化对象,其访问对象的属性的方法也是一样的,都是通过对象打点加属性访问。唯有一点不同就是,Liquid的对象和变量名必须写在双大括号中,具体格式如下:

{
  {
  object.property}}
上面这行代码就可以输出object对象的属性值了

标记(tag)

我感觉这个标记其实就是编程语言中的基本控制结构吧!先看个例子吧!

{% if user %}
  {
   { user.name }}  Hello World
{% endif %}

这个代码简直就是if-else即视感呐!只不过是把代码放在了大括号和百分号中间而已。上面只是一个小例子。下面开始详细说一下标记。

标记分为三类,控制流,迭代,变量赋值。下面分别说说这三个东西都是啥意思。

  • 控制流

    if和unless的用法

    控制流就是编程语言的基本控制结构了。控制流包括了if,这个前面已经说过。还包括了unless,这个unless是意思是除非!if是条件成立执行,而unless是条件不成立时执行,这俩一定是对头呐!下面看看unless的用法,和if的用法一模一样。

    {% unless user.name == 'zhangsan' %}
      Hello user.name
    {% endunless %}

    unless的用法和if的用法是不是一模一样呢?只是意思刚好相反而已。

    elsif/else的用法

    这个和if的用法是一样的,唯有一同就是这个是多个if嵌套用罢了,下面看代码

    {% if user.name == 'zhangsan' %}
      Hello , zhangsan
    {% elsif user.name == 'lisi' %}
      Hello , lisi 
    {% else %}
      Who are you?I do not kown you.
    {% endif %}

    是不是和if的用法一模一样呢?只是多个if嵌套而已,对不?

    case/when的用法

    这个和C#的case差不多,只是用法上有那么一点点的不同,看一下代码,就很容易的就明白了。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值