Piattaforma Personalizzata

Ciao Community di Discourse!

Sto pianificando di costruire una piattaforma basata su un’istanza Discourse self-hosted che includerà varie funzionalità personalizzate come un motore di ricerca, risorse documentali, wiki e altro ancora. Queste funzionalità sono sviluppate utilizzando HTML, CSS e JavaScript, principalmente come pagine statiche.

Il mio obiettivo è integrare queste pagine personalizzate direttamente nel forum Discourse in modo che appaiano come pagine native anziché come post, creando un’esperienza utente fluida in cui sembrino parte integrante del forum. Vorrei che queste pagine statiche fossero accessibili agli utenti del forum, con tutte le funzionalità JavaScript in esecuzione come previsto.

Qualcuno potrebbe consigliarmi se questo approccio è possibile all’interno di Discourse, o se ci sono plugin specifici, best practice o configurazioni che dovrei esaminare? Qualsiasi consiglio su come incorporare e visualizzare pagine HTML/JS personalizzate senza farle sembrare post sarebbe molto apprezzato!

Grazie in anticipo per qualsiasi suggerimento!

Non lo so (puoi incorporare però) ma per pura curiosità: cosa intendi per pagina statica di un’app dinamica?

Tutte le funzionalità che ho intenzione di implementare, come quelle menzionate sopra, sono codici statici, il che significa che sono tutte costruite tramite HTML, CSS e JS vanilla. Mi chiedo se sia possibile creare una pagina statica e aggiungere i codici personalizzati per le funzionalità menzionate sulla mia istanza Discourse.

Mi dispiace continuare, ma Discourse non è statico. È dinamico. Lo sono anche la maggior parte delle soluzioni JavaScript o basate su PHP.

Quindi, si tratta ora di una questione di termini? E vuoi semplicemente incorporare il forum Discourse di per sé in una pagina web tra ogni altra cosa? Puoi mostrare argomenti, ma perderai quasi tutte le altre funzionalità di Discourse, per quanto ne so.

2 Mi Piace

@JstTan Potresti voler dare un’occhiata a:

2 Mi Piace

No, il codice che intendo implementare, come la pagina che voglio aggiungere al mio forum Discourse, è una pagina statica, quindi non ci sarebbe alcun rendering lato server e così via.

No, voglio aggiungere la pagina web, alla mia istanza del forum Discourse. Al contrario di quello che stai dicendo in realtà.

Questo è piuttosto interessante, ma in realtà stavo pensando a un’altra cosa, come aggiungere e creare una pagina statica all’interno di Discourse. La pagina avrebbe anche bisogno di aggiungere HTML, CSS e JavaScript personalizzati.

Una domanda simile è stata posta di recente.
Ecco una risposta fornita:

Beh, ho notato che la mia domanda potrebbe essere molto confusa, quindi ho modificato la domanda con il messaggio rigenerato con ChatGPT. Questa è la domanda modificata:

Ciao Community di Discourse!

Sto pianificando di costruire una piattaforma sopra un’istanza Discourse self-hosted che includerà varie funzionalità personalizzate come un motore di ricerca, risorse documentali, wiki e altro ancora. Queste funzionalità sono sviluppate utilizzando HTML, CSS e JavaScript, principalmente come pagine statiche.

Il mio obiettivo è integrare queste pagine personalizzate direttamente nel forum Discourse in modo che appaiano come pagine native anziché post, creando un’esperienza utente senza interruzioni in cui si sentano parte integrante del forum. Vorrei che queste pagine statiche fossero accessibili agli utenti del forum, con tutte le funzionalità JavaScript che funzionano come previsto.

Qualcuno potrebbe consigliare se questo approccio è possibile all’interno di Discourse, o se ci sono plugin specifici, best practice o configurazioni che dovrei esaminare? Qualsiasi guida sull’incorporamento e la visualizzazione di pagine HTML/JS personalizzate senza farle sembrare post sarebbe molto apprezzata!

Grazie in anticipo per qualsiasi suggerimento!

La pagina pubblicata sarebbe adatta al mio scopo?

Tutte queste sembrano cose che Discourse ha già.

