bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

В чем разница в синтаксисе между bemjson и bemtree? #735

Open mathetes opened 8 years ago

mathetes commented 8 years ago

В документации написано, что

На практике использую синтаксис BEMJSON из других проектов в BEMTREE и все работает. Как правильно писать bemree синтаксис? И в чем отличие от BEMJSON? Понимаю, что вопрос достаточно обширный поэтому прошу указать на важные различия.

tadatuta commented 8 years ago

Под синтаксисом шаблонов подразумевается синтаксис описания предикатов (block('b1').content()()). Они совпадают для BEMTREE и BEMHTML. А BEMJSON — это формат описания БЭМ дерева, который также используется в обоих шаблонизаторах, но с разным смыслом — BEMTREE отвечает за генерацию BEMJSON, а BEMHTML принимает на вход BEMJSON и строит по нему HTML.

Это все более-менее описано в документации на https://ru.bem.info/technology/

voischev commented 8 years ago

Я своим коллегам объяснял так: Во первых нужно понять цепочку bemtree --> bemjson --> bemhtml --> html

много про это написано в доке.

Тоесть задача bemtree генерить bemjson. Получается что в описании мод самого шаблона не должно быть следующих мод отвечающих за генерацию html. например

tag()(),
attrs()(),
cls()()
// итд

Всем этим про "обвеску" для html должен заниматься bemhtml

по сути в bemtree остаются только

def()(),
content()()

этого достаточно для генерации bemjson в этом и главное отличие в том что написано в шаблонах.