В документации написано, что
- синтаксис BEMHTML и BEMTREE почти идентичен.
- BEMTREE использует синтаксис-BEM-XJST и сохраняет все особенности BEM-XJST-шаблонизаторов.
На практике использую синтаксис BEMJSON из других проектов в BEMTREE и все работает. Как правильно писать bemree синтаксис? И в чем отличие от BEMJSON? Понимаю, что вопрос достаточно обширный поэтому прошу указать на важные различия.
Под синтаксисом шаблонов подразумевается синтаксис описания предикатов (
block('b1').content()()
). Они совпадают для BEMTREE и BEMHTML. А BEMJSON — это формат описания БЭМ дерева, который также используется в обоих шаблонизаторах, но с разным смыслом — BEMTREE отвечает за генерацию BEMJSON, а BEMHTML принимает на вход BEMJSON и строит по нему HTML.Это все более-менее описано в документации на https://ru.bem.info/technology/
Я своим коллегам объяснял так: Во первых нужно понять цепочку bemtree --> bemjson --> bemhtml --> html
много про это написано в доке.
Тоесть задача bemtree генерить bemjson. Получается что в описании мод самого шаблона не должно быть следующих мод отвечающих за генерацию html. например
Всем этим про "обвеску" для html должен заниматься bemhtml
по сути в bemtree остаются только
этого достаточно для генерации bemjson в этом и главное отличие в том что написано в шаблонах.