Documentazione sull’estensione di Discourse con plugin, temi e componenti tematici, sul lavoro con il codice principale e sull’utilizzo dell’API di Discourse.
Introduzione
- Introduzione: Introduzione allo sviluppo di Discourse
Ambienti di sviluppo
- Contenitore di sviluppo: Sviluppare Discourse utilizzando un contenitore di sviluppo
- 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 nell’ambiente di sviluppo non Docker
- Configurazione locale: Configurare un ambiente di sviluppo locale di Discourse?
- Configurazione multisito: Configurare un ambiente di sviluppo multisito
- Configurazione Fedora: Configurare Discourse per lo sviluppo su Fedora Linux
Codice e dettagli 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 Discourse core, plugin e temi
- Compatibilità delle versioni: Fissare le versioni dei plugin e dei temi per installazioni precedenti 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 variazioni delle prestazioni JS in Discourse
- CI con GitHub Actions: Configurare l’integrazione continua utilizzando GitHub Actions
- Estensioni Markdown: Guida per sviluppatori alle estensioni Markdown
- Conversione delle finestre modali: Convertire le finestre modali dai controller legacy alla nuova API del componente DModal
- API DModal: Utilizzare l’API DModal per rendere le finestre modali (alias popup/dialoghi) in Discourse
- API JS: Utilizzare l’API JS
- Connettori per le uscite dei plugin: Utilizzare i connettori per le uscite dei plugin da un tema o plugin
- modifyClass: Utilizzare modifyClass per modificare il comportamento principale
- Creazione di route: Creare route in Discourse e mostrare i dati
- Metodo di autenticazione: Aggiungere 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 plugin
- Oggetti di servizio: Utilizzare gli 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 rendere i moduli.
- Trigger AppEvents: Riferimento ai trigger AppEvents
- Trasformatori: Utilizzare i trasformatori per personalizzare i valori e il comportamento lato client
- Personalizzazione dell’elenco degli argomenti: Personalizzare l’elenco degli argomenti
- Linee guida CSS: Linee guida per le classi CSS utilizzando BEM
- Suggerimenti di tipo JS e convalida: Suggerimenti di tipo JS e convalida (typescript)
- Progettazione per dispositivi: Progettare per diversi dispositivi (touch e hover)
- Progettazione per larghezze reattive: Progettare per larghezze reattive (breakpoint, viewport e contenitori)
Plugin
- Plugin di base: Sviluppare plugin Discourse - Parte 1 - Creare un plugin di base
- Uscita del plugin: Sviluppare plugin Discourse - Parte 2 - Connettersi a un’uscita del plugin
- Impostazioni del sito: Sviluppare plugin Discourse - Parte 3 - Aggiungere impostazioni personalizzate del sito
- Configurazione Git: Sviluppare plugin Discourse - Parte 4 - Configurare git
- Interfaccia di amministrazione: Sviluppare plugin Discourse - Parte 5 - Aggiungere un’interfaccia di amministrazione
- Test di accettazione: Sviluppare plugin Discourse - Parte 6 - Aggiungere test di accettazione
- Pubblicare il plugin: Sviluppare plugin Discourse - Parte 7 - Pubblicare il plugin
- Nuove lingue: Aggiungere una nuova lingua dal plugin
- Integrazione chat: Aggiungere un nuovo provider a discourse-chat-integration
- Estensione markdown-it: Riempacchettare un’estensione markdown-it come plugin Discourse
- Caricamento automatico Rails: Strutturare un plugin per il caricamento automatico di Rails
Temi e componenti
- Sviluppo di temi: Sviluppare temi Discourse e componenti tematici
- Riferimento rapido: Guida di riferimento rapido per sviluppatori di temi
- Guida per designer: Guida per designer per iniziare con i temi in Discourse
- Creatore di temi: Iniziare con il creatore di temi e la CLI dei temi
- CLI dei temi: Installare l’app console CLI dei temi di Discourse per aiutarti a creare temi
- Struttura dei temi: Struttura dei temi e dei componenti tematici
- Più file JS: Dividere il Javascript del tema in più file
- Più file SCSS: Dividere lo SCSS del tema in più file
- Impostazioni del tema: Aggiungere impostazioni al tuo tema Discourse
- Oggetti per le impostazioni del tema: Tipo oggetto per le impostazioni del tema
- Migrazione delle impostazioni: Migrare le impostazioni dei temi Discourse
- Metadati del tema: Aggiungere metadati e screenshot a un tema
- Variabili principali: Utilizzare le variabili principali di Discourse nel tuo tema
- Stringhe localizzabili: Aggiungere stringhe localizzabili ai temi e ai componenti tematici
- Test E2E: Test di sistema end-to-end per temi e componenti tematici
- Minimizzare la manutenzione: Minimizzare la manutenzione delle personalizzazioni dei temi
- Dimensioni del carattere: Modificare le dimensioni del carattere nei tuoi temi
- Includere risorse: Includere risorse (ad esempio 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 del tema: Modificatori del tema: una breve introduzione
- Pseudo-elementi: Inserire testo o immagini ovunque nel tuo sito utilizzando pseudo-elementi CSS
- Componente font: Creare e condividere un componente tematico font
- Lingua Highlight.JS: Installare una nuova lingua per Highlight.JS tramite un componente tematico
- Contenuto della homepage: Aggiungere contenuto personalizzato che appare solo sulla tua homepage
- Formato messaggio: Supporto del formato messaggio per la localizzazione
- Modifiche globali delle icone: Modificare le icone globalmente
- Icone alternative: Icone alternative
- Stile 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 visualizzare in anteprima la barra laterale o altre opzioni - Stili del contenuto dei post: Personalizzare i contenuti dei post con i tuoi stili
- Screenshot del tema: Aggiungere screenshot di anteprima ai temi Discourse
- Impostazioni del sito personalizzabili: Controllare le 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 di componenti
- 6 - API JS: Tutorial per sviluppatori di temi: 6. Utilizzo dell’API JS
- 7 - Conclusione: Tutorial per sviluppatori di temi: 7. Conclusioni