Category Banners uses existing category details to create banners for your category pages. It uses the category name, description, and color to generate a banner at the top of the relevant category pages (for tags check out Discourse Tag Banners).
The category description is defined by the first paragraph in each category’s “Category definition for …” topic. The banner background/text colors are defined by your category badge settings.
By default, this will display on desktop and mobile across all Category and Subcategory pages but will not appear if you haven’t given your category a description.
Settings
This component comes with options to override the defaults:
Name
Description
show description
Show description from “About This Category” post
show mobile
Show banners on mobile
show subcategory
Show banners for subcategories
hide if no description
Hide banners if category description is not set
show category logo
Show category logo
align text
exceptions
Banner will not show for these category NAMES
categories
Categories to show a banner for
plugin outlet
Changes the position of the banner on the page
show category icon
Show category icon or emoji from the category settings *
override category icon color
When the category icons are used, enabling this will make the icon match the banner text color
If you want to customize these with some additional CSS you can target specific category headers by using this structure (example-category is your category name):
thanks for this wonderful theme , it helps users to note the category description much easier.
currently if there’s a link or a bold/italic word in the category description, in the banner it’ll appear as simple text (e.x. p style instead of a style). isn’t it better if the text style is preserved in the banner as well?
Hi, I absolutely love this component! Thanks for your work!
I’m wondering, how can I style the background so that it automatically pulls the category background image and makes it the background of the banner. The backgrounds are already hidden anyways, so I want it to simply display as the background to the banner, rather than the page. I’ve tried this, but it didn’t work and I think I might be targeting the wrong variable:
Отсутствие префикса в названии категории — это рецепт катастрофы, поэтому я добавил category-banner- перед именем класса (например, category-banner-meta). Если вы обращались к названию категории в своём CSS, вам нужно будет просто добавить category-banner- перед ним.
Не уверен, я не думаю, что наши стандартные описания категорий поддерживают их, но я могу это проверить…
Я хочу использовать загруженное фоновое изображение из категории для установки его в качестве фона баннера. Я отредактировал код, и всё выглядит отлично. Подскажите, есть ли способы ускорить загрузку изображения или загрузить его одновременно с остальной частью страницы? Я хочу избежать мерцания фона в течение секунды до появления изображения.
Сжатие изображения, безусловно, вариант, но интересно, есть ли другие решения. Можно ли в коде получить миниатюру загруженного фонового изображения? Спасибо за любые подсказки!
Я только что попробовал установить его, следуя этому руководству (выполнил точно такие же шаги), чтобы протестировать компонент баннеров категорий, но ничего не происходит. Ни в одной категории не отображается баннер. Возможно, я что-то сделал не так, из-за чего он не работает? Единственное объяснение, которое я вижу, — это предупреждение о «bootstrap», которое блокирует его?
По умолчанию компонент темы не отображает баннеры категорий, если для категории не задано описание. Это можно изменить, сняв галочку с опции «Скрывать баннеры, если описание категории не задано».
Описания категорий задаются при редактировании темы «О категории», которую Discourse автоматически создаёт для каждой категории. Если вы уже добавили описания категорий или отключили настройку скрытия баннеров для категорий без описаний, но баннеры по-прежнему не отображаются, дайте нам знать. Мы разберёмся, в чём дело.
Спасибо за ваш ответ. Я проверил и подтвердил, что у каждой категории на форуме есть описание. Опция «Скрыть баннеры…» теперь снята для проверки, но ничего не изменилось.
Как видно на изображениях, в настройках всё выглядит нормально:
Есть ли кто-то, кроме меня, кто считает, что было бы здорово применить этот же стиль к страницам списка групп (например, /g/foo)? К сожалению, CSS немного отличается, и, похоже, потребуется дополнительная обработка различных кнопок справа от названия группы, то есть Запрос Сообщение Удалить
Это могло бы значительно улучшить единообразие внешнего вида и сделать группы более «полноценными» элементами интерфейса. (По моему мнению)
Оно выполняет практически ту же функцию, но с некоторыми изменениями:
Блок баннера категории отображается встроенным образом над основным заголовком, а не на всю ширину вверху. Это позволяет размещать тему баннера в верхней части, например, discourse-versatile-banner.
Блок баннера категории отображается в том же стиле, что и нативные блоки подкатегорий Discourse, которые являются основным компонентом системы. Эти блоки подкатегорий — это опция отображения в настройках категорий Discourse: Показать список подкатегорий над темами в этой категории. Эта опция отображает название и описание подкатегории в виде строки или блока над списком тем, используя цвет фона категории в качестве левой границы.
Если категория является подкатегорией, её название отображается в виде хлебных крошек следующим образом: Название родительской категории: Название подкатегории
Демонстрационный скриншот блока баннера темы для категории, расположенного над нативными блоками подкатегорий.
Это моя первая попытка модификации темы. Надеюсь, это будет полезно?
Обновление
Я переписал эту адаптацию как отдельный компонент — с множеством дополнительных функций, включая использование изображения логотипа категории и фонового изображения в заголовке. Этот новый компонент эффективно заменяет стандартный заголовок категории Discourse, в отличие от баннеров категорий, и поэтому представляет собой новый компонент. Пожалуйста, ознакомьтесь:
Я только что попробовал, и у меня всё работает: он ищет категорию с учётом регистра name. В ретроспективе это был не лучший способ реализации… Я, вероятно, смогу это улучшить.
Ах, этот сорт — для меня! И вы действительно указываете «имя» в руководстве выше — я просто не заметил.
«Имя» не очень интуитивно понятно, так как мы не используем его ни для чего другого. Но оно отображается довольно часто. Было бы неплохо сделать его более явным в настройках, я считаю.
Вместо того чтобы добавлять исключения для категорий, которым не следует показывать определённый загруженный баннер, не лучше ли просто указать, какая категория должна показывать какой баннер?
Думаю, это зависит от конкретного сайта и сценария использования. Изначально я подумал, что скорее всего сайт захочет внедрить это повсеместно, и если будут исключения, то их будет немного.
Добавить класс restricted к элементу <span.discourse-category-banners> или <div.category-title-header>, когда категория не является публичной, так же как это сделано для значка категории.
Это было бы полезно для стилизации баннера с помощью дополнительного CSS, чтобы показать пользователю, что эта категория особенная.
Сейчас это можно сделать, но сложно выбрать с помощью CSS иконку замка и выполнить какие-то действия, так как в CSS нет селектора родительского элемента, я не могу использовать наличие иконки замка для проверки, нужно ли изменять баннер.
Я пока не очень хорошо умею создавать PR, но хотел бы использовать это как хороший повод научиться, если вы готовы принять мое изменение.