Стилус не анализирует блочные функции

Я использую Stylus версии 0.44.0...

Я упростил этот пример, но вот моя проблема:

color-all-the-things()
  div
    {block}

body
  +color-all-the-things()
    background: red

Компилируется в:

body +color-all-the-things(){background:#f00}

По сути, это обработка миксина блока как селектора.

Ожидаемый результат:

body div {
  background: red
}

person user3574341    schedule 25.04.2014    source источник
comment
Пожалуйста, добавьте некоторую информацию о том, что вы ожидаете получить на выходе. На данный момент это не вопрос :)   -  person Jonas Schubert Erlandsson    schedule 26.04.2014
comment
@d-Pixie Я обновил, дайте мне знать, если это прояснится.   -  person user3574341    schedule 26.04.2014


Ответы (1)


Согласно примерам на главной странице проекта стилуса (http://learnboost.github.io/stylus/docs/mixins.html#block-mixins) синтаксис выглядит следующим образом:

Определение смешивания

foo()
  .bar
    {block}

Комбинированное использование

+foo()
  width: 10px

Результат

=> .bar {
     width: 10px;
   }

Так что в вашем случае, я думаю, это будет так, как вы написали:

color-all-the-things()
  div
    {block}

...

body
  +color-all-the-things()
    background: red

Поскольку это также дает ожидаемый результат в онлайн-редакторе (http://learnboost.github.io/stylus/try.html) мы можем предположить, что вы все сделали правильно ;)

Все, что я могу придумать, это проверить ваш набор инструментов. Убедитесь, что у вас установлена ​​последняя стабильная версия, или перейдите на одну из них. Или, если вы попытаетесь выполнить обновление до последней версии для разработки. В частности, говорится, что эта функция находится в «грубом состоянии» в документации, поэтому справедливо предположить, что в последних версиях могут быть некоторые проблемы с ней.

Если проблема не устранена, откройте вопрос: https://github.com/LearnBoost/stylus/issues

person Jonas Schubert Erlandsson    schedule 28.04.2014