diff --git a/common.blocks/link/link.bemhtml.js b/common.blocks/link/link.bemhtml.js index a0ab6cd..8b49323 100644 --- a/common.blocks/link/link.bemhtml.js +++ b/common.blocks/link/link.bemhtml.js @@ -5,3 +5,14 @@ block('link')( return { href: this.ctx.url }; }) ) + +/** + * В данном случае мы считаем, что у всех ссылок url есть по умолчанию, + * а если его нет, то сделаем исключение: заменим тег на span, потому что в html + * это уже не ссылка + * + * Если проводить аналогию с CSS — это селектор вида .link[href] + */ +block('link').match(function() { return !this.ctx.url })( + tag()('span') +) diff --git a/index.potter.bemjson.js b/index.potter.bemjson.js index 47aa337..ffc2690 100644 --- a/index.potter.bemjson.js +++ b/index.potter.bemjson.js @@ -11,7 +11,6 @@ block: 'logo', content: { block: 'link', - url: '#', /** * Условная логика */ diff --git a/potter.blocks/menu/menu.bemhtml.js b/potter.blocks/menu/menu.bemhtml.js new file mode 100644 index 0000000..b762f5d --- /dev/null +++ b/potter.blocks/menu/menu.bemhtml.js @@ -0,0 +1,17 @@ +/** + * На всех страницах менюшка представлена тегом ul, + * однако на странице potter мы хотим ol — добавим переопределение на уровне potter.blocks + * + * По аналогии с css: + * + * // common + * .menu { ... } + * + * // potter + * .menu { ... } + * + * Стили из второго правила перебивают стили из первого + */ +block('menu')( + tag()('ol') +)