如何在Liquid中注释代码?

83
在 Liquid 模板语言中,正确的注释方法是什么?
6个回答

132

Liquid中,您可以使用{% comment %}{% endcomment %}标签进行注释:

{% comment %} This is a comment in Liquid {% endcomment %}

无论是内联评论还是块级评论都没有关系。

{% comment %}
    This is a block comment in Liquid
{% endcomment %}

21
这个语法冗长且不符人体工学原理,让人出乎意料。我本以为可以在{% %}的运行块中添加像/* Fnord */这样的注释,例如 {% elseif /* 做其他事情:*/ %}。这真是令人遗憾。 - Dai
1
这种方式对于注释掉 {% if .. %} 这样的内容不起作用,所以它不仅啰嗦,而且有点混乱。 - Toskan
2
正确答案是下面只有几个赞的答案:https://dev59.com/F18d5IYBdhLWcg3wRAiE#64867876 - Toskan

21

如果和我一样,你正在寻找一个真正将“任何”/一切都注释掉的解决方案(如文档所述),你可以使用{% raw %}标签(与{% comment %}标签结合使用,如果你不想在浏览器中渲染任何东西)。

例子:

{% comment %}
    {% raw %}
        Here is some text that I don't want displayed and
        {% some_liquid_stuff_that_I_don't_want_parsed %}
    {% endraw %}
{% endcomment %}

不会显示任何内容。
相比之下,
{% raw %}
    Here is some text that I want displayed but
    {% some_liquid_stuff_that_I_don't_want_parsed %}
{% endraw %}

将呈现

这里有一些文本,我希望显示,但是

{% 我不想解析的一些液体内容 %}

同时

{% comment %}
    Here is some text that I don't want displayed but
    {% some_liquid_stuff_that_will_be_parsed %}
{% endcomment %}

可能会导致语法错误或Liquid异常,这取决于注释标签内部的Liquid代码的有效性。
一个例子是当一些正在进行中的代码被注释掉时,这就成为了一个问题:
{% comment %}
    {% if some test %}
         some stuff to render
    {% elsif... %}
         unfinished code...
{% endcomment %}

(在这种情况下,你可能会遇到一个未完成的if语句错误。)
关于这个GitHub讨论串的更多信息。

很好的解释!谢谢。这也是令人难以置信的冗长。 - Brian FitzGerald

7
Liquid允许您在Liquid模板中使用{% comment %}{% endcomment %}标签来留下未渲染的代码。
Anything you put between {% comment %} and {% endcomment %} tags
is turned into a comment.

输出:

Anything you put between  tags
is turned into a comment.

参考文档:Liquid中的注释标签


2
我非常喜欢你完成这个例子的方式,因为它使输入和输出都变得易读。 - Luke

7
从Liquid 5.4.0开始,您可以使用一个不需要闭合标签的短内联注释!语法如下:
{% # This is a new inline comment! %}

与其他标记一样,您可以添加连字符以删除其周围的空格:
{%- # This is a new inline comment without whitespace! -%}

甚至可以使用多行:

{%- 
################################
#  This is a really big block  #
################################ 
-%}

更多信息可在合并的PR中获取。


2
在Liquid中,您可以使用{% comment %}{% endcomment %}标签:
{% comment %} This would be commented out {% endcomment %}

您可以在代码块中使用它:

{% comment %}
    This would also be commented out
{% endcomment %}

如果{% comment %}{% endcomment %}标签能够注释任何内容,包括HTML元素等:
 {% comment %}
    <div class="commented_out">
    <p>This whole div would be commented out</p>
    </div>
{% endcomment %}

1
在液体中,使用注释标签将要注释的文本包含在注释标签内。
{%comment%}
Text to be commented
{%endcomment%}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接