La migliore strategia per trovare il template giusto da modificare?

Sono ancora nuovo su Discourse, ma sto imparando di più su come programmare sopra di esso per personalizzare le cose. Sto cercando di capire il modo migliore per inserire codice in punti specifici di una pagina (più mirato rispetto a un’area generica). Sembra che dovrò sovrascrivere il template che controlla quel punto.

Interpretando questo come il fatto che, sia che lo faccia nell’area <head> della mia dashboard di personalizzazione, sia in un repository GitHub separato che userò come tema, dovrò:

  1. Trovare il template giusto da modificare
  2. Ristampare l’intero template ovunque stia facendo la mia codifica (dashboard, repo, ecc.), e
  3. Apportare le modifiche desiderate al template

Il passaggio 1 si sta rivelando un ostacolo. Come faccio a trovare il template giusto da modificare?

Ecco cosa ho capito: i template di Discourse si trovano qui, e sembra che i “veri” template che vorrò modificare siano generalmente nel file dei componenti qui.

Come esempio, supponiamo che voglia aggiungere una riga a ogni elenco di gruppi nella pagina degli indici dei gruppi (l’equivalente di questa pagina). Dove si trova il template per quello? La mia migliore ipotesi è che sia il template group card, ma non ne sono sicuro, specialmente perché sono completamente nuovo a Ember.

Esiste un modo più sicuro per identificare il template giusto?

Hai provato l’estensione del browser Ember?

Mostra template e componenti:

Sembra ottimo. Ti riferisci a Ember Inspector?

Ho capito. Usandolo, c’è una cosa che non mi è chiara (probabilmente è perché sono nuovo a Ember):

Se guardi la pagina dei gruppi di Discourse https://meta.discourse.org/g, ogni voce del gruppo ha un nome e un conteggio degli utenti.

Usando l’ispettore Ember, vedo che il nome proviene dal template groups-info, ma da dove arriva il group-user-count? (non sembra avere una voce nell’ispettore Ember)

Grazie. Vedo che group-user-count appare alla riga 55.

Significa che, se volessi, ad esempio, aggiungere una riga subito prima della riga group-user-count, dovrei copiare l’intero file index.hbs di 100 righe nel mio codice e inserirlo in questo modo:
<script type="text/x-handlebars" data-template-name="groups/index">
[100 righe qui]
</script>

  • Di solito, verifichi se esiste un’interfaccia di plugin adatta e la utilizzi.
  • Puoi provare a selezionare gli elementi con jQuery, ma questo non funzionerà se stai cercando di modificare un elemento iterativo.

Se non puoi fare nessuna di queste due cose:

  • chiedi al team di Discourse di aggiungere un’interfaccia di plugin fornendo una motivazione
  • sostituisci l’intero template con il tuo, come suggerisci.

Vuoi dire modificare il codice nelle uscite plugin circostanti? (come components/group-info)

EDIT: Scusa, ho confuso i template con le uscite plugin. Ho capito che le uscite plugin sono righe nel codice di Discourse (come {{plugin-outlet name="topic-above-post-stream" args=(hash model=model)}) inserite dal team di Discourse come punti di ancoraggio che puoi utilizzare per modificare il codice.

MODIFICA: Ho spostato questo follow-up qui perché riguarda un problema leggermente diverso.