¿Algo como shortcodes para Discourse?

Recientemente descubrí MDX, que permite incrustar componentes dinámicos en Markdown usando JSX.

Me pregunto qué tan difícil sería hacer algo similar en los mensajes de Discourse.

Quiero que los usuarios puedan iniciar juegos en el foro incrustando fragmentos similares a shortcodes en sus mensajes:

Aquí está el juego de hoy. Veamos quién consigue la mejor puntuación.

[game type="whatever" prop2="something" expires="midnight"]

La etiqueta se reemplazaría con un juego dinámico en JavaScript. Las puntuaciones se guardarían en la base de datos (o se enviarían a Firebase desde el backend).

¿Alguien sabe si existe algo así o si hay un plugin de código abierto que pueda ofrecer ideas sobre cómo implementarlo?

2 Me gusta

Existe un plugin de BBCode y el componente de tema Texto de marcador de posición para plantillas de temas que ofrecen un punto de partida, pero necesitarás comprender bastante sobre la Guía para principiantes para crear plugins de Discourse, parte 1: Crear un plugin básico.

3 Me gusta

¡Gracias! Encontré un plugin de calendario que parece tener algunos ejemplos de lo que busco (etiqueta de markdown personalizada y algunos controladores de backend). También encontré una guía de extensiones de markdown, pero aún no la he leído detenidamente.

Si puedo cargar un iframe en un modal y comunicar puntuaciones usando postMessage, eso podría permitir que los juegos se incrusten en páginas MDX del sitio también. Voy a experimentar con ello.

2 Me gusta