Plugin o componente del tema per la modifica dell'editor dei post?

Onestamente, non ho idea di dove pubblicare questo messaggio, quindi sentiti libero di spostarlo se questa non è la categoria corretta.

Recentemente mi sono interessato a migliorare l’esperienza utente in Discourse per l’aggiunta di tag ruby al testo nell’editor dei post. Per chi non lo sapesse, questo tag può essere utilizzato quando si scrive testo in giapponese per indicare la “lettura” insieme al testo, ad esempio trasformando 日本語 in ほん. Tuttavia, molte persone, persino nella nostra comunità di apprendimento del giapponese, non sanno che esiste o non si prendono la briga di usarlo perché può essere laborioso scriverlo per frasi o periodi lunghi. (L’esempio di una sola parola è stato generato da <ruby>日<rt>に</rt>本<rt>ほん</rt>語<rt>ご</rt></ruby>.)

Per questo motivo, vorrei aggiungere un’opzione nel menu dell’editor dei post che funzioni in modo molto simile all’opzione per i collegamenti ipertestuali. Avrebbe comunque due campi di input, ma sarebbero utilizzati per separare il testo principale e la lettura invece del nome del collegamento e dell’URL. Non interagirebbe affatto con il server, poiché si limiterebbe a inserire HTML puro (supportato da Discourse) nell’editor. È probabile che vorrei fare un po’ di analisi del testo per consentire agli utenti di scrivere lunghe stringhe di testo e aggiungere i tag ruby tutti in una volta, invece di doverlo fare carattere per carattere.

Quindi, la domanda è: sarebbe meglio realizzare questo come componente di un tema, come plugin o con qualcos’altro? Inoltre, esisterebbe un modo per farlo senza doversi preoccupare che il componente/plugin/cosa sia si rompa quando Discourse modifica qualcosa nell’editor? Sono quasi certo che l’installazione di Discourse a cui vorrei aggiungere questa funzionalità sia ospitata da Discourse stessa, quindi dovrebbe essere compatibile con quel tipo di installazione. Devo ancora verificare con gli amministratori di quel sito, ma non credo di avere problemi a convincerli a installarlo una volta pronto (e ovviamente verificherò con loro prima, dopo aver ricevuto consigli qui).

Qualsiasi aiuto e consiglio sarà apprezzato!

La soluzione migliore qui è utilizzare un componente del tema! Non è necessario modificare il core e abbiamo già gli hook per aggiungere questa funzionalità.

Dai un’occhiata a Composer Help Button (che attualmente è un plugin, ma potrebbe essere facilmente convertito in un componente del tema).

Grazie, ci darò un’occhiata. Per essere sicuro, i componenti del tema possono essere aggiunti anche da un sito ospitato? Voglio solo assicurarmi che gli amministratori del sito che uso possano effettivamente installarlo prima di dedicarci del tempo.

Sì, i componenti del tema possono essere installati dagli amministratori su un sito ospitato. La documentazione generica sui temi è disponibile qui.

Ecco un esempio di un componente del tema che aggiunge un pulsante nella barra degli strumenti all’editor:

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