将 Stylus for 循环值插入选择器

Interpolating Stylus for loop values into selector

我正在尝试做一些我认为可能很简单的事情 -- 输出所有 h1 到 h6 选择器。我在创建一个同时输出 属性 和 属性 的 mixin 时取得了更大的成功,而不是仅仅插入到选择器中,但即使那样我也无法创建一个可以成功采用任何方法的 mixin 属性 和值的参数。

可能 最终得到了一个在特定位置完成工作的混入。如何修改此解决方案,以便我可以将其用于任何 属性 和值组合?

hcolor() {
    headings = 1 2 3 4 5 6
    selectorh = 'h'
    for hnumber, hnumber in headings {
        // join(selectorh, hnumber)
        +cache('h' + hnumber) {
            color: colordarkgray
        }
        hnumber = hnumber +1
    }
}

我试过的一件事没有用:

hify(property, value) {
    headings = 1 2 3 4 5 6
    selectorh = 'h'
    for hnumber, hnumber in headings {
        // join(selectorh, hnumber)
        +cache('h' + hnumber) {
            {property}: {value}
        }
        hnumber = hnumber +1
    }
}

根据 Sass 解决方案进行的另一次尝试未抛出任何错误,但我不知道如何在选择器中使用它,如果它能正常工作的话:

hify() {
    hstart = 1
    hstop = 6
    headings = 1 2 3 4 5 6
    for hnumber in headings {
        if hnumber < hstop {
            return 'h{hnumber}, '
        }
        else if hnumber == hstop {
            return 'h{humber}'
        }
        hnumber = humber + 1
    }
}

我觉得我一定很接近,但我无法将有关 Stylus interpolation and default functions 的信息改编成解决方案。

好吧,您的 Sass 示例稍作修改:

headings($from = 1, $to = 6)
  if $from == $to
    'h' + $from
  else
    'h' + $from + ',' + headings($from + 1, $to)

{headings(1, 4)}
  color: red
  background: blue