Documentazione sull’estensione di Discourse con plugin, temi e componenti tema, lavoro sul codice sorgente e utilizzo dell’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 Discourse locale?
- 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: Eseguire automaticamente lint e formattare il codice prima dei commit
- Test di accettazione: Scrivere test di accettazione e test di componenti per il codice Ember in Discourse
- Esecuzione suite di test: Come eseguire le suite di test QUnit del core di Discourse, dei plugin e dei temi
- Compatibilità versione: Fissare le versioni di plugin e temi per installazioni Discourse più vecchie (.discourse-compatibility)
- 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 sulle estensioni Markdown
- Conversione modali: Convertire le modali da controller legacy alla nuova API dei componenti DModal
- API DModal: Utilizzare l’API DModal per visualizzare finestre modali (o popup/dialoghi) in Discourse
- API JS: Utilizzo dell’API JS
- Connettori Plugin Outlet: Utilizzare i connettori Plugin Outlet da un Tema o Plugin
- modifyClass: Utilizzare modifyClass per cambiare il comportamento del core
- Creazione di route: Creare Route in Discourse e Mostrare Dati
- Metodo di autenticazione: Aggiungere un nuovo metodo di autenticazione ‘gestito’ a Discourse
- Serializzazione accidentale modelli ActiveRecord: Prevenire la serializzazione accidentale di modelli ActiveRecord
- Sovrascrittura template: (sconsigliato) Sovrascrivere i template di Discourse da un Tema o Plugin
- Oggetti servizio: Utilizzo di oggetti servizio in Discourse
- Specifiche di sistema: Scrivere specifiche di sistema end-to-end per l’interfaccia utente di Discourse
- FormKit: Toolkit di Discourse per renderizzare i form.
- Trigger AppEvents: Riferimento ai Trigger AppEvents
- Transformer: Utilizzare i Transformer per personalizzare valori e comportamenti lato client
- Personalizzazione Elenco Argomenti: Personalizzare l’elenco degli argomenti
- Linee guida CSS: Linee guida per le classi CSS che utilizzano BEM
- Progettazione per Dispositivi: Progettare per Dispositivi Diversi (Dimensione Viewport, Touch/Hover, ecc.)
Plugin
- Plugin di base: Sviluppare Plugin di Discourse - Parte 1 - Creare un plugin di base
- Plugin outlet: Sviluppare Plugin di Discourse - Parte 2 - Connettersi a un plugin outlet
- Impostazioni sito: Sviluppare Plugin di Discourse - Parte 3 - Aggiungere impostazioni sito personalizzate
- Configurazione git: Sviluppare Plugin di Discourse - Parte 4 - Configurare git
- Interfaccia admin: Sviluppare Plugin di Discourse - Parte 5 - Aggiungere un’interfaccia admin
- Test di accettazione: Sviluppare Plugin di Discourse - Parte 6 - Aggiungere test di accettazione
- Pubblicare il plugin: Sviluppare Plugin di Discourse - Parte 7 - Pubblicare il tuo plugin
- Nuove lingue: Aggiungere una nuova lingua da un plugin
- Integrazione chat: Aggiungere un nuovo provider a discourse-chat-integration
- Estensione markdown-it: Riconfezionare un’estensione markdown-it come plugin di Discourse
- Autoloading Rails: Strutturare un plugin per l’autoloading di Rails
Temi e Componenti Tema
- Sviluppo Temi: Sviluppare Temi e Componenti Tema di 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 per Temi
- Theme CLI: Installare l’applicazione console Discourse Theme CLI per aiutarti a costruire temi
- Struttura tema: Struttura di temi e componenti tema
- File JS multipli: Suddividere il Javascript del tema in più file
- File SCSS multipli: Suddividere l’SCSS del tema in più file
- Impostazioni tema: Aggiungere impostazioni al tuo tema Discourse
- Oggetti per impostazioni tema: Tipo di oggetto per impostazione tema
- Migrare impostazioni: Migrare le impostazioni dei temi di Discourse
- Metadati tema: Aggiungere metadati e screenshot a un Tema
- Variabili core: Usare le Variabili Core di Discourse nel tuo Tema
- Stringhe localizzabili: Aggiungere stringhe localizzabili a temi e componenti tema
- Test E2E: Test di sistema end-to-end per temi e componenti tema
- Minimizzare la manutenzione: Minimizzare la manutenzione sulle personalizzazioni dei temi
- Dimensioni font: Modificare le dimensioni dei font nei tuoi temi
- Includere asset: Includere asset (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 tema: Modificatori 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 tema per i font
- Lingua Highlight.JS: Installare una nuova lingua per Highlight.JS tramite un componente tema
- Contenuto homepage: Aggiungere contenuto personalizzato che appare solo sulla tua homepage
- Formato messaggio: Supporto Formato Messaggio per la localizzazione
- Modifiche icone globali: Cambiare le icone globalmente
- Icone alternative: Icone alternative
- Stile post wiki: Cambiare lo stile di un post wiki
- Schema colori: Creare e condividere uno schema colori
- Menu navigazione: Utilizzare il parametro di query
navigation_menuper visualizzare in anteprima la barra laterale o altre opzioni - Stili contenuto post: Personalizzare il contenuto dei post con i tuoi stili
- Screenshot tema: Aggiungere anteprime agli screenshot dei temi di Discourse
- Impostazioni sito temabili: Controllare le impostazioni del sito con i temi
Guide Generali
- White-labelling app mobili: Cose da considerare prima di decidere di fare il white-label delle app mobili di Discourse
- Automazioni personalizzate: Creare Automazioni personalizzate
- Dump dati pubblici: Discourse Public Data Dump
- Valutazioni AI: Eseguire valutazioni AI di Discourse
Tutorial Sviluppatore Tema
- 1 - Introduzione: Tutorial Sviluppatore Tema: 1. Introduzione
- 2 - Tema Remoto: Tutorial Sviluppatore Tema: 2. Creazione di un tema remoto
- 3 - CSS: Tutorial Sviluppatore Tema: 3. CSS nei Temi
- 4 - Outlets: Tutorial Sviluppatore Tema: 4. Utilizzo degli Outlets per inserire e sostituire contenuto
- 5 - Componenti: Tutorial Sviluppatore Tema: 5. Costruire e utilizzare componenti
- 6 - API JS: Tutorial Sviluppatore Tema: 6. Utilizzo dell’API JS
- 7 - Conclusione: Tutorial Sviluppatore Tema: 7. Conclusione