Первый вопрос - спасибо за (мягко) исправление моих ошибок.:)
Я пытаюсь применить шаблонную логику Pelican Jinja2 (используя переменные, объявленные в файле pelicanconf.py
) к моим файлам SCSS, но она не работает, потому что файлы SCSS компилируются до того, как Pelican имеет шанс прикоснутьсяих, когда он генерирует сайт.
# pelicanconf.py
THEME_COLORS = [
{
'name': '$color-white',
'hex' : '#FFFFFF'
},
{
'name': '$color-darkgray',
'hex' : '#484A47'
},
{
'name': '$color-lightgray',
'hex' : '#D1D5DE'
},
{
'name': '$color-teal',
'hex' : '#5C6D70'
},
{
'name': '$color-rust',
'hex' : '#A37774'
},
{
'name': '$color-red',
'hex' : '#E88873'
}
]
// _variables.scss
{% if THEME_COLORS %}
{% for color in THEME_COLORS %}
{% for color_name, color_hex in color.items() %}
{% if color_name|lower|truncate(length=1, killwords=True, end='') == '$'
and color_hex|lower|truncate(length=1, killwords=True, end='') == '#' %}
{% set $color_name = color_name %}
{% set $color_val = color_hex %}
{{ $color_name }} : {{ $color_val }};
{% endif %}
{% endfor %}
{% endfor %}
{% endif %}
Когда я пытаюсь скомпилировать SCSS, я (как и ожидалось) получаю следующее сообщение об ошибке, потому что логика Пеликана не была применена:
{
"status": 1,
"file": "path/to/_variables.scss",
"line": 7,
"column": 3,
"message": "Invalid CSS after \"*/\": expected 1 selector or at-rule, was \"{% if THEME_COLORS \"",
"formatted": "Error: Invalid CSS after \"*/\": expected 1 selector or at-rule, was \"{% if THEME_COLORS \"\n on line 7 of path/to/_variables.scss\n from line 18 of themes/martian/static/css/sass/main.scss\n>> */\r\n --^\n"
}
I 'Я надеюсь получить что-то вроде:
// _variables.scss
$color-white : #FFFFFF;
$color-darkgray : #484A47;
$color-lightgray : #D1D5DE;
$color-teal : #5C6D70;
$color-rust : #A37774;
$color-red : #E88873;
Есть ли способ сделать это, или это просто плохая идея?