Jekyll:在 SCSS 中使用来自 _config.yml 的值

Jekyll: Using values from _config.yml in SCSS

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

colors:
  - name: red
    hex: '#FF0000'
  - name: yellow
    hex: '#FFFF00'
  - name: blue
    hex: '#0000FF'

assets/css/colors.scss 中,我想为以下颜色创建 类:

{% for color in site.colors %}
.{{ color.name }} {
  color: {{ color.hex }};
}
{% endfor %}

当我这样做时,出现以下错误:

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..."

有没有办法让 Liquid 处理 SCSS 中 _config.yml 文件的值?

如果你想让 Jekyll 处理你的 scss 文件,你必须给它添加一个 front matter。

这个有效:

---
# empty front matter
---
@charset "utf-8";

{% for color in site.colors %}
.{{ color.name }} {
  color: {{ color.hex }};
}
{% endfor %}