Como ocultar tags após N e mostrar “+X mais” como categorias

Olá a todos,

Estou trabalhando com tópicos que às vezes recebem muitas tags (muitas delas são geradas automaticamente a partir de um feed ICS). Na interface do Discourse, as tags simplesmente continuam a quebrar a linha, o que torna as listas de tópicos muito altas e mais difíceis de percorrer.

Gostaria de fazer algo semelhante à forma como as categorias são exibidas nas listas de tópicos:

  • Mostrar as primeiras algumas (digamos 5)
  • Em seguida, recolher o restante atrás de um indicador “+X mais”

O que eu tentei:

  • O CSS pode ocultar tags após um certo número e até adicionar um marcador estático “…”, por exemplo,
/* Ocultar todas as tags após a 5ª */
.topic-list .discourse-tags a:nth-of-type(n+6) {
  display: none;
}

/* Adicionar … após a 5ª */
.topic-list .discourse-tags a:nth-of-type(5)::after {
  content: " …";
}

Isso funciona para ocultar, mas o CSS não consegue contar dinamicamente quantas foram ocultadas, então não consigo obter “+3 mais”.

Minha pergunta:

  • Existe uma maneira integrada de limitar as tags por exibição de tópico?
  • Se não, existe um trecho de exemplo (talvez da renderização de categorias) que eu possa adaptar em um componente de tema para adicionar a lógica “+X mais” para tags?

Agradeço antecipadamente!

1 curtida

Você conseguiu descobrir isso? Não é suportado no Discourse principal, embora você provavelmente possa fazer isso com um componente de tema.

Existe uma configuração padrão de max tags per topic (máximo de tags por tópico) que é definida como 20, o que eu acho que é um padrão sensato e não leva a muitos quebras de linha. Presumo que seja raro querer tantas tags de qualquer maneira.

:eyes:
20?

Sim, você está certo! Eu tinha aumentado para 20 no meu site. O padrão é 5, o que é perfeitamente razoável.

Seu olho de águia nunca deixa de me surpreender.

1 curtida

sim, meu script de importação na verdade tem a criação de tags de UID curta desativada, já que ele cria o marcador de UID oculto em HTML

Este tópico foi automaticamente fechado 14 dias após a última resposta. Novas respostas não são mais permitidas.