Documentazione sull’estensione di Discourse con plugin, temi e componenti di tema, sul lavoro con il codice principale e sull’utilizzo della 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 plugin nel tuo ambiente di sviluppo non Docker
- Configurazione locale: Configurare un ambiente di sviluppo locale per Discourse?
- Configurazione multisito: Configurare un ambiente di sviluppo multisito
- Configurazione Fedora: Configurare Discourse per lo sviluppo su Fedora Linux
Codice e Interni
- Componenti Ember: Aggiungere componenti Ember a Discourse
- Lint 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 suite di test: Come eseguire le suite di test QUnit per il core, i plugin e i temi di Discourse
- Compatibilità delle versioni: Bloccare 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: Utilizzare «tachometer» di Google per misurare le modifiche alle prestazioni JS in Discourse
- CI con GitHub Actions: Configurare l’integrazione continua utilizzando GitHub Actions
- Estensioni Markdown: Guida per sviluppatori alle estensioni Markdown
- Conversione modali: Convertire le modali dai controller legacy alla nuova API del componente DModal
- API DModal: Utilizzare l’API DModal per visualizzare finestre modali (alias popup/dialoghi) in Discourse
- API JS: Utilizzare l’API JS
- Connettori Plugin Outlet: Utilizzare i connettori Plugin Outlet da un tema o un plugin
- modifyClass: Utilizzare modifyClass per modificare il comportamento del core
- Creazione route: Creare route in Discourse e mostrare dati
- Metodo di autenticazione: Aggiungere un nuovo metodo di autenticazione «gestito» a Discourse
- Serializzazione accidentale di modelli ActiveRecord: Prevenire la serializzazione accidentale dei modelli ActiveRecord
- Sovrascrittura template: (non consigliato) Sovrascrivere i template di Discourse da un tema o un plugin
- Oggetti di servizio: Utilizzare 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: Utilizzare i trasformatori per personalizzare valori e comportamenti lato client
- Personalizzazione lista argomenti: Personalizzare la lista degli argomenti
- Linee guida CSS: Linee guida per le classi CSS utilizzando BEM
- Hinting e validazione dei tipi JS: Hinting e validazione dei tipi JavaScript (typescript)
- Progettazione per dispositivi: Progettare per diversi dispositivi (dimensione viewport, tocco/hover, ecc.)
Plugin
- Plugin di base: Sviluppare plugin per Discourse - Parte 1 - Creare un plugin di base
- Plugin outlet: Sviluppare plugin per Discourse - Parte 2 - Connettersi a un plugin outlet
- Impostazioni sito: Sviluppare plugin per Discourse - Parte 3 - Aggiungere impostazioni personalizzate del sito
- Configurazione Git: Sviluppare plugin per Discourse - Parte 4 - Configurare git
- Interfaccia di amministrazione: Sviluppare plugin per Discourse - Parte 5 - Aggiungere un’interfaccia di amministrazione
- Test di accettazione: Sviluppare plugin per Discourse - Parte 6 - Aggiungere test di accettazione
- Pubblicare il tuo plugin: Sviluppare plugin per Discourse - Parte 7 - Pubblicare il tuo plugin
- Nuove localizzazioni: Aggiungere una nuova localizzazione da un plugin
- Integrazione chat: Aggiungere un nuovo provider a discourse-chat-integration
- Estensione markdown-it: Riconfezionare un’estensione markdown-it come plugin per Discourse
- Autoloading Rails: Strutturare un plugin per l’autoloading di Rails
Temi e Componenti
- Sviluppo temi: Sviluppare temi e componenti di tema per Discourse
- Riferimento rapido: Guida rapida di riferimento per gli sviluppatori di temi
- Guida per i designer: Guida del designer per iniziare con i temi in Discourse
- Theme Creator: Iniziare con Theme Creator e la CLI dei temi
- CLI dei temi: Installare l’applicazione console CLI dei temi di Discourse per aiutarti a creare temi
- Struttura dei temi: Struttura dei temi e dei componenti di tema
- File JS multipli: Dividere il JavaScript del tema in più file
- File SCSS multipli: Dividere l’SCSS del tema in più file
- Impostazioni del tema: Aggiungere impostazioni al tuo tema di Discourse
- Oggetti per le impostazioni del tema: Tipo oggetto per le impostazioni del tema
- Migrazione impostazioni: Migrare le impostazioni dei temi di Discourse
- Metadati del tema: Aggiungere metadati e screenshot a un tema
- Variabili core: Utilizzare le variabili core di Discourse nel tuo tema
- Stringhe localizzabili: Aggiungere stringhe localizzabili a temi e componenti di tema
- Test E2E: Test di sistema end-to-end per temi e componenti di tema
- Riduzione della manutenzione: Ridurre la manutenzione delle personalizzazioni dei temi
- Dimensioni del carattere: Modificare le dimensioni del carattere nei tuoi temi
- Inclusione risorse: Includere risorse (es. immagini, font) nei temi e nei 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 di tema: Modificatori di tema: una breve introduzione
- Pseudo-elementi: Inserire testo o immagini ovunque nel tuo sito utilizzando i 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 homepage: Aggiungere contenuti personalizzati che appaiono solo sulla tua homepage
- Formato messaggio: Supporto del formato messaggio per la localizzazione
- Modifiche globali alle icone: Modificare le icone a livello globale
- Icone alternative: Icone alternative
- Stile post wiki: Modificare lo stile di un post wiki
- Schema colori: Creare e condividere uno schema colori
- Menu di navigazione: Utilizzare il parametro di query
navigation_menuper visualizzare la barra laterale o altre opzioni - Stili contenuto post: Personalizzare i contenuti dei post con i tuoi stili
- Screenshot del tema: Aggiungere screenshot di anteprima ai temi di Discourse
- Impostazioni sito personalizzabili: Controllare le impostazioni del sito con i temi
Guide Generali
- White-labelling app mobili: Cose da considerare prima di decidere di white-labellare le app mobili di Discourse
- Automazioni personalizzate: Creare automazioni personalizzate
- Dump pubblico dei dati: Dump pubblico dei dati 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. Creare un tema remoto
- 3 - CSS: Tutorial per sviluppatori di temi: 3. CSS nei temi
- 4 - Outlet: Tutorial per sviluppatori di temi: 4. Utilizzare gli outlet per inserire e sostituire contenuti
- 5 - Componenti: Tutorial per sviluppatori di temi: 5. Costruire e utilizzare componenti
- 6 - API JS: Tutorial per sviluppatori di temi: 6. Utilizzare l’API JS
- 7 - Conclusione: Tutorial per sviluppatori di temi: 7. Conclusione