Hoe tags te verbergen na N en " +X meer" te tonen zoals categorieën

Hallo allemaal,

Ik werk met onderwerpen die soms veel tags krijgen (veel daarvan worden machinaal gegenereerd uit een ICS-feed). In de Discourse UI blijven tags zich maar omwikkelen, waardoor onderwerplijsten erg hoog worden en moeilijker te scannen zijn.

Ik zou iets willen doen dat vergelijkbaar is met hoe categorieën worden weergegeven in onderwerplijsten:

  • De eerste paar (zeg 5) weergeven
  • Vervolgens de rest verbergen achter een “+X meer”-indicator

Wat ik heb geprobeerd:

  • CSS kan tags verbergen na een bepaald aantal, en zelfs een statisch “…”-markering toevoegen, bijvoorbeeld:
/* Verberg alle tags na de 5e */
.topic-list .discourse-tags a:nth-of-type(n+6) {
  display: none;
}

/* Voeg … toe na de 5e */
.topic-list .discourse-tags a:nth-of-type(5)::after {
  content: " …";
}

Dat werkt voor het verbergen, maar CSS kan niet dynamisch tellen hoeveel er zijn verborgen, dus ik kan geen “+3 meer” krijgen.

Mijn vraag:

  • Is er een ingebouwde manier om tags per onderwerpweergave te beperken?
  • Zo niet, is er een voorbeeldsnippet (misschien van categorie-rendering) dat ik zou kunnen aanpassen tot een thema-component om de “+X meer”-logica voor tags toe te voegen?

Alvast bedankt!

1 like

Heb je dit kunnen uitzoeken? Het wordt niet ondersteund in de kern van Discourse, hoewel je het waarschijnlijk wel kunt doen met een thema-component.

Er is een standaardinstelling max tags per topic die standaard op 20 staat, wat naar mijn mening een verstandige standaard is en niet leidt tot te veel wrapping. Ik neem aan dat het sowieso zeldzaam is om zoveel tags te willen.

:eyes:
20?

Yes, you are right! I had upped it to 20 on my site. The default is 5 which is perfectly sane.

Your eagle eye never ceases to amaze me.

1 like

yeh, my importer script actually has shortend UID tag creation disabled, since it creates the hidden HTML UID marker

Dit onderwerp werd automatisch gesloten 14 dagen na het laatste antwoord. Nieuwe antwoorden zijn niet meer toegestaan.