Created
February 24, 2016 23:57
-
-
Save miripiruni/8616976d40f280b20313 to your computer and use it in GitHub Desktop.
Правки по документации bem-xjst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
https://ru.bem.info/technology/bemhtml/v2/rationale/ | |
Отличительные черты и Преимущества | |
Расписать с примерами | |
— Возможность добавления шаблонов в рантайме. | |
— Не требует компиляции шаблонов. | |
Поставить ссылки: | |
— BEMHTML | |
— BEMJSON | |
— BEMTREE | |
> Создание бандла https://github.com/bem/bem-xjst/wiki/api#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BD%D0%B4%D0%BB%D0%B0 | |
> /// пользовательские шаблоны | |
> убрать | |
> src/templates/*.bemhtml.js to templates.js | |
TODO | |
> compile добавить предложение что generate эффективнее | |
> https://github.com/bem/bem-xjst/wiki/api#%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2 | |
DONE. | |
> Добавить пример block('b1').mod('a', true)` | |
DONE: https://github.com/bem/bem-xjst/wiki/data#mods | |
> Добавить пример матчинга к mod(modName, modVal) | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#mod | |
Добавил аналогичный пример к elemMod: https://github.com/bem/bem-xjst/wiki/templates-syntax#elemmod | |
> Изменить порядок перечисления мод в доке. | |
> block, elem, mod, elemMod, match. | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D0%BF%D0%BE%D0%B4%D0%BF%D1%80%D0%B5%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2 | |
> Выделить везде {Type} в jsdoc | |
DONE. | |
> сделать перенос строки если не влезает и возникает скрол | |
DONE. | |
> https://github.com/bem/bem-xjst/wiki/templates-syntax#%D0%A2%D0%B5%D0%BB%D0%BE-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0 | |
> Поправить пример про link. | |
DONE. | |
> Наприсать, что движком BEMTREE используется не все моды. | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#bemtree | |
> mods будет проигнорирован если указаны elem и elemMods. Пример: | |
> НЕТ — он выставляет контекст. | |
Исправил. | |
> mods будет проигнорирован если указаны elem и elemMods | |
> КАША разъяснить что куда игнорируется | |
TODO | |
https://github.com/bem/bem-xjst/wiki/data#elemmods если | |
Что над чем имеет приоритет | |
TODO | |
https://github.com/bem/bem-xjst/wiki/data#elem result | |
> ссылку про js param | |
DONE. | |
> отдельно подсветку HTML | |
DONE. | |
> {Object[]} | |
DONE. | |
> mix добавить пример примешан массив | |
DONE https://github.com/bem/bem-xjst/wiki/templates-syntax#mix | |
> Разделение сделать на бэм-предметную область и другие | |
Пересортировал. Но делить не стал. Так как тут и БЭМ-ориентированные и хелперы и content/def которые непонятно куда отнести. | |
Посчитал, что деление не оправдано. | |
——————— | |
Замечания к документу «Синтаксис шаблонов» | |
подпредикаты перед блоком | |
> Каждый шаблон должен содержать подпредикат имени блока — запятая | |
DONE https://github.com/bem/bem-xjst/wiki/templates-syntax#block | |
> примеры bemjson-а на это сматчилось а на это не сматчилось | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#block | |
> имя параметра elemName поправить на name | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#elem | |
> todo — ссылка В контексте функции будут доступны все поля доступные в теле шаблона. | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#match | |
> Пояснить про порядок проверки подпредикатов | |
> Порядок выполнения кастомных предикатов гарантируется. | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#match | |
подпредикаты | |
— селекторы | |
— подпредикаты свойств | |
> русифицируем слова мода — режим | |
DONE. | |
> i-bem про режим js | |
> убрать () | |
> data-bem | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#%D0%A2%D0%B5%D0%BB%D0%BE-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0 | |
Разбить пример на | |
BEMJSON: { block: 'yalink', url: 'https://yandex.ru' } | |
Шаблон: | |
```js | |
block('yalink')( | |
tag()('a'), | |
attrs()(function() { | |
return { href: this.ctx.url }; | |
}) | |
); | |
``` | |
Результат шаблонизации: | |
```html | |
<a href="https://yandex.ru">Яндекс</a> | |
``` | |
> каждый подпредикат — это вызов | |
> а тело это отдельный вызов | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#%D0%A2%D0%B5%D0%BB%D0%BE-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0 | |
> посмотреть существующие кейсы def и добавить сюда пример. | |
TODO | |
> Режим является особым и не стоит использовать просто так. | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#def | |
> bem — указывает шаблонизатору нужно ли добавлять классы и js-параметры для самой БЭМ-сущности и её миксов. | |
DONE. | |
> Изменить порядок | |
> tag | |
> attrs | |
> content | |
> mix | |
> js | |
> bem | |
> js/ mix / tag из bemjson | |
> cls | |
DONE! | |
По умолчанию будет взято из поля content текущего узла BEMJSON. | |
> Общая схема: | |
> Что такое | |
> пример | |
> как интерферирует | |
> пример интерфери | |
TODO | |
> ONCE — объявляем депрекатед | |
TODO | |
> REPLACE — нельзя использовать для замены себя с оберткой | |
DONE: https://github.com/bem/bem-xjst/wiki/templates-syntax#replace | |
> block('b2').content — убрать | |
Поправил пример: https://github.com/bem/bem-xjst/wiki/templates-syntax#replace | |
> https://github.com/bem/bem-xjst/wiki/templates-syntax#wrap заменить пример | |
Упростил. https://github.com/bem/bem-xjst/wiki/templates-syntax#wrap | |
сматчились на узел, а рендерим произвольную сущность | |
Результат шаблонизации BEMHTML | |
https://github.com/bem/bem-xjst/wiki/templates-syntax#%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B4%D1%8Bhttps://github.com/bem/bem-xjst/wiki/templates-syntax#%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%BC%D0%BE%D0%B4%D1%8B | |
Переделать пример. | |
вычисление сущности. | |
TODO | |
> кастомные — русифицировать | |
DONE | |
КОНТЕКСТ | |
> элемент, явно указанный | |
> elem mods elemmods явно указанный | |
DONE. | |
> В тики ! this.mods и this.elemMods | |
DONE. | |
> Неправильно — избыточно | |
> Правильно — достаточно | |
DONE | |
> Пересмотреть пример: | |
> https://github.com/bem/bem-xjst/wiki/templates-context#%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B9-%D1%83%D0%B7%D0%B5%D0%BB-bemjson | |
DONE. | |
> JSDOC, примеры, заголовки | |
> https://github.com/bem/bem-xjst/wiki/templates-context#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F | |
DONE | |
> https://github.com/bem/bem-xjst/wiki/templates-context#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-%D0%B4%D0%BB%D1%8F-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F | |
> отметить что экранируется по умолчанию | |
DONE! | |
> сначал про позицию, затем про isF isL | |
DONE! | |
> Пример для position — каждому третьему класс | |
TODO | |
> https://github.com/bem/bem-xjst/wiki/runtime#wildcard-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B | |
> Добавить что block(*) сматится на пустой объект в том числе | |
DONE! | |
страшные кейсы: фак | |
block('b1')( | |
content()([ | |
{ block: 'b2' }, | |
{ block: 'b3' }, // this.isLast() === false | |
'text' | |
]) | |
); | |
> this.generateId() — генерирует для текущего узла | |
DONE | |
> tag()(''), — убрать | |
DONE | |
TODO isArray — deprecated | |
TODO isSimple — deprecated | |
TODO: разобраться с реаплаем | |
— было бы удобно иметь старый реаплай, который не завязан на контекст. | |
— Если нельзя выкинуть то отказаться от this. | |
— Проверить выполняюся ли oninit | |
> https://github.com/bem/bem-xjst/wiki/templates-context#thisreapply пример — в js-параметры HTML | |
DONE | |
> доступный в теле шаблона — с запятых | |
DONE! Спасибо! | |
> https://github.com/bem/bem-xjst/wiki/templates-context#%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F | |
> Smart trim | |
TODO | |
>Либо функцией — 1 1 11 | |
> убрать слова | |
DONE | |
oninit — внутри шаблонов | |
BEMContext — вне шаблонов | |
oninit — несколько примеров | |
TODO на apply нет тестов | |
TODO local — deprecated | |
> Это поведение описано разделе про режимы. | |
DONE. | |
> (они же условия или матчеры) — удаляем. | |
DONE! | |
Если для какого-то узла предикаты шаблона возвращают true, то выполняется тело шаблона. — в другой | |
> https://github.com/bem/bem-xjst/wiki/runtime#%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B-%D0%BD%D0%B0-%D0%BB%D1%8E%D0%B1%D1%8B%D0%B5-%D1%81%D1%83%D1%89%D0%BD%D0%BE%D1%81%D1%82%D0%B8 | |
> пример counter | |
> block(‘*’).match(function() { return this.ctx.counter; }).mix()({ … }) | |
DONE! | |
> Сослаться на apply во время mode() https://github.com/bem/bem-xjst/wiki/runtime#apply | |
DONE! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment