Documentazione sull’estensione di Discourse con plugin, temi e componenti del tema, sull’utilizzo del codice principale e sull’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
- Installazione Docker: Installare Discourse per lo sviluppo utilizzando Docker
- Installazione macOS: Installare Discourse su macOS per lo sviluppo
- Installazione Ubuntu/Debian: Installare Discourse su Ubuntu o Debian per lo sviluppo
- Installazione Windows: Installare Discourse su Windows per lo sviluppo
- Plugin non-Docker: Installare plugin nel tuo ambiente di sviluppo non-Docker
- Installazione locale: Impostare un ambiente di sviluppo locale di Discourse?
- Installazione multisito: Impostare un ambiente di sviluppo multisito
- Installazione Fedora: Impostare Discourse per lo sviluppo su Fedora Linux
Codice e componenti interni
- Componenti Ember: Aggiungere componenti Ember a Discourse
- Lint e formatta: Lint e formatta automaticamente il codice prima dei commit
- Test di accettazione: Scrivere test di accettazione e test dei componenti per il codice Ember in Discourse
- Esegui suite di test: Come eseguire le suite di test QUnit del core, dei plugin e dei temi di Discourse
- Compatibilità delle versioni: Fissaggio delle versioni dei plugin e dei temi per installazioni Discourse più vecchie (.discourse-compatibility)
- Proprietà degli oggetti Ember: Proprietà degli oggetti Ember (getOwner, iniezioni di servizi, ecc.)
- Prestazioni JS: Utilizzo di ‘tachometer’ di Google per misurare le modifiche alle prestazioni JS in Discourse
- CI con GitHub Actions: Impostare l’integrazione continua utilizzando GitHub Actions
- Estensioni Markdown: Guida per sviluppatori alle estensioni Markdown
- Conversione di modali: Conversione di modali dai controller legacy alla nuova API del componente DModal
- API DModal: Utilizzo dell’API DModal per renderizzare finestre modali (aka popup/dialoghi) in Discourse
- API JS: Utilizzo dell’API JS
- Connettori outlet plugin: Utilizzo dei connettori outlet plugin da un tema o plugin
- modifyClass: Utilizzo di modifyClass per modificare il comportamento del core
- Creazione di route: Creazione di route in Discourse e visualizzazione dei dati
- Metodo di autenticazione: Aggiunta di un nuovo metodo di autenticazione ‘managed’ a Discourse
- Serializzazione accidentale di modelli ActiveRecord: Prevenzione della serializzazione accidentale di modelli ActiveRecord
- Sovrascrittura dei template: (sconsigliato) Sovrascrittura dei template di Discourse da un tema o plugin
- Oggetti di servizio: Utilizzo di 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 renderizzare moduli.
- Trigger AppEvents: Riferimento ai trigger AppEvents
- Trasformatori: Utilizzo dei trasformatori per personalizzare i valori e il comportamento lato client
- Personalizzazione dell’elenco degli argomenti: Personalizzazione dell’elenco degli argomenti
- Linee guida CSS: Linee guida per le classi CSS che utilizzano BEM
- Progettazione per dispositivi: Progettazione per diversi dispositivi (dimensioni del viewport, tocco/hover, ecc.)
Plugin
- Plugin base: Sviluppare Plugin Discourse - Parte 1 - Crea un plugin base
- Plugin outlet: Sviluppare Plugin Discourse - Parte 2 - Connetti a un plugin outlet
- Impostazioni sito: Sviluppare Plugin Discourse - Parte 3 - Aggiungi impostazioni sito personalizzate
- Configurazione Git: Sviluppare Plugin Discourse - Parte 4 - Configurazione git
- Interfaccia di amministrazione: Sviluppare Plugin Discourse - Parte 5 - Aggiungi un’interfaccia di amministrazione
- Test di accettazione: Sviluppare Plugin Discourse - Parte 6 - Aggiungi test di accettazione
- Pubblica il tuo plugin: Sviluppare Plugin Discourse - Parte 7 - Pubblica il tuo plugin
- Nuove impostazioni locali: Aggiungi nuove impostazioni locali dal plugin
- Integrazione chat: Aggiungi un nuovo provider all’integrazione della chat di discourse
- estensione markdown-it: Riconfezionamento di un’estensione markdown-it come plugin Discourse
- Autoloading di Rails: Strutturare un plugin per l’autoloading di Rails
Temi e Componenti
- …