用于shopify主题开发的CSS和转义Liquid语法

Chr*_*ale 2 less liquid shopify

我正在创建一个Shopify主题,我正在使用LESS来编译Shopify需要的样式表作为style.css.liquid.这一切都工作正常,我开始添加lquid过滤器和if语句.

当它在css属性中时,我的Liquid语法有效:

@brand-colour: ~"{{ settings.brand_colour }}"; 
h1{ color: @brand-colour;}
Run Code Online (Sandbox Code Playgroud)

其编译成如下:

h1 {color: {{ settings.brandcolour }};
Run Code Online (Sandbox Code Playgroud)

这很好.

我不能做的是插入一个液体声明,而不是像这样的css属性:

{% if settings.full-bg %}
background-color: …
Run Code Online (Sandbox Code Playgroud)

我试过逃避它

~"{% settings… %}"
Run Code Online (Sandbox Code Playgroud)

乃至

@var: "{% if settings.full-bg %}"
Run Code Online (Sandbox Code Playgroud)

然后跑

@{var} 
Run Code Online (Sandbox Code Playgroud)

但是我的编译器不喜欢它......

有什么建议?

Chr*_*ale 5

如果有人感兴趣,我解决这个问题的方法是将我的shopify/Liquid内容放在评论中,如下:

/* {% if settings.repeating-pattern %} */
background: url(~"{{ 'repeating-pattern-header.png' | asset_url }}");
/* {% endif %} */
Run Code Online (Sandbox Code Playgroud)

Shopify很荣幸这一点.


dav*_*ght 5

只是为了找到可能偶然发现这个页面的其他人的信息,你实际上并不需要像这样处理变量:

@brand-colour: ~"{{ settings.brand_colour }}"; 
h1{ color: @brand-colour;}
Run Code Online (Sandbox Code Playgroud)

您可以使用SASS插值实际执行此操作:

h1 { color: #{'{{ settings.brand_colour }}'}; }
Run Code Online (Sandbox Code Playgroud)

外行人的术语中的插值只是包装一个变量#{' '},告诉SASS在编译CSS时将其输出为纯文本.