标签: liquid

是否有"break"标签来逃避Liquid中的循环?

如何摆脱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)

liquid

34
推荐指数
1
解决办法
9045
查看次数

在Liquid模板中输出文字花括号

我正在尝试从液体模板中输出以下内容:

{{ 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)

有什么建议吗?

templates liquid

31
推荐指数
2
解决办法
6354
查看次数

在Shopify Liquid中将字符串转换为整数?

我刚读了这个相关的答案:

如何将数字转换为字符串? - Shopify Design - 电子商务大学

要将字符串转换为数字,只需将0添加到变量:

{%assign variablename = variablename | 加:0%}

不是超级优雅,但它的作品!

不优雅与否,那里给出的答案对我不起作用.这样做的正确方法是什么?

Liquid博士是否真的缺少这样的基本答案,还是我找不到合适的地方?

type-conversion liquid shopify

31
推荐指数
1
解决办法
2万
查看次数

如何在Jekyll中显示文件的修改日期?

我知道我可以date在文件的YAML前端指定一个变量并使用它来访问它的值{{ page.date }}.这很麻烦,因为在更新文件时很容易忘记更改日期.那么如何访问文件的修改日期呢?

date liquid jekyll

27
推荐指数
4
解决办法
6315
查看次数

如何使用Liquid列出目录中的文件?

我正在努力学习如何使用Jekyll和Bootstrap; 在研究它们时,我决定在我的主页上有一个图像轮播.

因为我真的很懒,所以我不想硬编码显示布局中每个图像所需的路径,我也不想使用数组来存储图像列表.

我想知道是否有任何标签可以让Jekyll做这两个步骤:

  1. 查看特定目录
  2. 对于您在该目录中找到的每个文件,重复一段代码

基本上我想写的东西模糊地类似于这段(想象的)代码:

{% 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)

所以我看了一下这个参考页面,但是我找不到任何有用的东西.

拜托,您能否给我任何建议,如果可能的话,还有一个不涉及使用插件的建议?

先感谢您.

liquid jekyll

27
推荐指数
5
解决办法
9820
查看次数

Jekyll - 如果页面是帖子,更改布局?

在Jekyll布局中,有没有办法检测页面是普通页面还是帖子?我想显示帖子标题,但不显示页面标题.像这样:

{% if page.is_post? %}
    <h2>{{ page.title }}</h2>
{% endif %}
{{ content }}
Run Code Online (Sandbox Code Playgroud)

liquid jekyll

27
推荐指数
4
解决办法
1万
查看次数

使用指南针和Sass购物主题

有没有人有使用Compass和Sass开发Shopify主题的工作流程?我非常接近,我只需要弄清楚如何不在CSS液体标签上制作Sass barf.

这是我得到的:

  • 目录中的sass/compass项目(例如:"/ newwebsite /)
  • 包含我的Shopify主题的子目录("/ newwebsite/newwebsite-theme /")
  • 一个Compass config.rb,它将css,_dir images_dir和javascripts_dir指向它们的资产文件夹("/ newwebsite/newwebsite-theme/assets /")
  • 指南针观看
  • shopify_theme gem也会观看,上传主题文件到shopify(https://github.com/Shopify/shopify_theme)
  • EDIT Sass插值(见下面的anser)
  • 编辑指南针回调以重命名为.css.liquid

问题:指南针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)

sass liquid shopify compass-sass

26
推荐指数
2
解决办法
4146
查看次数

在Jekyll标签中包含HTML

{% include link_to.html i=5 text="hello world" %}我写了一个允许我这样做的自定义标签,而不是一直写出来{% link_to 5 hello world %}.它找到数据i等于5 的页面并创建一个链接.

但是从标记代码中生成HTML字符串感觉很笨,并且在HTML包含代码中编写复杂的代码逻辑很尴尬.那么有没有办法让标签定义完成找到要链接的相关页面的繁重工作,并让它传递它发现的link_to.html渲染内容?有点像控制器将信息传递给Rails中的视图.

html liquid jekyll

25
推荐指数
1
解决办法
744
查看次数

如何在Jekyll中使用markdownify来显示索引的摘录

我希望在索引页面上显示较长帖子或页面的简短文本摘录.我打算在Front Matter中使用自定义变量并抓住它,但后来我看到了过滤器.excerpt

我在Jekyll文档中看到有一些东西叫做{{ page.excerpt | markdownify }}如何在页面或帖子上标记降价以便使用该过滤器?

编辑:或者markdownify是否采用整个.md文档?

markdown liquid jekyll

24
推荐指数
2
解决办法
1万
查看次数

For循环,在div中包含每两个帖子

基本上,我使用的是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)

我怎么能做到这一点?

liquid jekyll

24
推荐指数
4
解决办法
1万
查看次数