La configuración no aparece

Hola a todos, estoy empezando a desarrollar cosas para Discourse y estoy trabajando en un componente de tema.
Enlace: GitHub - NateDhaliwal/discourse-persistent-banner: A theme component for Discourse that cannot be closed by the user.

Al ponerlo en Theme Creator, la configuración no aparece, aunque tengo un settings.yml. ¿Alguna idea?

1 me gusta

¿Ves algún mensaje de error en el creador de temas?

Creo que tienes que usar las mismas comillas al principio y al final.

Esto también podría ser un problema. Intentaría default: "".

Quizás quieras añadir “block” a las opciones. De lo contrario, tendrás que usar el botón de revertir para volver a elegirlo.

2 Me gusta

Vaya, acabo de darme cuenta de que estaba haciendo clic en ‘Crear nuevo’ en lugar de importarlo…
Pero ahora, cuando intento usar la URL, dice que about.json es inválido o no existe, preguntándome si es un tema.
About.json:

¿Hay algo mal?

Falta una coma después de la URL de la licencia.

4 Me gusta

:frustrado:
@merefield ¿La versión estaría entre comillas (\"\")?

1 me gusta

Probablemente eso también. Solo mira los ejemplos.

1 me gusta

¡Gracias! Una última cosa, no parece que pueda mostrar la variable.
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/common/header.html

¿Fue porque no la inicialicé correctamente? Intenté seguir la guía…

  1. no uses “header.html”, usa un componente adecuado (preferiblemente un archivo .gjs, pero .hbs podría ser suficiente).
  2. usa el helper html-safe siempre que generes html a partir de configuraciones o variables.
2 Me gusta

¿Tendría que usar

import Component from "@glimmer/component";

export default class PracticeComponent extends Component {
  get bannerLinks() {
    return JSON.parse(settings.banner_links);
  }
}

entonces?

1 me gusta

Mira los miles de millones de ejemplos :stuck_out_tongue_winking_eye:

1 me gusta

Solo necesitas usar un archivo gjs si necesitas procesar cosas con javascript, de lo contrario, un archivo de plantilla hbs podría ser suficiente. Experimenta.

1 me gusta

No estoy seguro de si voy en la dirección correcta.
Creé javascripts/persistent-banner.hbs con esto:
https://github.com/NateDhaliwal/discourse-persistent-banner/blob/main/javascripts/persistent-banner.hbs

Pero no aparece nada. Intenté ponerlo en diferentes lugares, pero todavía no funciona.

Intenté mirar el ejemplo, pero muchos no parecen ayudar.
¿Algún consejo?

1 me gusta

¿En qué conector de plugin quieres poner tu banner?
Echa un vistazo a Using Plugin Outlet Connectors from a Theme or Plugin

Podrías usar https://meta.discourse.org/t/add-a-featured-topic-list-to-your-discourse-homepage/132949?u=moin como ejemplo

Puedes usar el (deprecated) Plugin outlet locations theme component para encontrar los nombres y ubicaciones de los conectores de plugins. “above-main-container”, por ejemplo, es el superior encima de la lista de temas, pero no encima de la barra lateral.

Mirar el código de un Theme component que añade algo similar también es una excelente manera de aprender.

2 Me gusta

No necesitas ni debes poner etiquetas de script en archivos hbs. Deben limitarse al contenido de la plantilla.

No adivines, lee las guías:

3 Me gusta

Así que… logré que funcionara sin usar un archivo hbs, sino usando la etiqueta <script> con handlebars, y ahora funciona.
Por ahora lo uso así, pero seguiré intentando usar un archivo hbs en su lugar.

1 me gusta

He creado una solicitud de extracción rápida para que puedas ver la forma correcta de dividir los archivos. Siéntete libre de fusionarla o simplemente échale un vistazo a la rama.

6 Me gusta

¡Muchas gracias! ¡Ahora funciona!

1 me gusta

No te preocupes, Nate. Sigue experimentando, leyendo y mirando otros ejemplos. En poco tiempo serás mucho mejor que yo en estas cosas de desarrollo :smiley: :raised_hands:

2 Me gusta

¡Gracias por el ánimo!

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.