dsims
(Daniel)
13.Февраль.2025 19:12:53
1
Я хочу добавить аватар автора темы в фрагменты списка тем, но, похоже, нет способа изменить Topic Excerpt.
TopicExcerpt:
Кажется, единственный вариант — скрыть .topic-excerpt с помощью CSS и использовать свой собственный компонент через плагин-выход topic-list-main-link-bottom, который находится прямо под областью TopicExcerpt. Проблема в том, что этот плагин-выход получает в качестве аргумента только тему, поэтому мне приходится дублировать всю логику из expandPinned , чтобы понять, нужно ли его отображать.
Короче говоря: Можно ли добавить плагин-выход внутрь TopicExcerpt и/или передавать @expandPinned в выходы topic-list-main-link-bottom?
merefield
(Robert)
13.Февраль.2025 19:20:12
2
У вас теперь больше возможностей, см.:
The topic-list is one of the most-used and most-customized user-interfaces in Discourse. There are many different tools available to theme and plugin developers to achieve this customization, each with their own advantages, disadvantages and maintenance considerations.
CSS-based Customization
The safest and most common customization method is CSS. As with any other Discourse customization: the more complex your changes, the more maintenance is likely to be required in your theme or plugin.
Gen…
dsims
(Daniel)
13.Февраль.2025 19:31:48
3
Я изучил все доступные варианты, насколько мне известно. Насколько я вижу, хирургически изменить только отрывок невозможно.
merefield
(Robert)
13.Февраль.2025 19:32:38
4
Да, есть. Удалите его и добавьте свой.
dsims
(Daniel)
13.Февраль.2025 19:40:51
5
Robert:
Удали его и добавь свой
Ты имеешь в виду заменить весь элемент списка тем на свой собственный? Я бы хотел избежать необходимости поддерживать всё это, когда мне нужно изменить лишь небольшой фрагмент.
merefield
(Robert)
13.Февраль.2025 19:41:18
6
нет, замените ячейку с фрагментами или добавьте рядом ещё одну и скройте её.
dsims
(Daniel)
13.Февраль.2025 19:46:54
7
Отрывок — это не ячейка. Он используется внутри topic-cell и в мобильном элементе .
Также можно увидеть, что соседний плагин-выход topic-list-main-link-bottom передаёт только @topic , но не @expandPinned .
merefield
(Robert)
13.Февраль.2025 19:52:42
8
Ах да, вы правы, извините.
Я увидел файл в компонентах topic-list и сделал предположение.
Но в любом случае, есть множество инструментов для достижения того, что вы хотите здесь, не так ли?
Plugin outlet выглядит как хороший вариант, а затем манипулировать макетом с помощью CSS?
merefield
(Robert)
13.Февраль.2025 20:00:38
9
Что касается expandPinned, возможно, стоит воспроизвести логику в вашем новом компоненте столько, сколько потребуется?
dsims
(Daniel)
13.Февраль.2025 20:35:38
10
Да, я как раз собирался пойти этим путём. Что также означает повторение
get useMobileLayout() {
return applyValueTransformer(
"topic-list-item-mobile-layout",
this.site.mobileView,
{ topic: this.args.outletArgs.topic }
);
}
//и из discovery/topics.js
get expandGloballyPinned() {
!this.expandAllPinned();
}
get expandAllPinned() {
const category = this.discovery.category?.id
const tag = this.discovery.tag?.id
return category || tag;
}
Я надеялся, что мольбы к богам могут привести к более чистому варианту
merefield
(Robert)
13.Февраль.2025 20:36:26
11
Обычно именно этим я занимаюсь в понедельник утром.
это выглядит разумно, поэтому я сделал это здесь:
main ← dev-expandpinned-outlet
merged 02:37PM - 14 Feb 25 UTC
Requested on Meta, seems reasonable: https://meta.discourse.org/t/modify-topicex… cerpt-template/352136