charliesneath
charliesneath

Reputation: 2039

Jekyll: Using values from _config.yml in SCSS

In my Jekyll project, I have the following in my _config.yml file:

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

In assets/css/colors.scss, I want to create classes for the colors as follows:

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

When I do so, I get the following error:

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

Is there a way to get Liquid to process the values from the _config.yml file in the SCSS?

Upvotes: 1

Views: 396

Answers (1)

David Jacquel
David Jacquel

Reputation: 52809

If you want Jekyll to process your scss file you must add a front matter to it.

This works :

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

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

Upvotes: 2

Related Questions