Sviluppo di plugin senza riferimento

Da una settimana cerco di impostare una rotta personalizzata sul mio forum utilizzando un plugin. La rotta dovrebbe essere accessibile pubblicamente da chiunque. Voglio che il plugin visualizzi semplicemente HTML da un template handlebar all’indirizzo specificato. Non riesco a far renderizzare il template.

Ho cercato come sviluppare plugin per Discourse e non ho trovato alcuna documentazione sostanziale. Ogni volta che qualcuno pone una domanda sullo sviluppo di plugin, la risposta è un link a una “guida” sullo sviluppo di un plugin di amministrazione che mostra un tentacolo viola. Ogni volta che c’è una domanda su un template che non viene visualizzato, veniamo semplicemente indirizzati alla documentazione di Ember sui router.

Quella guida va bene, ma c’è della magia che accade in background che non viene spiegata in modo che possiamo prendere le informazioni e portarle avanti. Cosa succede se vogliamo visualizzare una rotta pubblica? Come viene utilizzato il file plugin.rb da Discourse? Quale altro codice/istruzione specifico di Discourse posso usare nel file plugin.rb come “add_admin_route” per aggiungere rotte alla mia applicazione? C’è una certa struttura di file che dobbiamo usare in modo che le rotte vengano risolte?

In sostanza, tutti gli sviluppatori che creano plugin complessi, dove stanno guardando la documentazione per farlo? Sono uno sviluppatore esperto e semplicemente aggiungere una rotta pubblica al mio forum e renderizzare un template a quella rotta è complicato date le attuali guide/informazioni disponibili sulla creazione di plugin.

Qualsiasi aiuto è apprezzato. Grazie! :heart:

1 Mi Piace

Michael la risposta è: guarda la “prior art” (letteralmente “arte precedente”, ovvero la documentazione preesistente) poiché la documentazione può diventare rapidamente obsoleta e tende a trattare solo superficialmente gli argomenti. Al contrario, i plugin popolari sono spesso mantenuti molto aggiornati e coprono casi d’uso più complessi.

Utilizzare repository esistenti per comprendere gli approcci è assolutamente ciò che io e i miei colleghi abbiamo imparato a fare negli ultimi anni.

Posso raccomandare di guardare quelli del team core di Discourse (official), quelli di Pavilion (pavilion) e i miei repository per esempi su come fare le cose (in quest’ordine! :sweat_smile: ).

Man mano che la piattaforma si evolve con nuove versioni di dipendenze e nuove capacità, i plugin ufficiali che sfruttano le nuove tecnologie aggiunte alla piattaforma, ad esempio, possono essere davvero utili come punti di partenza.

Cerca un plugin che funzionalmente faccia qualcosa di simile a ciò che vuoi ottenere e copia l’approccio.

Ecco un esempio di un plugin che aggiunge una route:

2 Mi Piace