Closed vaseker closed 7 years ago
Костыльное решение может быть таким:
bemjson:
{
block: 'b-page',
lang: '%lang%'
}
b-page.bh.js на уровне проекта:
module.exports = function (bh) {
bh.match('b-page', function (ctx) {
ctx.tParam('lang', ctx.param('lang'));
});
bh.match('b-page__html', function (ctx) {
ctx.attr('lang', ctx.tParam('lang'));
});
};
Но думается, что такая реализация должна быть на уровне вендора.
+1
Если уж в одном файле, то...
module.exports = function (bh) {
var lang;
bh.match('b-page', function (ctx) {
lang = ctx.param('lang');
});
bh.match('b-page__html', function (ctx) {
ctx.attr('lang', lang);
});
};
@zxqfox
Когда bh-шаблоны выгружаются на клиент, все module.exports
режутся и ваш lang
улетает в window
. Но pull не об этом.
для <html>
потенциально могут понадобится еще атрибуты manifest
и xmlns
.
@gorbenko А разве оно не заворачивается в module.exports = function
или modules.define('BH', function
? Впрочем, согласен, что tParam лучше. В т.ч. это лучше, если преобразовывать в bh.{notJs}.
@tadatuta @vaseker А в bemhtml это есть? Имхо, надо тоже добавить, если нет.
@zxqfox в bemhtml тоже нет.
@vaseker Спасибо.
@tadatuta В общем, надо и туда, и суда добавлять? Или надо подумать?
@gorbenko я правильно понимаю, что пример про костыльную реализацию — не про bem-core
, а про какую-то кастомную реализацию обвязки?
@zxqfox похоже, что нужно.
@veged, нет возражений против добавления опционального ключа htmlParams
в BEMJSON API page
?
@tadatuta почему htmlParams
а не просто lang
? какие-то ещё нужны будут параметры? по умолчанию мы против абстрактных коллекций на любые параметры, лучше точечно решать
@veged если следовать принципу минимализма, то, вроде, нужно оставлять только lang
.
Но, например, для rtl-языков потребуется dir
, для оффлайн-приложений — manifest
. И в отличии от кейса с контролами, чтобы на своем уровне их добавить, придется копипаститить чуть ли не весь page
.
@tadatuta предлагаю "on demand" по прецедентам добавлять то, что действительно нужно нам и нашим пользователям
В
page.bh.js
не предусмотрена установка аттрибутаlang
для тегаhtml
.Приходится указывать язык в meta:
<meta http-equiv="content-language" content="ru"/>
W3 validator по этому поводу говорит:
Логично ли для решения этой проблемы создать PR с изменением:
или есть аргументы "против"?