Recibe la descripción completa de una categoría en un tema

Por lo que sé, la descripción se almacena (y se mantiene) en la primera sección del primer mensaje de una descripción.

Quiero agregar enlaces cerca de los botones “Arriba” y “Más reciente” en la categoría. Como un tema no se puede configurar para cada categoría, pensé que podría simplemente agregar los datos para los enlaces en la “parte oculta” de la descripción de la categoría, ya que solo se muestra el primer fragmento de la descripción de la categoría en la lista de categorías.

Los datos se verían así: {TAG,linkText,linkTitle,linkHref}.

Lo siento, supongo que no es lo mejor:

¿Es posible obtener los datos completos del texto de la descripción de una categoría en un tema o widget?

Gracias de antemano.

Sí, eso es lo que hace Category Banners.

Bueno, creo que:

  • category.description devuelve la descripción de la categoría bien formada
  • category.description_text devuelve los datos en texto plano

pero ambos solo están devolviendo el primer capítulo de la descripción y no la primera publicación completa de la categoría que contiene la descripción. ¿Me estoy perdiendo algo?

Oh, ese es el comportamiento esperado. Discourse utiliza solo el primer párrafo del tema ‘Acerca de’ como descripción de la categoría en toda la interfaz de usuario.

Si necesitas algo más, tendrás que hacer una llamada adicional a la API para obtener el contenido.

¿Sería esto posible en un componente de tema? ¿Tienes un ejemplo?

¡Topic List Sidebars hace exactamente esto!

Si el objetivo es renderizar condicionalmente los enlaces en páginas de categorías específicas, entonces recomiendo dar un paso atrás y probar un enfoque diferente.

Digamos que tienes una configuración como esta:

target_category, link_text, link_title, link_href

Luego puedes hacer algo como esto.

api.addNavigationBarItem({
  displayName: text, // texto del enlace
  name: title, // título del enlace
  href: href, // destino del enlace
  customFilter: category => {
    return (
      category && category.name.toLowerCase() === TARGET_CATEGORY.toLowerCase() // categoría objetivo
    );
  }
});

La parte importante aquí es el customFilter, porque creo que es lo que buscas.

Si tienes múltiples enlaces, necesitarás envolver eso en un forEach.

Gracias, @Falco. Esto era exactamente lo que necesitaba.

Gracias, @Johani. Pensé en tu sugerencia. Lamentablemente, tenemos una gran cantidad de categorías y la configuración en los ajustes sería demasiado extensa y difícil de gestionar. Por eso escribí este tema.

Ya lo tengo funcionando correctamente. Después de añadir soporte para parent_categories y corregir algunos errores menores, lo documentaré y lo “publicaré de la manera adecuada”.

Finalmente, supongo que esto es todo. Siéntete libre de usarlo. Un gran “Gracias” a todos los que están trabajando en Discourse. Trabajo increíble.

Enlace al componente del tema: