Jekyll:在SCSS部分中使用_config.yml中的值

cha*_*ath 5 sass liquid jekyll

在我的Jekyll项目中,_config.yml文件中包含以下内容:

colors:
  - name: red
    hex: '#FF0000'
  - name: yellow
    hex: '#FFFF00'
  - name: blue
    hex: '#0000FF'
Run Code Online (Sandbox Code Playgroud)

在中assets/css/colors.scss,我要为颜色创建类,如下所示:

{% for color in site.colors %}
.{{ color.name }} {
  color: {{ color.hex }};
}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我想@importcolors.scss文件放入main.scss,但这样做时出现以下错误:

Error in _assets/css/background-test.scss:6 Invalid CSS after "}": expected selector or at-rule, was "{% for color in..." 
  Liquid Exception: Invalid CSS after "}": expected selector or at-rule, was "{% for color in..." in _includes/head.html, included in _layouts/default.html
jekyll 3.0.1 | Error:  Invalid CSS after "}": expected selector or at-rule, was "{% for color in..."
Run Code Online (Sandbox Code Playgroud)

有没有办法让Liquid处理来自_config.ymlSCSS部分中文件的值?

Dav*_*uel 6

Jekyll将仅解析您的main.scss。

一旦用Liquid解析,它将被传递到sass / scss处理器。因此,Liquid不会解析任何@imported文件。