Perché trovo Discourse così difficile da personalizzare?

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 :smirking_face:

5 Mi Piace

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.

1 Mi Piace

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.

Cosa puoi fare:

  • Richiedere funzionalità (nell’argomento appropriato, come hai fatto)
  • Pubblicare nella sezione Marketplace se puoi
  • Imparare a programmare e come funzionano i componenti del tema (vedi #documentation:theme-developers) e non esitare a chiedere aiuto a Dev!
3 Mi Piace

C’è della documentazione per i programmatori da leggere?

Ecco alcune risorse che potresti trovare interessanti per familiarizzare con Discourse:

Prenditi il tuo tempo per leggere! Alcune guide contengono anche link a guide esterne.

Se hai domande, chiedi a Dev :+1: .

5 Mi Piace

Se vuoi aggiungere modifiche in cima al componente tema Discourse Topic Cards, puoi farlo:

  1. Installa Discourse Topic Cards e aggiungilo al tuo tema attivo
  2. Crea un nuovo componente tema
  3. 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.