Привет! Раньше я вставлял название своего форума текстом в заголовок после логотипа, но было сложно заставить его корректно отображаться при всех возможных комбинациях ширины браузера и содержимого заголовка. Поэтому теперь я использую изображение логотипа, в котором сам логотип сопровождается названием форума.
Но после обновления до версии v2026.7.0 у меня возникли проблемы с его отображением на определенных ширинах внутри тем. (На главной странице проблем нет, так как там в заголовке больше свободного пространства). В настройках Discourse для Малого логотипа указано: «Малое изображение логотипа в левом верхнем углу вашего сайта, видимое при прокрутке вниз». Однако фактическое поведение немного сложнее. При ширине браузера >=1015 пикселей (примерно) при прокрутке вниз внутри темы с видимой боковой панелью используется Основной логотип, который приходится уменьшать, чтобы он поместился в оставшееся небольшое пространство слева от заголовка темы, из-за чего в моем случае он становится нечитаемым. Затем при ширине меньше ~1015 пикселей происходит переключение на Малый логотип. Есть ли способ заставить систему всегда использовать Малый логотип или даже Мобильный логотип при прокрутке вниз в представлении темы? В этой старой теме есть некоторые похожие идеи, но это не совсем то, что я хочу сделать, и я не уверен, что техническая реализация все еще актуальна:
// Когда боковая панель видна, принудительно устанавливаем для HomeLogo состояние «не свернуто».
const transformerExists = api.registerValueTransformer?.(
"home-logo-minimized",
({ value, context }) => {
if (value && context.showSidebar) {
return false;
}
return value;
}
);
^ И этот тоже, но он только для автоматического тестирования, верно?
Существует ли какой-нибудь относительно чистый способ «переопределить переопределение», не создавая полную вилку компонента? Мне это нужно в основном потому, что 1) многие мои пользователи явно выразили сильное предпочтение широкому макету, и 2) есть слишком много крупных и мелких особенностей, которые необходимо обрабатывать с помощью CSS-правил, помимо простого увеличения значений --d-max-width и --topic-body-width. Я поддерживаю свой собственный темплейт-компонент с набором чистых CSS-правил, которые я скопировал и адаптировал из discourse-full-width-component/common/common.scss at main · discourse/discourse-full-width-component · GitHub, но он обычно ломается с каждым крупным релизом Discourse, и я предпочел бы что-то лучше поддерживаемое и требующее меньшего обслуживания, вроде компонента Full Width.
Да, конечно, эти изменения полностью контролируются новым параметром, поэтому их можно безопасно перенести в эту версию. Теперь они должны быть доступны.