Il modo più semplice per farlo è ospitarle altrove e aggiungere link ad esse con un componente tematico e far sì che quel sito abbia lo stesso aspetto del tuo sito Discourse. Le persone non notano gli URL, quindi se mantieni la navigazione sugli altri siti in modo che le persone possano tornare a Discourse, allora Funziona e non è necessario nulla di speciale.

Non sono sicuro di cosa significhi, ma se vuoi davvero aggiungere le tue funzionalità personalizzate a Discourse, dovrai crearle come plugin o componenti tematici.

Non è chiaro qual è il tuo obiettivo.

2 Mi Piace

JavaScript da dove?

1 Mi Piace

è esattamente quello che fa se si utilizza l’estensione Home Pages del plugin Landing Pages.

Vedi:

3 Mi Piace

Ciao,

Mi scuso per la risposta tardiva. Le funzionalità che ho elencato sono alcuni esempi di funzionalità che voglio implementare, ce ne sono circa 20. Sono tutte scritte con JS vanilla, HTML e CSS, senza bisogno di rendering lato server.

Preferirei integrarle direttamente in Discourse, ad esempio creando una pagina all’interno di Discourse, modificando la pagina per aggiungere tutti i codici personalizzati e distribuendola insieme a Discourse. Sarebbe più facile da mantenere per me, poiché tutto è in un unico posto, mentre i miei utenti potrebbero accedere ai contenuti direttamente dal forum di Discourse senza doverlo abbandonare. È possibile farlo tramite Discourse? Se possibile, come?

Voglio aggiungere funzionalità personalizzate al forum Discourse che ospiterò. Le funzionalità personalizzate sono costruite direttamente tramite HTML, CSS e JS vanilla. Mi chiedo se sia possibile farlo direttamente, senza bisogno di creare plugin.

Voglio implementare le funzionalità codice (JavaScript, HTML, CSS) direttamente nel codice sorgente di una singola pagina, con ciascuna funzionalità che ha la propria pagina.

Penso che il plugin Landing Pages collegato sopra sia il metodo più vicino a ciò che penso tu stia descrivendo che è già integrato in Discourse.

1 Mi Piace

Un altro approccio che uso per quello che (credo?) stai descrivendo qui è usare un Ghost Blog/CMS per creare e ospitare pagine o post individuali dove voglio visualizzare pagine personalizzate. Ghost è particolarmente adatto a questo scopo grazie alla sua flessibilità nell’includere e inserire tutti e tre i tipi di codice (JS, CSS e HTML) su base per pagina, e/o su base specifica per sezione/tag e/o su base a livello di sito tramite “iniezioni di codice nell’intestazione”, “iniezioni di codice nel piè di pagina” e inclusioni di codice/script inline direttamente nell’editor di pagine/post.

Quindi hai molteplici opzioni in Discourse su come vuoi incorporare o altrimenti includere senza interruzioni quelle pagine esterne nei tuoi siti Discourse. Puoi quindi utilizzare RSS, commenti incorporati, Iframes, pagine collegate o altri metodi.

Trovo che questa combinazione/accoppiamento di Discourse e Ghost possa fornire una piattaforma ideale per questo particolare caso d’uso in cui è necessaria la flessibilità della codifica “al volo” e delle iniezioni JavaScript arbitrarie.

Una volta compresi (sia) i punti di forza e i limiti naturali molto opposti e molto complementari di ciascuna di queste piattaforme (Ghost e Discourse) e come possono essere combinate e integrate, non ho trovato una soluzione migliore.

In questo modo puoi ottenere le funzionalità di organizzazione dei contenuti e della piattaforma comunitaria incredibilmente robuste di Discourse, insieme alla semplicità dell’approccio “al volo” di Ghost per la modifica del codice inline e la flessibilità di includere JS, CSS e HTML (e persino Markdown) su pagine individuali.

Un vero bonus è che entrambe le piattaforme, essendo entrambe open source e basate su GitHub, hanno comunità simili, robuste, attive, amichevoli e di supporto in cui puoi partecipare, ottenere supporto e imparare rapidamente e senza fine.

1 Mi Piace