Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в...

Post on 15-Jun-2015

1.507 views 2 download

Transcript of Сергей Бережной "Про шаблонизаторы вообще и BEMHTML в...

Я.Субботник, Москва, 8 сентября 2012 года

Сергей Бережнойруководитель отделаразработки поисковых интерфейсов

Про шаблонизаторы вообще

и BEMHTML в частности

— по семантике

— data bind

Многообразие видов

var html = 'Шоколад ни в чем не виноват,' + '<span class="name"/>.' , data = { username: 'John Smith' } , map = plates.Map();

map.class('name').to('username');plates.bind(html, data, map);

Шаблонизаторы вообще

14

— по семантике

— data driven

Многообразие видов

<xsl:template match="username"> <span class="name"> <xsl:apply-templates/> </span></xsl:template>

Шоколад ни в чем не виноват, <username>John Smith</username>.Вы просто созданы для лепрозория, <username>veged</username>!

Шаблонизаторы вообще

20

— по семантике

— data driven

Многообразие видов

Шоколад ни в чем не виноват, <span class="name">John Smith</span>.Вы просто созданы для лепрозория, <span class="name">veged</span>!

Шаблонизаторы вообще

21

Многообразие видовШаблонизаторы вообще

28

— по семантике

— по синтаксису

— текст в финальном виде + вставки

— сокращённый синтаксис

— предметно-ориентированный синтаксис

Многообразие видов

<xsl:template match="username"> <span class="name"> <xsl:apply-templates/> </span></xsl:template>

Шаблонизаторы вообще

29

— по семантике

— по синтаксису

— предметно-ориентированный синтаксис

Многообразие видов

var html = 'Шоколад ни в чем не виноват,<span class="name"/>.' , data = { username: 'John Smith' } , map = plates.Map();

map.class('name').to('username');plates.bind(html, data, map);

Шаблонизаторы вообще

30

— по семантике

— по синтаксису

— предметно-ориентированный синтаксис

— разделение HTML и логики представления

— гибкая библиотека блоков

Задачи

[% BLOCK menu %] <ul> [% FOREACH item IN items %] [% PROCESS item content = i %] [% END %] </ul>[% END %]

…и BEMHTML в частности

41

Где применять…и BEMHTML в частности

76

— возможность исполнять JavaScript

— много HTML

— HTML+CSS пишут отдельные специалисты

— БЭМ, хотя бы в CSS

— частые итерации изменения HTML+CSS

Где применять…и BEMHTML в частности

77

— возможность исполнять JavaScript

— много HTML

— HTML+CSS пишут отдельные специалисты

— БЭМ, хотя бы в CSS

— частые итерации изменения HTML+CSS

— есть общие блоки