Desarrollo de plugins sin referencia

Desde hace una semana he intentado configurar una ruta personalizada en mi foro usando un plugin. La ruta debe ser accesible públicamente por cualquier persona. Quiero que el plugin simplemente muestre HTML de una plantilla de handlebar en la ruta especificada. No puedo conseguir que la plantilla se renderice.

He investigado cómo desarrollar plugins para Discourse y no encuentro ninguna documentación sustancial. Cada vez que alguien hace una pregunta sobre el desarrollo de plugins, la respuesta es un enlace a una “guía” sobre el desarrollo de un plugin de administración que muestra un tentáculo morado. Cada vez que hay una pregunta sobre una plantilla que no se muestra, simplemente se nos remite a la documentación de embers sobre routers.

Esa guía está bien, pero hay magia sucediendo en segundo plano que no se explica para que podamos tomar la información y seguir adelante. ¿Qué pasa si queremos mostrar una ruta pública? ¿Cómo consume Discourse el archivo plugin.rb? ¿Qué otro código/declaraciones específicas de Discourse puedo usar en el archivo plugin.rb como “add_admin_route” para agregar rutas a mi aplicación? ¿Hay una estructura de archivos determinada que debamos usar para que las rutas se resuelvan?

Básicamente, todos los desarrolladores que crean plugins complejos, ¿dónde están consultando la documentación para hacerlo? Soy un desarrollador experimentado y simplemente agregar una ruta pública a mi foro y renderizar una plantilla en esa ruta es complicado dada la información/guías disponibles actualmente sobre la creación de plugins.

Cualquier ayuda es apreciada. ¡Gracias! :heart:

1 me gusta

Michael, la respuesta es: mira el arte previo como documentación, ya que puede desactualizarse rápidamente y tiende a solo rozar la superficie. En contraste, los plugins populares a menudo se mantienen muy actualizados y cubren casos de uso más complejos.

Usar repositorios existentes para comprender enfoques es absolutamente lo que mis colegas y yo hemos aprendido a hacer en los últimos años.

Puedo recomendarte mirar los del equipo central de Discourse (official), los de Pavilion (pavilion) y mis repositorios como ejemplos de cómo hacer cosas (¡en ese orden! :sweat_smile: ).

A medida que la plataforma evoluciona con versiones más nuevas de dependencias y nuevas capacidades, los plugins oficiales que aprovechan las nuevas tecnologías añadidas a la plataforma, por ejemplo, pueden ser realmente útiles como puntos de partida.

Busca un plugin que funcionalmente haga algo similar a lo que quieres lograr y copia el enfoque.

Aquí tienes un ejemplo de un plugin que añade una ruta:

2 Me gusta