Всем привет! Начал писать небольшой скрипт (т.к. подобного не смог найти), который на основе html файлов генерирует мне dep.js файл со всем используемыми блоками/элементами. Вот я получил такой файл:
exports.deps = [
{ block: 'b-layout', elem: 'content' },
{ block: 'b-layout', elem: 'content', modName: 'align', modVal: 'center' },
{ block: 'b-logo' },
{ block: 'b-auth-form' },
{ block: 'b-form' },
{ block: 'b-form', modName: 'stretch', modVal: true },
{ block: 'b-form', elem: 'content' },
{ block: 'b-form', elem: 'title' },
{ block: 'b-form', elem: 'controls' },
{ block: 'b-form', elem: 'control' },
{ block: 'b-input' },
{ block: 'b-input', modName: 'size', modVal: 'xl' },
{ block: 'b-button' },
{ block: 'b-button', modName: 'type', modVal: 'primary' },
{ block: 'b-button', modName: 'size', modVal: 'xl' },
{ block: 'b-button', elem: 'text' },
{ block: 'b-form', elem: 'footer' },
]
Конечный результат я получил с помощью библиотеки bem-naming. Но там не совсем корректно устанавливаются ключи для модификаторов. Собственно в этой issue как раз об этом говорится. Я не совсем понял что там в комментариях решили по этому поводу, поэтому пришел сюда. Чем я могу собрать свои css/js файлы используя полученный deps.js? Или я пошел в какие-то дебри и решение на основе обычных html файлов уже есть?
Если что — то вот: https://gist.github.com/narqo/5419385
Если html-файлы у тебя вместо bemhtml — то можно сделать простую технологию, которая будет генерировать bemhtml из твоих html (?).
Либо я вообще не понимаю, что хочется сделать.
Html у него сверстан вручную и он хочет по нему собирать бандлы используя его как описание необходимых блоков.
@kuflash Есть вот такая наколеночная фигня для генерации BEMJSON из HTML: https://www.npmjs.com/package/html2bemjson (а дальше уже из BEMJSON можно получить deps.js).
Пример использования:
@zxqfox, синтаксис deps.js я знаю. У меня есть шаблоны такого плана (scala.html, используется в play-framework):
Так вот на основе этого файла я хочу собрать все необходимые css/js файлы. Но для сборки с помощью bemtools/enb, как я понял, необходим файл deps.js. Вот я и задался целью написать скрипт, который на основе такого html шаблона мне генерирет файл deps.js
@tadatuta, вот это уже очень интересно. Проверю, будет ли работать на моих шаблонах. Тогда такой еще вопрос. Как то мерджить bemjson файлы можно? Просто у меня страница разбита на несколько файлов/кусков, и если я буду каждый файл отдельно прогонять с помощью вашей библиотеки, то для каждого куска будет создаваться свой bemjson. Или проще будет склеить css/js после сборки каждого куска?
@Guria Ааа...! Спасибо ;-)
@tadatuta мне думается, что тут проще bemdecl собирать, зачем bemjson?
@kuflash Я бы взял наколеночную штуку @tadatuta, переписал бы её, чтобы на выходе получалось bemdecl, и его бы скармливал в enb. Т.е. задача, имхо, сводится к написанию одной-двух технологий для bem-tools/enb.
upd bemdecl как раз удобно мержить
upd2 https://github.com/hemantic/html2bemdecl вот еще нашлось
@zxqfox, спасибо огромное! Обязательно попробую такой вариант. На первый взгляд, будет как раз то, что нужно. Еще разберусь как писать технологии для enb
@zxqfox, ты прав, конечно, но у меня такого готового модуля не оказалось, так что чем богаты ;)
зато теперь я знаю про модуль от @hemantic :)
@tadatuta утащить ссылку в инструменты на bem.info следует
@Guria Да, на самом деле есть огромное количество всякого полезного в дикой природе, что мы все никак не оформим на bem.info :( Рано или поздно обязательно все соберем и причешем.