Se voglio modificare il CSS devo creare un componente, creare un file CSS e poi funziona. Ora, se aggiungo un altro componente, ad esempio ‘Discourse Topic Cards’, e poi torno al file CSS personalizzato, applico le modifiche, clicco su Salva e poi aggiorno la pagina, il CSS personalizzato non viene applicato.
Inoltre, perché non c’è un modo per modificare i template nell’area di amministrazione? Se voglio modificare i template di ‘Discourse Topic Cards’ devo accedere via SSH al docker di discourse e modificare lì per apportare delle modifiche?
WordPress ti è più familiare? Se sì, capirai più facilmente: non modifichi mai direttamente il core, i plugin o i temi perché perderai tutte le modifiche al prossimo aggiornamento.
Quindi molte di queste difficoltà non provengono da Discourse, ma da come funziona il mondo
Potrebbe essere necessario aggiungere !important al tuo CSS in modo che queste regole abbiano la precedenza su altre definite altrove. Questa situazione è prevista quando diversi componenti vengono caricati in un ordine specifico. Questo è un problema comune e non necessariamente specifico di Discourse. Non so se potremmo avere un sistema di pesatura per dire " quel componente dovrebbe caricarsi alla fine", ma sembra davvero ingestibile.
Ecco perché è importante che temi e componenti del tema non utilizzino !important nel CSS, a meno che non sia assolutamente necessario.
Se desideri modificare un componente del tema remoto, sentiti libero di forkarlo su GitHub e creare la tua versione. È il modo più semplice! Tuttavia, non riceverai aggiornamenti dalla versione originale. Non puoi modificare componenti remoti perché la tua personalizzazione potrebbe scontrarsi con gli aggiornamenti (ed è un incubo da gestire).
La personalizzazione di Discourse è abbastanza accessibile. Dipende però da cosa ti aspetti in termini di personalizzazione. Cosa stai cercando di ottenere qui? Forse possiamo aiutarti. Il team di Discourse è solitamente aperto se qualche area accoglie strutture di personalizzazione.
Gestisco siti web online da diversi anni, penso che se riesci a creare qualcosa di un po’ più unico che tende a fare meglio. Vorrei personalizzare il modello ‘Discourse Cards Topic’ e includere poster, risposte, visualizzazioni e statistiche di attività dall’elenco generico degli argomenti.
Se vuoi aggiungere modifiche in cima al componente tema Discourse Topic Cards, puoi farlo:
Installa Discourse Topic Cards e aggiungilo al tuo tema attivo
Crea un nuovo componente tema
Aggiungi anche il nuovo componente tema al tema attivo
Non devi accedere via ssh al server o cambiare nulla nel codice sorgente, né fare un fork del repository.
Come esempio, ecco cosa ho fatto per apportare alcune modifiche a Discourse Topic Cards per il tema Minima:
In questo modo, ricevi ancora nuovi aggiornamenti dal tema, e tutti i componenti tema sono organizzati e separati (quindi puoi facilmente disabilitarli/abilitarli per il debug).
Ma sì, penso che questo processo possa essere spiegato un po’ meglio agli amministratori.