Open voischev opened 7 years ago
@voischev Оно ведь не учитывает порядок?
Если брать готовые бандлы, то есть вот такая штука — https://github.com/stochastical/express-bem-xjst-renderer. Здесь в том числе есть поддержка BEMTREE.
cc @stochastical
Порядок учитывается на уровне блоков. (блок/элемет/модификатор...) и файловой системы Порядок уровней можно задать в массиве с уровнями.
То есть работает тема с переопределением блоков из bem-components на своем уровне например
Кажется этого достаточно для порядка. Я пока не придумал как это сломать если осознанно этого не захотеть. (так же можно сломать и когда есть сборка с депсами)
По ссылке что ты привел, к сожалению слишком простая реализация подхода с bem-xjst шаблонами в expressjs. Неудобно работать с блоками – приходится писать в одном файле. Ну и порядок соответственно задается вручную в этом файле. Кажется невозможно положить шаблон на элемент в отдельный файл. А еще приходится писать bemjson прямо в серверном коде.
Что прям совсем не похоже другие шаблонизаторы в expressjs
В моем пакете все это делается автоматом и не нужно писать bemjson в серверном коде
bemtree руки не дошли добавить) но кажется там тупо сделать bemhtml || bemtree
и будет работать
не понимаю. всегда, когда в коде есть mustDeps
для шаблонов будет получаться бандл Шредингера — он либо случайно будет работать, либо нет
;) я тебе могу лично рассказать. Мне сложно текстом. Пока просто поверь что все работает как надо или докажи обратное :)
Пусть есть блок, у которого есть некий контент и 4 модификатора, которые должны досыпать в контент дополнительные данные в строго определенном порядке, не совпадающем с алфавитным порядком имен модификаторов. Модификаторы могут быть включены одновременно:
{
block: 'pen-pineapple-apple-pen',
mods: { pen: true, pineapple: true, apple: true, all: true },
content: 'ahh'
}
Ожидаемый результат: pen pineapple apple ahh pen-pineapple-apple-pen
.
@tadatuta Стоп, там идеальный код. Не мне тебе рассказывать что это такое!
p.s. А то начнутся тэсты-шмэсты.
@zxqfox
там идеальный код. Не мне тебе рассказывать что это такое!
я, как человек, пишущий только идеальный код, никогда не утверждаю, что он в принципе может запускаться, а Ваня говорит, что оно не только работает, но еще и правильно работает при любом раскладе. хотя я бы постеснялся делать такие утверждения даже при использовании сборки по депсам (т.к. доподлинно известно, что ни одна реализация депсов не работает правильно, хотя вы и хвастаетесь кавереджем ;))
а Ваня говорит, что оно не только работает, но еще и правильно работает
@voischev Да, Вова прав. :-)
p.s.
что ни одна реализация депсов не работает правильно, хотя вы и хвастаетесь кавереджем ;))
а тут нет 🤓
я говорю что все те же проблемы сломать порядок остались) Если захотеть можно сломать Виды сортировки я перечислил.
Недавно пришлось пописать на PUGJS... долго не смог это терпеть. Пришлось запилить 100 строчек кода, что бы писать нормальные шаблоны на BEMHTML в ExpressJS.
Код доступен как модуль https://www.npmjs.com/package/express-bem-xjst
Он умеет правильно работать с уровнями, кешируется и даже ничего не портит. Пробовал подключать bem-components — шаблонизирует все правильно.
Приятного использования тем, кто больше не может использовать ничего кроме BEM-XJST в шаблонах 😉