如何摆脱Liquid中的循环,主要是for-loop?我试过了{% break %},但是失败了,保存文件时出错:未知标签'break'.
我正在努力实现以下目标:
var variants = [];
{% for item in cart.items %}
{% if item.product.handle == "handle-name" %}
variants = {{item.product.variants | json}};
{% break %} // won't work
{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 我正在尝试从液体模板中输出以下内容:
{{ example }}
Run Code Online (Sandbox Code Playgroud)
显然,Liquid认为这是一个名为变量example并尝试进行替换.我试图找出如何输出实际的大括号.
到目前为止,我发现了一种有效的方法,但它非常难看:
{{ '{example'|prepend:'{' }}}}
Run Code Online (Sandbox Code Playgroud)
是的,告诉你这很糟糕.
以下是我尝试过的其他事情:
{{{ example }}} # outputs '}'
{{{{ example }}}} # outputs '}}'
\{\{ example \}\} # outputs '\{\{ example \}\}'
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我刚读了这个相关的答案:
如何将数字转换为字符串? - Shopify Design - 电子商务大学
要将字符串转换为数字,只需将0添加到变量:
{%assign variablename = variablename | 加:0%}
不是超级优雅,但它的作品!
不优雅与否,那里给出的答案对我不起作用.这样做的正确方法是什么?
Liquid博士是否真的缺少这样的基本答案,还是我找不到合适的地方?
我知道我可以date在文件的YAML前端指定一个变量并使用它来访问它的值{{ page.date }}.这很麻烦,因为在更新文件时很容易忘记更改日期.那么如何访问文件的修改日期呢?
我正在努力学习如何使用Jekyll和Bootstrap; 在研究它们时,我决定在我的主页上有一个图像轮播.
因为我真的很懒,所以我不想硬编码显示布局中每个图像所需的路径,我也不想使用数组来存储图像列表.
我想知道是否有任何标签可以让Jekyll做这两个步骤:
基本上我想写的东西模糊地类似于这段(想象的)代码:
{% for file in directory %}
<img src="{{ file.url }}" />
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果我有一个包含三个文件的文件夹,名为image01.jpg,image02.jpg,image03.jpg,我想jekyll可以为我构建这个HTML代码:
<img src="folder/image01.jpg" />
<img src="folder/image02.jpg" />
<img src="folder/image03.jpg" />
Run Code Online (Sandbox Code Playgroud)
所以我看了一下这个参考页面,但是我找不到任何有用的东西.
拜托,您能否给我任何建议,如果可能的话,还有一个不涉及使用插件的建议?
先感谢您.
在Jekyll布局中,有没有办法检测页面是普通页面还是帖子?我想显示帖子标题,但不显示页面标题.像这样:
{% if page.is_post? %}
<h2>{{ page.title }}</h2>
{% endif %}
{{ content }}
Run Code Online (Sandbox Code Playgroud) 有没有人有使用Compass和Sass开发Shopify主题的工作流程?我非常接近,我只需要弄清楚如何不在CSS液体标签上制作Sass barf.
这是我得到的:
问题:指南针barf当你需要使用Shopify的液体模板标签时,例如背景图片 - 例如,背景:url("{{"splash-1.jpg"| asset_url}}")
有谁知道如何指示Compass/Sass吐出液体模板标签,因为它们进入CSS?如果我有,那么我有一个可靠的工作流程,在本地编辑Sass,并在shopify商店之后立即实现更改.
谢谢
编辑:通过使用Hopper在Sass中的液体标签的答案,并将Compass输出.css文件重命名为.css.liquid,我现在有一个瞬间工作流程,用于设计Compass和Sass的Shopify主题!以下是config.rb中Compass回调的代码:
on_stylesheet_saved do |filename|
s = filename + ".liquid"
puts "copying to: " + s
FileUtils.cp(filename, s)
puts "removing: " + filename
end
Run Code Online (Sandbox Code Playgroud) {% include link_to.html i=5 text="hello world" %}我写了一个允许我这样做的自定义标签,而不是一直写出来{% link_to 5 hello world %}.它找到数据i等于5 的页面并创建一个链接.
但是从标记代码中生成HTML字符串感觉很笨,并且在HTML包含代码中编写复杂的代码逻辑很尴尬.那么有没有办法让标签定义完成找到要链接的相关页面的繁重工作,并让它传递它发现的link_to.html渲染内容?有点像控制器将信息传递给Rails中的视图.
我希望在索引页面上显示较长帖子或页面的简短文本摘录.我打算在Front Matter中使用自定义变量并抓住它,但后来我看到了过滤器.excerpt
我在Jekyll文档中看到有一些东西叫做{{ page.excerpt | markdownify }}如何在页面或帖子上标记降价以便使用该过滤器?
编辑:或者markdownify是否采用整个.md文档?
基本上,我使用的是Jekyll(使用Liquid模板语言),我正在尝试编写一个for循环,它将每两个项目包装在一个div.
这是我目前的循环:
<div>
{% for post in site.posts %}
<a href="{{ post.url }}">{{ post.title }}</a>
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
哪个会输出四个帖子,如下:
<div>
<a href="#">Title</a>
<a href="#">Title</a>
<a href="#">Title</a>
<a href="#">Title</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要的四个帖子的输出是:
<div>
<a href="#">Title</a>
<a href="#">Title</a>
</div>
<div>
<a href="#">Title</a>
<a href="#">Title</a>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?