Добавить функцию «избранная тема»

Для таких отличных тем, похоже, нет способа выразить им поддержку, например, выделив их пост.

Чтобы выделить тему в списке тем, вы можете закрепить её вверху списка. Это стандартная функция Discourse.

1 лайк

Я понимаю, но, на мой взгляд, «pin» (закрепление) предназначено для правил этой категории или чего-то подобного. Для меня предпочтительнее, если бы существовал способ выделить некоторые темы в списке, не закрепляя их.

Можете ли вы показать макет того, как вы представляете себе это?

Примерно так. Заголовок темы сделайте цветным, жирным и добавьте звезду… это просто образец, чтобы пользователь понимал, что тема выделена и рекомендована.

Отлично! Вы легко можете этого добиться с помощью небольшого компонента темы. Сначала создайте тег для сотрудников, чтобы обозначить это состояние «выделения», например, «highlight». Затем пометьте темы, которые хотите выделить, этим тегом.

В коде темы вам нужно стилизовать его так, как вы хотите, например:

tr.tag-highlight {
    background-color: blue;
    font-weight: bold;
    border: 3px dotted pink;
}

Тогда это будет выглядеть так:

6 лайков

Я знаю, как это сделать в CSS, этот пример на самом деле работает в моём Discourse. Я просто хочу узнать, можно ли реализовать эту функцию в официальной версии? Думаю, подсветка — довольно полезная функция.

3 лайка

Это очень круто и работает для подсветки тем в списках, но я также хочу подсветить саму тему. Похоже, что тег существует на странице темы только для самого тега.

Я попробовал сделать это, что, кажется, может сработать, но, вероятно, я делаю это неправильно.

.title-wrapper div.has-highlight {
  /* Стили для <h1> с классом */
  color: blue !important;
  font-weight: bold;
}
1 лайк

Что означает «сама тема» в данном контексте?

На странице темы с тегом я хочу стилизовать тему в другой цвет (или как-то иначе), чтобы она выделялась не только в списках тем, но и при переходе на страницу самой темы.

О, вы имеете в виду первый пост в теме, то есть OP, верно?

body.tag-highlight article#post_1 {
    background-color: blue;
    font-weight: bold;
    border: 3px dotted pink;
}
1 лайк

Отлично! А как теперь обратиться к ЗАГОЛОВКУ темы?


// это обращается к самому тегу
a[data-tag-name="extra-special-topic"] {
    color: yellow !important;
}

// это меняет заголовок в списках тем
.tag-extra-special-topic  .raw-topic-link {
    color: blue !important;
}

// это обращается к фону/телу первого поста
body.tag-extra-special-topic article#post_1 {
    background-color: blue;
    font-weight: bold;
    border: 3px dotted pink;
}
.tag-extra-special-topic #topic-title .fancy-title {
  color: papayawhip;
}

Мой дорогой друг, пробовал ли ты подход, который они предложили? Должен признаться, их объяснение мне не было понятно. :rofl:

Какая именно часть? Просто открой редактор темы и отредактируй CSS.

У меня это сработало странно: когда я нахожусь в выделенной теме, стиль применяется и к другим темам внизу в списке «Новые и непрочитанные темы».

Но если я НЕ в теме, то подсвечивается только та, которая должна быть выделена (как и следовало ожидать).

Что здесь происходит :lol:?