Resaltador de categorías

Este componente de tema te permite resaltar una categoría (o categorías) en tu Discourse. Puedes:

  1. Asignar un estilo de fondo especial a categorías específicas
  2. Agregar un enlace a la categoría en el encabezado con el mismo estilo especial

Un caso de uso típico es para una categoría con contenido “Premium”.

:wrench: Cómo instalar

:computer: Obtener el código


Navegación por categorías y etiqueta del encabezado

|Lista de temas | Menú del sitio |
|--------- | -----\n|

| |

Página de categorías

Configuración

El componente de tema Category Highlighter tiene una configuración principal: “resaltar categorías”. Encontrarás esta configuración en el panel de configuración del componente de tema Category Highlighter.

Cada categoría que quieras resaltar tiene su propio elemento de lista en esta configuración. El formato de cada elemento es:

category_slug~background~text_color~header_label~header_label_mobile~parent_slug~alternate_link

Un ejemplo de este formato es:

premium~linear-gradient(319deg, #cdedfd 0%, #ffec82 37%, #ffcfd2 100%)~#88562e~:star:  Premium~:star:

Hay seis valores posibles, cada uno separado por ~ (una “tilde”). Veamos cada valor por separado.

Slug de la categoría

Este es el “slug” de la categoría que deseas resaltar. Puedes encontrarlo en la configuración de tu categoría.

Si necesitas resaltar una subcategoría, debes usar el slug de la categoría “Padre”, seguido del slug de la subcategoría separado por una /.

Por ejemplo, si hubiera una subcategoría de premium con el slug videos que quisiera resaltar, usaría:

premium/videos

Permisos

Ten en cuenta que solo los usuarios que tengan permisos de lectura para la categoría resaltada verán los resaltados, incluida la etiqueta del encabezado. Puedes cambiar los permisos de tu categoría en la configuración de “Seguridad” de la categoría.

Fondo

Este es un valor que se asignará a la propiedad CSS background del distintivo de la categoría. Puedes usar cualquier entrada aquí que esa propiedad admita.

background - CSS: Cascading Style Sheets | MDN

La propiedad CSS abreviada background establece todas las propiedades de estilo de fondo a la vez, como color, imagen, origen y tamaño, o método de repetición.

Por ejemplo linear-gradient(319deg, #cdedfd 0%, #ffec82 37%, #ffcfd2 100%).

Color del texto

Este es un valor que se asignará a la propiedad CSS color del distintivo de la categoría. Esto afecta el color del texto. Puedes usar cualquier entrada aquí que esa propiedad admita.

color - CSS: Cascading Style Sheets | MDN

La propiedad CSS color establece el valor del color de primer plano del texto de un elemento y sus decoraciones de texto, y establece el valor currentcolor. currentcolor puede usarse como un valor indirecto en otras propiedades y es el valor predeterminado para otras propiedades de color, como…

En nuestro caso de ejemplo, esto es #88562e.

Etiqueta del encabezado

Este valor cumple dos funciones. Determina:

  1. si la categoría resaltada obtendrá una etiqueta en el encabezado; y
  2. el contenido de esa etiqueta.

Si no deseas una etiqueta en el encabezado, no incluyas este valor en absoluto.

Este valor admite texto, entidades HTML y emojis.

El valor de la etiqueta del encabezado aquí es: :star:  Premium. Esto es:

  1. El shortcode del emoji de estrella: :star:
  2. Dos entidades HTML de espacio no separable (cada una agrega un espacio en blanco):   
  3. Nuestro texto de etiqueta: Premium

Puedes encontrar la lista completa de shortcodes de emojis aquí y la lista completa de entidades HTML aquí.

Etiqueta del encabezado móvil

Este valor también cumple dos funciones. Determina:

  1. si la categoría resaltada obtendrá una etiqueta de encabezado móvil; y
  2. el contenido de la etiqueta del encabezado móvil.

El uso y el formato son los mismos que los de la etiqueta del encabezado. Una cosa a tener en cuenta aquí es que tienes menos espacio en dispositivos móviles, por lo que podría ser prudente usar solo un emoji o una palabra corta para ahorrar espacio.

Categoría padre

Puedes crear un menú desplegable en el encabezado estableciendo el “padre” de un elemento. Inserta un slug de categoría como el sexto elemento y el elemento relevante se convertirá en un elemento de submenú de esa categoría en el encabezado. Al igual que con el primer elemento, asegúrate de usar el slug de la categoría aquí, que puedes recuperar del modal de configuración de la categoría.

Enlace alternativo

Por defecto, cada elemento de categoría enlaza a la categoría a la que corresponde. Puedes cambiar el enlace agregando una URL como el sexto elemento en el bloque de configuración.

25 Me gusta

Tan simple, pero tan impactante. Llevaba un tiempo con el plan de aplicar CSS a ciertas partes del foro para resaltar las publicaciones de las categorías de clientes de pago. Eso hace que todo sea mucho más fácil ahora. Gracias por el trabajo, ¡esto es increíble!

¿Has pensado en resaltar los temas en la lista de temas cuando todas las categorías están activas en el selector de categorías? Por ejemplo, añadir la estrella antes del título del tema.

2 Me gusta

El resaltado funciona en todos los lugares donde aparece la insignia, así que ya está presente en la lista :slight_smile:

Lista de temas Menú del sitio

Página de categorías

Ver más en https://try.thepavilion.io

4 Me gusta

@Angus, eres un increíble desarrollador y es un enorme placer colaborar contigo. Gracias por tu creatividad, excelencia y meticulosidad. Eres un regalo para la comunidad de Discourse.

6 Me gusta

Este es un componente bastante genial, buen trabajo :+1:

7 Me gusta

ooo eso se siente tan.. :sparkles: preeemium

10 Me gusta

Al principio pensé que había una barra lateral. Una barra lateral con este estilo podría ser agradable.

Excelente componente, realmente bonito. :+1:

@angus Me gustaría saber cómo poner un border-radius en el fondo resaltado, gracias de antemano.

1 me gusta

Debido a la variedad de contextos en los que aparece la insignia de categoría, esto es un poco complejo. Podría agregar una clase para facilitar esto, pero por ahora puedes hacer lo siguiente:

### Botón de encabezado
.highlight-category-button {
    border-radius: 4px;
}

### Insignias
.badge-wrapper[class*=" updates "],
.extra-info-wrapper .categories-wrapper .badge-wrapper[class*=" updates "],
.category-title-link-component[class*=" updates "] .category-text-title,
.select-kit.combo-box.category-drop .category-row[class*=" updates "] .badge-wrapper {
    &:before {
        border-radius: 4px;
    }
}

“updates” es el identificador de categoría en el ejemplo.

Ejemplo: https://try.thepavilion.io/

2 Me gusta

El componente ahora admite un menú desplegable de categorías. :tada:

Si utilizas el slug de la categoría principal como el sexto elemento en la configuración, se mostrará un menú desplegable con las categorías hijas como elementos del menú.

Nota: Deberás pasar el quinto elemento, es decir, (Etiqueta de encabezado móvil), vacío si no deseas utilizarlo.

Gracias por patrocinar esto @outofthebox.

4 Me gusta

¡Gran trabajo, @fzngagan!! El equipo de Pavilion es excelente.

2 Me gusta

¿Sería posible resaltar no solo el slug, sino también .select-kit .select-kit-row.is-highlighted?

Creo que sería mejor para nuestros ojos.

Estoy de acuerdo con los comentarios: tu trabajo es increíble. Estuve revisando el sitio de Pavilion y estoy probando muchas cosas.

Espero que pronto trabajemos en algunas ideas que tenemos para nuestra comunidad :ok_hand:

¡En primer lugar, gracias por este increíble componente!

Creo que se vería mejor si hubiera un poco más de espacio en blanco entre el título del tema y la insignia de la categoría en la vista de lista de temas. ¿Se puede lograr esto dentro del componente? Parece que los cuadros son un poco más grandes que la vista de cuadros predeterminada, lo que crea una vista molesta para algunos perfeccionistas, lol.

La vista móvil es mejor que la de escritorio:

¿Este todavía funciona con las últimas pruebas superadas? Si es así, ¿todavía tienes la documentación archivada en alguna parte? @angus

He pegado la documentación en el OP de arriba. Hazme saber si no funciona.

1 me gusta

¡Genial! ¡Especialmente la parte del degradado fue crucial para lograr mi objetivo! ¡Muchas gracias!

1 me gusta

¿Alguien sigue usando este TC y tal vez encontró una solución para el siguiente problema?
En 2.9.0.beta9 y beta10, el TC hace que la meta de la categoría del sistema desaparezca del campo desplegable de categorías y de la lista de temas.

El registro del foro está vacío, lo único en el registro de la consola es:

[THEME 190 'Category Highlighter'] Para evitar errores en las pruebas, agregue una clave `pluginId` a su llamada `modifyClass`. Esto garantizará que la modificación solo se aplique una vez. 3 plugin-api.js:19