Documentazione su come estendere Discourse con plugin, temi e componenti di tema, come lavorare con il codice principale e come utilizzare l’API di Discourse.
Introduzione
- Introduzione: Introduzione allo sviluppo di Discourse
Ambienti di sviluppo
- Dev Container: Sviluppare Discourse utilizzando un Dev Container
- GitHub Codespaces: Sviluppare Discourse su GitHub Codespaces
- Configurazione Docker: Installare Discourse per lo sviluppo utilizzando Docker
- Configurazione macOS: Installare Discourse su macOS per lo sviluppo
- Configurazione Ubuntu/Debian: Installare Discourse su Ubuntu o Debian per lo sviluppo
- Configurazione Windows: Installare Discourse su Windows per lo sviluppo
- Plugin non-Docker: Installare i plugin nel tuo ambiente di sviluppo non-Docker
- Configurazione locale: Configurare un ambiente di sviluppo locale per Discourse?
- Configurazione multisite: Configurare un ambiente di sviluppo multisite
- Configurazione Fedora: Configurare Discourse per lo sviluppo su Fedora Linux
Codice e dettagli interni
- Componenti Ember: Aggiungere componenti Ember a Discourse
- Linting e formattazione: Lint e formattazione automatica del codice prima dei commit
- Test di accettazione: Scrivere test di accettazione e test dei componenti per il codice Ember in Discourse
- Esecuzione delle suite di test: Come eseguire le suite di test QUnit di Discourse core, plugin e temi
- Compatibilità delle versioni: Fissare le versioni di plugin e temi per installazioni più vecchie di Discourse (rami d-compat)
- Proprietà degli oggetti Ember: Proprietà degli oggetti Ember (getOwner, iniezioni di servizi, ecc.)
- Prestazioni JS: Utilizzo di ‘tachometer’ di Google per misurare le variazioni delle prestazioni JS in Discourse
- CI con GitHub Actions: Configurazione dell’integrazione continua utilizzando GitHub Actions
- Estensioni Markdown: Guida per sviluppatori alle estensioni Markdown
- Conversione delle finestre modali: Conversione delle finestre modali dai controller legacy alla nuova API del componente DModal
- API DModal: Utilizzo dell’API DModal per rendere le finestre modali (alias popup/dialoghi) in Discourse
- API JS: Utilizzo dell’API JS
- Connettori di uscita plugin: Utilizzo dei connettori di uscita plugin da un tema o da un plugin
- modifyClass: Utilizzo di modifyClass per modificare il comportamento principale
- Creazione di route: Creazione di route in Discourse e visualizzazione dei dati
- Metodo di autenticazione: Aggiunta di un nuovo metodo di autenticazione ‘gestito’ a Discourse
- Serializzazione accidentale dei modelli ActiveRecord: Prevenire la serializzazione accidentale dei modelli ActiveRecord
- Sovrascrittura dei template: (non consigliato) Sovrascrivere i template di Discourse da un tema o da un plugin
- Oggetti di servizio: Utilizzo degli oggetti di servizio in Discourse
- Specifiche di sistema: Scrivere specifiche di sistema end-to-end per l’interfaccia utente di Discourse
- FormKit: Toolkit di Discourse per il rendering dei moduli.
- Trigger AppEvents: Riferimento ai trigger AppEvents
- Trasformatori: Utilizzo dei trasformatori per personalizzare valori e comportamento lato client
- Personalizzazione dell’elenco dei topic: Personalizzazione dell’elenco dei topic
- Linee guida CSS: Linee guida per le classi CSS utilizzando BEM
- Suggerimenti di tipo e validazione JS: Suggerimenti di tipo e validazione JavaScript (typescript)
- Progettazione per dispositivi: Progettazione per diversi dispositivi (Touch e Hover)
- Progettazione per larghezze responsive: Progettazione per larghezze responsive (Breakpoint, Viewport e Contenitori)
- Primitive di gesti: Primitive di trascinamento, ridimensionamento e gesti
Plugin
- Plugin di base: Sviluppo di plugin Discourse - Parte 1 - Creare un plugin di base
- Uscita plugin: Sviluppo di plugin Discourse - Parte 2 - Connessione a un’uscita plugin
- Impostazioni del sito: Sviluppo di plugin Discourse - Parte 3 - Aggiunta di impostazioni del sito personalizzate
- Configurazione Git: Sviluppo di plugin Discourse - Parte 4 - Configurazione di git
- Interfaccia di amministrazione: Sviluppo di plugin Discourse - Parte 5 - Aggiunta di un’interfaccia di amministrazione
- Test di accettazione: Sviluppo di plugin Discourse - Parte 6 - Aggiunta di test di accettazione
- Pubblicazione del plugin: Sviluppo di plugin Discourse - Parte 7 - Pubblicazione del tuo plugin
- Nuove lingue: Aggiungere una nuova lingua da un plugin
- Integrazione chat: Aggiungere un nuovo provider a discourse-chat-integration
- Estensione markdown-it: Ripacchettamento di un’estensione markdown-it come plugin Discourse
- Autoloading Rails: Strutturare un plugin per l’autoloading di Rails
Temi e componenti
- Sviluppo di temi: Sviluppo di temi e componenti di tema Discourse
- Riferimento rapido: Guida rapida di riferimento per sviluppatori di temi
- Guida per designer: Guida per designer per iniziare con i temi in Discourse
- Theme Creator: Iniziare con Theme Creator e la CLI dei temi
- CLI dei temi: Installare l’app console CLI dei temi Discourse per aiutarti a creare temi
- Struttura dei temi: Struttura dei temi e dei componenti di tema
- Più file JS: Dividere il JavaScript del tema in più file
- Più file SCSS: Dividere l’SCSS del tema in più file
- Impostazioni del tema: Aggiungere impostazioni al tuo tema Discourse
- Oggetti per le impostazioni del tema: Tipo di oggetto per l’impostazione del tema
- Migrazione delle impostazioni: Migrare le impostazioni del tema Discourse
- Metadati del tema: Aggiunta di metadati e screenshot a un tema
- Variabili principali: Utilizzo delle variabili principali di Discourse nel tuo tema
- Stringhe localizzabili: Aggiunta di stringhe localizzabili a temi e componenti di tema
- Test E2E: Test di sistema end-to-end per temi e componenti di tema
- Minimizzazione della manutenzione: Minimizzazione della manutenzione delle personalizzazioni del tema
- Dimensioni dei caratteri: Modificare le dimensioni dei caratteri nei tuoi temi
- Inclusione di risorse: Includere risorse (ad es. immagini, font) in temi e componenti
- Icone personalizzate: Sostituire le icone SVG predefinite di Discourse con icone personalizzate in un tema
- Modalità scura: Aggiornare temi e plugin per supportare la modalità scura automatica
- Modificatori del tema: Modificatori del tema: una breve introduzione
- Pseudo-elementi: Inserire testo o immagini ovunque sul tuo sito utilizzando pseudo-elementi CSS
- Componente font: Creare e condividere un componente di tema per i font
- Lingua Highlight.JS: Installare una nuova lingua per Highlight.JS tramite un componente di tema
- Contenuto della homepage: Aggiungere contenuto personalizzato che appare solo sulla tua homepage
- Formato messaggio: Supporto per Message Format per la localizzazione
- Modifiche globali delle icone: Modificare le icone a livello globale
- Icone alternative: Icone alternative
- Stile dei post wiki: Modificare lo stile di un post wiki
- Schema di colori: Creare e condividere uno schema di colori
- Menu di navigazione: Utilizzare il parametro di query
navigation_menuper antevisare la barra laterale o altre opzioni - Stili del contenuto dei post: Personalizzare i contenuti dei post con i tuoi stili
- Screenshot dei temi: Aggiunta di screenshot di anteprima ai temi Discourse
- Impostazioni del sito personalizzabili: Controllo delle impostazioni del sito con i temi
Guide generali
- White-labeling delle app mobili: Cose da considerare prima di decidere di white-labelizzare le app mobili Discourse
- Automazioni personalizzate: Creare Automazioni personalizzate
- Dump dati pubblici: Dump dati pubblici di Discourse
- Valutazioni AI: Eseguire valutazioni AI di Discourse
Tutorial per sviluppatori di temi
- 1 - Introduzione: Tutorial per sviluppatori di temi: 1. Introduzione
- 2 - Tema remoto: Tutorial per sviluppatori di temi: 2. Creazione di un tema remoto
- 3 - CSS: Tutorial per sviluppatori di temi: 3. CSS nei temi
- 4 - Uscite: Tutorial per sviluppatori di temi: 4. Utilizzo delle uscite per inserire e sostituire contenuto
- 5 - Componenti: Tutorial per sviluppatori di temi: 5. Creazione e utilizzo dei componenti
- 6 - API JS: Tutorial per sviluppatori di temi: 6. Utilizzo dell’API JS
- 7 - Conclusione: Tutorial per sviluppatori di temi: 7. Chiusura