dab / html2bl

Getting blocks from html. Based on filestructure and redefinition levels.
8 stars 4 forks source link

gulp-file-include #3

Closed 127 closed 9 years ago

127 commented 9 years ago

Если собирать html с gulp-file-include, где html подключается через конструкции вида @@include('../block/block.html') Блоки, css не включаются в сборку. Почему так, разумеется, понятно. feature request, в общем

dab commented 9 years ago

Кажется что для этого все есть если на вход подавать собранный html файл. Чем такое решение не устраивает? Можно подробности?

127 commented 9 years ago

Эмм… может быть, я что-то неправильно понимаю, но мне нужно на вход подавать не целый файл, а множество html-файлов из кучи папок с блоками, которые нужно еще собрать в правильной последовательности и применить шаблонизацию. gulp-file-include частично решает эту проблему. Раньше я юзал для этого bemhtml, но очень уж он неудобен.

dab commented 9 years ago

Что делает html2bl — берет html файл и, используя его как декларацию зависимостей, отдает список подключаемых css файлов. Никакой шаблонизации тут нет. Я пока не понимаю как сделать то, что ты хочешь, поскольку нужно где-то взять список блоков, который у меня строится на основе классов в исходном html. BEMHTML нужен для преобразования БЭМ-дерева в виде BEMJSON в html.

Опиши более подробно что и с чем ты хочешь сделать.

127 commented 9 years ago

Все понял, вопрос не по адресу. issue можно закрывать Но может подскажешь чего. Смотри, есть такая структура:

b-layout/
   b-layout.html
b-someblock/
   b-someblock.html
   b-someblock.css

b-layout.html содержит инклуды блоков вида b-someblock.html, внутри которых еще есть и шаблонизируемые части. Собирать планировал как-то так:

gulp.task('html', function(){
  gulp.src(params.htmlSrc)
      .pipe(fileinclude({
        prefix: '@@',
        basepath: '@file'
      }))
      .pipe(rename('index.html'))
      .pipe(gulp.dest(params.out))
      .pipe(reload({stream: true}));
});
dab commented 9 years ago

Кажется что можно склеенный файл шаблонизировать и потом собрать по нему CSS зависимости с помощью html2bl. Получается не совсем оптимально по скорости, но будет правильно собираться CSS если у тебя достраивается в ходе шаблонизации html.

Можно использовать b-layout.html и по нему собирать как html, так и CSS блоки, но если шаблонизация добавляет новые блоки, то этот вариант отпадает.

127 commented 9 years ago

Так и сделал. Спасибо!