Ciao a tutti!
Sto sviluppando un plugin che tenta di caricare pagine che sono wikilink’d come riferimenti collegati.
Ho un’implementazione di base funzionante, ma non mi piace come appare attualmente il design e volevo vedere se ci sono API che mi mancano che aiuterebbero a rendere questo processo più agevole.
Ecco il mio approccio attuale: discourse-wikilinks/assets/javascripts/initializers/wikilinks-init.js at main · dvargas92495/discourse-wikilinks · GitHub
Tl;dr:
- utilizzare
api.reopenWidgetsul widgetpost-linksper sovrascrivere il metodohtml. - alla prima renderizzazione del widget, recuperare il titolo dell’argomento e quindi cercare gli argomenti che hanno [[titolo]] nel loro titolo.
- Dopo il recupero, pianificare una ri-renderizzazione con i dati della risposta, utilizzando un flag per assicurarci di non recuperare all’infinito alla renderizzazione successiva.
Questo approccio è subottimale perché:
- C’è un ritardo tra la renderizzazione iniziale e quando vengono renderizzati i dati rimanenti.
- Il flag che impedisce il recupero infinito sembra incline all’errore in futuro.
- Devo effettuare due chiamate API, una per recuperare il titolo dell’argomento (che dovrebbe essere disponibile più in alto nell’albero dei widget) e poi una per i link.
- Devo copiare e incollare il metodo del widget
htmloriginale nel codice del mio plugin, il che lo rende vulnerabile a essere forkato.
Qualche idea su come mitigare questi problemi? Idealmente vorrei modificare la chiamata originale loadTopicView per includere i wikilinks.
Inoltre, Discourse o qualcuno della community offre chiamate di consulenza? Mi piacerebbe pagare per una chiamata con un esperto per avere un’immersione approfondita su tutto ciò che c’è da sapere su come è architettato Discourse e quali plugin sono disponibili. Ho già esaminato la maggior parte della documentazione di sviluppo e ho navigato un po’ nel codebase.