¿Plugin o componente de tema para modificación del editor de entradas?

Para ser honesto, no tengo idea de dónde publicar esto, así que siéntete libre de moverlo si esta no es la categoría correcta.

Últimamente he estado interesado en mejorar la experiencia de usuario en Discourse para agregar etiquetas ruby en el editor de publicaciones. Para quienes no lo sepan, esta etiqueta se puede usar al escribir texto en japonés para indicar la “lectura” junto con el texto, como cambiar 日本語 a ほん. Sin embargo, muchas personas, incluso en nuestra comunidad de aprendizaje de japonés, no saben que esto existe o no se molestan en usarlo porque puede ser tedioso escribirlo para frases o oraciones largas. (Ese ejemplo de una sola palabra fue generado desde <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>.)

Por esa razón, quiero agregar una opción en el menú del editor de publicaciones que funcione de manera muy similar a la opción de hipervínculo. Seguiría teniendo dos campos de entrada, pero se usarían para separar el texto principal y la lectura en lugar del nombre del enlace y la URL. No interactuaría con el servidor en absoluto, ya que simplemente insertaría HTML estándar (compatible con Discourse) en el editor. Es probable que quiera hacer un poco de análisis de texto para permitir que los usuarios escriban cadenas largas de texto y agreguen las etiquetas ruby de una sola vez, en lugar de tener que hacerlo carácter por carácter.

Entonces, la pregunta es: ¿esto se haría mejor como un componente de tema, un plugin o algo completamente diferente? Además, ¿habría alguna manera de hacerlo sin tener que preocuparme de que el componente/plugin/lo que sea se rompa cuando el núcleo de Discourse cambie algo en el editor? Estoy bastante seguro de que la instalación de Discourse a la que quiero agregar esto está alojada por Discourse, por lo que tendría que ser compatible con ese tipo de instalación. Todavía tengo que consultar con los administradores de ese sitio, pero no creo que tenga problemas para que lo instalen una vez que esté listo (y, por supuesto, consultaré con ellos primero después de recibir consejos aquí).

¡Cualquier ayuda y consejo será muy apreciado!

¡El componente de tema es la mejor opción aquí! No es necesario modificar el núcleo y ya tenemos los ganchos para agregarlo.

Echa un vistazo a Composer Help Button (que actualmente es un plugin, pero podría convertirse fácilmente en un componente de tema).

Gracias, lo revisaré. Solo para asegurarme, ¿se pueden agregar componentes de tema incluso en un sitio alojado? Solo quiero confirmar que los administradores del sitio que uso realmente puedan instalar esto antes de invertir tiempo en ello.

Sí, los administradores pueden instalar componentes de tema en un sitio alojado. La documentación general sobre temas se encuentra aquí.

Aquí tienes un ejemplo de un componente de tema que agrega un botón de barra de herramientas al editor:

https://github.com/discourse/DiscoTOC/blob/master/common/header.html#L373-L393