Ciao a tutti,
sto creando un tema per personalizzare diversi aspetti del Discourse predefinito. Con questo obiettivo, una delle cose che devo personalizzare è topic-list-item, che sembra essere abbastanza semplice: aggiungo un file al percorso javascripts/discourse/templates/components/topic-list-item.hbs nel mio tema e posso inserire il mio codice lì. Tuttavia, è qui che iniziano a sorgere le domande.
Esiste un metodo nel componente per quel template chiamato renderTopicListItem, che è quello che imposta una proprietà topicListItemContents, la quale viene renderizzata di default. Controllate:
La prima domanda è PERCHÉ? Perché dobbiamo farlo? Perché non semplicemente avere il codice Handlebars come al solito?
Per non interferire troppo con il codice principale, ho deciso di lasciare topic-list-item così com’è e sostituire topic-list-item.raw.hbs nel mio tema, e questo funziona senza problemi.
Tuttavia, mi aspettavo che aggiungendo un file come javascripts/discourse/templates/mobile/list/topic-list-item.raw.hbs nel mio tema, la visualizzazione mobile venisse sostituita, ma non è così.
Il metodo findRawTemplate continua a restituire il template mobile predefinito di Discourse, che contiene:
Anche effettuando modifiche manuali all’interno del mio progetto Discourse locale, non riesco a far aggiornare la versione mobile con le modifiche.
Spero che la spiegazione abbia senso e che qualcuno abbia conoscenze in merito; sembra davvero rotto al momento e forse vorremmo risolverlo SE è davvero rotto (posso farlo se capisco un po’ meglio cosa sta succedendo).
Nel frattempo continuerò a cercare una risposta da solo e aggiornerò con eventuali novità. Di seguito un piccolo gif di ciò che ho nel mio ambiente locale.
http://g.recordit.co/AtOJlltJ8o
AGGIORNAMENTO: Ho anche aggiornato raw in .hbr poiché un recente commit ha modificato i file, ma non riesco ancora a farlo funzionare.


