Al observar el plugin de BBCode de vBulletin como referencia, parece que no será demasiado difícil simplemente agregar soporte para lo que ya hacemos. Tenemos todo tipo de BBCode personalizado, como se ve en las guías, desde cosas simples hasta un BBCode de div personalizado que permite a las personas usar HTML en cierta medida de manera segura, generando un selector de ID personalizado para la publicación y evitando que los usuarios apunten a nada fuera del contenedor de la publicación.
Esto ha permitido a las personas crear algunos posts realmente fantásticos a lo largo de los años; aquí hay un ejemplo rápido que encontré simplemente echando un vistazo:
Supongo que mi pregunta es: ¿deberíamos convertir esto en un plugin de BBCode, o intentar crear un método seguro donde podamos mantener los selectores HTML contenidos en las publicaciones, como hacemos con nuestro BBCode, e investigar ese método para ofrecerlo en su lugar?
Aunque me estremezco ante la idea de permitir que las personas usen HTML.
Queremos mantener la capacidad de los usuarios para seguir dando formato a sus publicaciones, al mismo tiempo que aseguramos que todo permanezca seguro.
Además, muchas funciones ya están integradas en Discourse, como resaltado de código, subíndices/superíndices, bloques centrados, tablas, citas en bloque, spoilers en línea, separadores, encabezados, incrustación de medios, etc.
¡Oh no! Eso suena terrible. Estamos usando Cloudflare y un servidor AMD Ryzen bastante potente. A mí me toma unos 2 segundos cargar todos los recursos cuando no estoy logueado.
Definitivamente estamos viendo esto. ¿Entonces, en esencia, podemos agregar cualquier HTML/CSS en un componente de tema y luego llamarlo usando una etiqueta bbcode personalizada? [blah]contenido[/blah]?
Así que, en este caso, podríamos recrear parte de nuestro contenido con:
[wrap=bg bg=blue] o [wrap=random-name newspaper=1]
Quizás aún sea lo mejor usar un formato similar al del Plugin, para que una gran cantidad de contenido no pierda su formato. También necesitamos argumentos opcionales múltiples.
Podrías echar un vistazo a Discourse BBCode. Creo que debería ser relativamente fácil añadir soporte para otros códigos (aunque, para ser honesto, tuve dificultades para averiguar cómo hacerlo…)
¿No podrías haber puesto toda esa guía en un solo mensaje y convertirla en un wiki cuando te diera la gana añadir más? Tenerla dividida en varios mensajes la hace mucho más difícil de leer y comprender, en mi opinión, y genera mucho espacio desperdiciado.
También tenga en cuenta que Discourse, de forma predeterminada, admite cierto HTML restringido en cualquier lugar del contenido de la publicación, no solo dentro de un contenedor especial. Por ejemplo, esta publicación está envuelta dentro de un <div align=justify>. Lamentablemente, esto interfiere con algunos de los formatos en línea, obligando a usar HTML para todo en el párrafo.
Esa guía de bbcode está en un software de foro diferente, uno que no tiene mensajes wiki.
Genial. Aunque creo que preferiríamos mantenerlo como bbcode que añadimos mediante la extensión de ese único plugin, en lugar de buscar una forma de dar a todos más HTML que tengamos que hacer seguro.
Encontramos que el plugin oficial de Discourse BBCode era más difícil de modificar (debido a nuestras bajas habilidades como desarrolladores de plugins de Discourse) que este:
El “Plugin Awesome BBCodes” fue bastante fácil de bifurcar, clonar y modificar; mucho más fácil que el plugin “Discourse BBCode”.
Mi sugerencia para cualquiera ( @TheDarkWizard ) que busque crear BBCODE personalizado es empezar con el “Plugin Awesome BBCodes” y modificarlo desde ahí.