Hola a todos,
Esta semana comenzamos nuestro primer sprint para personalizar nuestro tema de Discourse. Sabíamos que íbamos a modificar una cantidad considerable de archivos, ya que los diseños son bastante diferentes a los temas estándar de Discourse.
Nuestro enfoque es muy sencillo: intentar lograr lo necesario únicamente con SASS y, cuando sea necesario, sobrescribir los archivos .hbs/.hbr correspondientes. Sabemos que esto último introduce cierto riesgo de mantenimiento adicional (si los atributos que se pasan a la vista se renombran o eliminan, nuestras plantillas dejarán de funcionar). Evaluamos el riesgo de que esto ocurra frente a la necesidad de mantener nuestra propia infraestructura y concluimos que el alojamiento en discourse.org aporta más valor a nuestro cliente sin fines de lucro. Vamos a agregar código de monitoreo al sitio y tendremos un plan de respuesta listo para cuando esto suceda; además, si llega a ocurrir, creemos que probablemente será una solución sencilla.
Ahora, vamos al grano. Necesitamos averiguar cómo convertir la vista de la lista de temas en una experiencia tipo feed. Es decir, bajo cada tema, las publicaciones de respuesta se renderizan como comentarios.
Aquí hay una imagen de lo que necesitamos construir (actualmente muestra solo 1 comentario por tema; en ocasiones necesitaremos mostrar más):
En qué punto estamos
Así que @iainbamboo se puso a investigar para determinar:
- ¿Los datos de las publicaciones ya están disponibles en la lista de temas y solo necesitamos cambiar la plantilla? → No, no lo están.
- ¿Cómo agregamos los datos de las publicaciones de cada tema a la lista para poder renderizarlos en la plantilla?
- ¿Es este incluso el enfoque correcto?
- ¿Deberíamos modificar el código Ruby para agregarlo al modelo que se envía (posiblemente como un plugin) siguiendo líneas como Discourse Timeline? Si creamos un plugin, ¿podemos usarlo en discourse.org?
- ¿Podemos obtener los datos desde Ember y asumir el impacto de cargas más lentas debido a múltiples solicitudes AJAX al servidor para obtener las publicaciones de cada tema (lo que corre el riesgo de alcanzar los límites de tasa)?
- ¿Se puede hacer esto sin modificar el código Ruby?
Después de investigar bastante, leer las guías de desarrollo de Discourse y revisar el código fuente, concluimos que necesitábamos asesoramiento experto sobre la mejor manera de abordar esto.
Y ahora estamos aquí ![]()
