Intentando reemplazar / auto-formatear strings en publicaciones de usuarios

Hola, soy nuevo en Discourse y tengo mi sitio en funcionamiento y estoy tratando de resolver una funcionalidad crítica que necesito para una gran parte de la comunidad.

Los usuarios tienen software que puede exportar cadenas mágicas que representan el estado de un juego y quiero representar ese estado de forma agradable como una tabla que se genera a partir de la cadena (en el momento de cargar la página).

Idealmente, les doy a los usuarios una plantilla al publicar o ponen su cadena mágica dentro de una clase con nombre o algo así y la cadena simplemente se renderiza (¿se decora?) en el momento de cargar la página.

¿Puedo hacer esto? Actualmente estoy pensando que debería escribir un script que analice las cadenas para todos los elementos/clases de ese tipo, pero tengo dificultades sobre cómo y cuándo hacer que el script modifique la publicación mostrada (¿cocinada?).

Gracias,
Brett

1 me gusta

Claro, debería ser posible. Tienes una API para decorar la publicación cocinada.
Por ejemplo: decorateCookedElement

¿Puedes compartir un ejemplo visual de lo que intentas lograr?

1 me gusta

Tal vez puedas crear tu propio estilo

1 me gusta

¡De acuerdo! Parece que decorateCookedElement es lo que necesitaba (según la nota de @Arkshine).

También encontré esta publicación que tiene buenos ejemplos para filtrar elementos de interés:
¿Cómo ejecutamos scripts después de que el HTML del tema se renderiza en el DOM? - dev - Discourse Meta

En particular, encontré esto muy útil:

$.fn.doSomething = function() {
  const targetElement = $(this).children("[data-theme-test]").length;
  if (!targetElement) return;

  // haz tu trabajo
  
  return this;
};

api.decorateCooked($elem => $elem.doSomething(), { onlyStream: true });

¡Gracias!

2 Me gusta

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