Предлагаю в данном посте добавить свои примеры необычного использования столь простого компилятора, а так же идеи его развития.
Вот мой:
Как с помощью BH компилировать в JST:
{
block: 'menu',
content: [
{ elem: 'item', content: '1' },
{ elem: 'item', content: '2' }
]
}
bh.match('jst', function(ctx) {
ctx.tag(null);
});
bh.match('menu', function(ctx) {
ctx.tag('ul');
});
bh.match('menu__item', function(ctx) {
ctx.tag('li');
});
bh.match('menu', function(ctx) {
ctx.content([
{
block: 'jst',
content: '<% if (true) { %>'
},
ctx.content(),
{
block: 'jst',
content: '<% } %>'
},
], true);
});
Результат:
<ul class="menu">
<% if (a) { %>
<li class="menu__item">
1
</li>
<li class="menu__item">
2
</li>
<% } %>
</ul>
Была у меня мысль о способе компиляции bh шаблона, например, в кендо темплейты. Но оказалось, что пока никто не парится, что я в своём компоненте притащил свой шаблонизатор. Потому пока не сделал, но в исследовательских целях можно закончить.
@Guria Если в исследовательских и из любви к искусству, то я бы предложил пойти чуть дальше и запилить генератор шаблонов, который бы принимал пачку параметров и на выход выдавал шаблоны для разных простых шаблонизаторов от голого PHP до перлового TT2. А заодно и всякие прочие хендельбарсы поддержать. Кажется, что работы не принципиально больше, зато поможет гораздо большему количеству людей. Можно даже не пилить все варианты, а просто предоставить возможность написать свой плагин.
Поразмыслил и пришел к выводу, что jst писать в шаблонах грех. Ибо верстальщик должен работать с фэйк данными и вставки
jst
, ему будут мешать. По сему есть иной вариант:bemjson
При этом обладая моковыми данными, а попросту своим bemjson, у верстальщика верстка не ломается, а прогер может получить свой легковесный темплейтер:
Пример данных без jst:
@pavelpower возможно в твоих размышлениях будет полезна мысль про yaml вместо bemjson. и если таки да, то вот технология.
@pavelpower
у вас before и after дважды обарачиваются в
<%%>
:Так задумано?
@Gura, таки ты прав. Надо исправить так: