enb / enb-bh

BH support for ENB
Other
15 stars 12 forks source link

Initial release #1

Closed blond closed 10 years ago

blond commented 10 years ago
mishanga commented 10 years ago

Сюда бы еще сразу затащить серверную технологию с инклудами: https://github.com/bem/bem-components/blob/eee80c20dbf390c194ab21f54efa09f578a382ce/.enb/techs/bh-include.js

mdevils commented 10 years ago

А в последнюю версию технологии bh добавлен варинг по переходу на пакет enb-bh?

blond commented 10 years ago

@mdevils ещё нет, надо же вначале выпустить пакет enb-bh, чтобы было на что ссылаться. После выпуска, конечно же, добавим.

blond commented 10 years ago

Сюда бы еще сразу затащить серверную технологию с инклудами

Я правильно понял, что она нужна для того, чтобы хранить всё одним файлом, а не разбросанной пачкой?

Но проблема в том, что она не будет учитывать внутренние require-ы, а их вроде бы никто не запрещает использовать в серверной технологии.

mishanga commented 10 years ago

Но проблема в том, что она не будет учитывать внутренние require-ы, а их вроде бы никто не запрещает использовать в серверной технологии.

Никто не заставляет ей пользоваться :) Технология нужна для тех, кто релизится монолитными файлами, а не мини-модулями (в частности, нам, Серпу).

blond commented 10 years ago

@mishanga, пока не сквашу коммиты, чтобы было понятнее что происходит, если нужно — перед мёржем исправлю.

Возникли вопросы по опциям:

  1. Опция dependencies, встречающаяся в клиентских технологиях никак не задокументированна. Нужна ли она для bh-include?
  2. Кажется, что опции jsAttrScheme и jsAttrName можно удалить из серверных технологий?
  3. Какие значения по-умолчанию следует использовать для jsAttrScheme и jsAttrName?
  4. Какой таргет использовать по умолчанию ?.bemhtml.js или ?.bh.js?
mishanga commented 10 years ago

@andrewblond bh-include можно переименовать в bh-server-include. Технологию html-from-bemjson лучше переименовать в bh-html-from-bemjson. Будет такая же про bemhtml.

  1. Кажется, что dependencies не нужна в bh-include.
  2. Почему ты считаешь, что jsAttr* не нужны в серверных технологиях? Как-то же надо выводить поле js.
  3. Можно оставить те значения, которые сейчас есть — onclick и js, чтобы не ломать лишний раз обратную совместимость. На сервисе это нетрудно сконфигурить.
  4. Пора уже перестать косить под bemhtml :) Надо делать свой таргет — ?.bh.js.
blond commented 10 years ago

Технологию html-from-bemjson лучше переименовать в bh-html-from-bemjson. Будет такая же про bemhtml.

Такие же про bemhtml, bt и т.д. будет лежать в совсем других пакетах, и вроде бы имени пакета достаточно как скоупа: enb-bh/techs/html-from-bemjson и enb-bemxjst/techs/html-from-bemjson.

Пора уже перестать косить под bemhtml :) Надо делать свой таргет — ?.bh.js.

Тогда может и 'bh.BEMHTML = { apply: ... };' заменить на 'bh.BH = { apply: ... };'?

mishanga commented 10 years ago

Такие же про bemhtml, bt и т.д. будет лежать в совсем других пакетах, и вроде бы имени пакета достаточно как скоупа

Да, всё верно, ок.

Тогда может и bh.BEMHTML = { apply: ... }; заменить на bh.BH = { apply: ... };?

Да, обязательно.

blond commented 10 years ago

Есть ещё код про BEMHTML на клиентской части: https://github.com/andrewblond/enb-bh/blob/initial/lib/bh-client-processor.js#L76-L77 https://github.com/andrewblond/enb-bh/blob/initial/lib/bh-client-processor.js#L81

Но заменить его на BH не получится, т.к. BH уже занят: https://github.com/andrewblond/enb-bh/blob/initial/lib/bh-client-processor.js#L69

mishanga commented 10 years ago

Надо оторвать мимикрию под bemhtml. Явно звать bh.apply.

blond commented 10 years ago

Готово!

Т.к. эти изменения ломают обратную совместимость, может про это надо написать, например, в MIGRATION.md?

mishanga commented 10 years ago

Это напишем в основном репозитории, когда будем выпускать мажорную версию.

mishanga commented 10 years ago

Круто :) Теперь бы это ещё потестировать.

blond commented 10 years ago

Теперь бы это ещё потестировать.

Может добавить простых примеров, которые собирать всеми технологиями в разные таргеты и эти таргеты уже ручаки потестить?

mishanga commented 10 years ago

Давай вольём, а тесты и фиксы отдельным реквестом.

blond commented 10 years ago

Давай вольём, а тесты и фиксы отдельным реквестом.

Волшебная кнопочка merge pull request есть только у тебя :) Засквашить всё в один коммит?

mishanga commented 10 years ago

Да, склеивай всё.

blond commented 10 years ago

Готово!

mishanga commented 10 years ago

https://www.npmjs.org/package/enb-bh

tadatuta commented 10 years ago

@mishanga @andrewblond А как вы предполагаете использование шаблонов на клиенте в универсальных блоках в библиотеках, поддерживающих оба шаблонизатора? Будет block.bh.browser.js и block.bemhtml.browser.js?

Мне кажется, что в идеальном мире, где оба шаблонизатора принимают на вход одинаковый bemjson и возвращают консистентный html, должно быть что-то вроде templateEngine.apply(). Тогда депенды по технологиям позволят собирать на клиент тот тип шаблонов, который нужен на данном конкретном проекте и не задумываться о том, как их звать.

dfilatov commented 10 years ago

+1 к @tadatuta

mishanga commented 10 years ago

@tadatuta не знаю, не думал об этом :) Но я тоже +1.