Etiquetas en la parte superior de la lista de temas en una categoría

Hola a todos,

He aprendido mucho usando plantillas, conectores de complementos y toda la maravillosa magia de Discourse. ¿Es posible enumerar todas las etiquetas utilizadas en una categoría en la parte superior de la lista de temas allí?

Puedo lograr esto más o menos con: Discourse Popular Tag Sidebar

Veré qué puedo aprender.

Puedes obtener las top_tags fácilmente:

Importa ajax – import { ajax } from \"discourse/lib/ajax\";, luego →

ajax(`/c/general.json`).then((data) => {
  console.log(data.topic_list.top_tags);
});

Esta es la categoría general; puedes reemplazarla con una variable o una configuración de componente temático.

Si deseas mostrar todas las etiquetas sin filtrar por categoría, usa /tags.json.

Para usar el outlet encima de la lista de temas, el nombre del outlet es /javascripts/discourse/connectors/above-main-container/{nombre-de-tu-archivo}.hbs. Te recomiendo ver cómo se hace esto en otros componentes temáticos y leer Using Plugin Outlet Connectors from a Theme or Plugin.


Es más difícil obtener todas las etiquetas. Puedes ver la estructura de datos de /c/general.json, que se ve así. En lugar de usar data.topic_list.top_tags, podrías iterar cada uno en data.topic_list.topics y agregar cada tags de cada topic a un array. data.topic_list.topics.map((topic) => topic.tags);.

¡Espero que esto ayude! :slight_smile: