kik*_*ito 4 ruby templates liquid jekyll
Jekyll 定义了某些“变量”:site、content、page和post。paginator这些“变量”有几个“成员”。例如,post.date将返回帖子的日期,而post.url将返回其 url。
我的问题是:我可以使用另一个变量作为成员名称来访问变量的成员吗?
请参见以下示例:
{% if my_condition %}
{% assign name = 'date' %}
{% else %}
{% assign name = 'url' %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
我有一个名为name或'date'的变量'url'。
如何使post[name]红宝石中的液体等价?
我发现的唯一方法是使用for循环来迭代 的所有对(键值)post。谨防!这是相当可怕的:
{% for property in post %}
{% if property[0] == name %}
{{ property[1] }}
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
啊!我希望有更好的方法。
谢谢。
我不知道我在想什么。
post[name]是一种完全有效的液体结构。因此上面的 for-if 代码可以替换为:
{{ post[name] }}
Run Code Online (Sandbox Code Playgroud)
我以为我尝试过这个,但显然我没有。噢!
Liquid 甚至可以容纳更奇特的结构;post下面的语句在语法上是正确的,如果、element、categories等定义正确,则将返回预期值:
{{ post[element.id].categories[1].name }}
Run Code Online (Sandbox Code Playgroud)
我对 Liquid 感到非常惊讶。肯定会继续调查。
| 归档时间: |
|
| 查看次数: |
3428 次 |
| 最近记录: |