У меня есть следующий JSON -файл:
{
"Primary": {
"mixin": "primary",
"color": "red"
},
"Secondary": {
"mixin": "secondary",
"color": "blue"
}
}
..., который я хочу анализировать и динамически создавать из него миксины.
Вдохновлен { ссылка } Я попробовал следующее:
colors = json('./colors.json', { hash: true })
for entry in colors
mixin = scale[entry]["mixin"]
value = scale[entry]["color"]
// FIXME: Hack to cast mixin-name to string -> is there a better way?
define("" + mixin, @() {
color value
})
Этот код компилируется нормально, но когда я пытаюсь использовать сгенерированные миксины, например, вот так:
.text
display block
secondary()
primary()
Скомпилированный CSS выглядит следующим образом:
.text {
display: block;
color: #00f;
}
... при этом весь текст отображается синим, а не красным.
Кажется, что код не генерирует все миксины (хотя я подтвердил, что он проходит через каждую запись JSON в l oop) или переопределяет их в каждой итерации. По крайней мере, каждый миксин - кроме последнего - кажется, здесь теряется ...
Я не совсем уверен, как продолжить отладку здесь. Есть идеи?
PS: я использую "stylus": "^0.54.7"
в своем пакете. json.