Documentatie over het uitbreiden van Discourse met plugins, thema’s en themacomponenten, werken met de kerncode en het gebruik van de Discourse API.
Introductie
- Introductie: Introductie tot Discourse Ontwikkeling
Ontwikkelomgevingen
- Dev Container: Discourse Ontwikkeling met een Dev Container
- GitHub Codespaces: Discourse Ontwikkeling op GitHub Codespaces
- Docker setup: Discourse Installeren voor ontwikkeling met Docker
- macOS setup: Discourse Installeren op macOS voor ontwikkeling
- Ubuntu/Debian setup: Discourse Installeren op Ubuntu of Debian voor Ontwikkeling
- Windows setup: Discourse Installeren op Windows voor ontwikkeling
- Plugins zonder Docker: Plugins Installeren in uw niet-Docker ontwikkelomgeving
- Lokale setup: Een Lokale Discourse Ontwikkelomgeving Opzetten?
- Multisite setup: Een multisite ontwikkelomgeving Opzetten
- Fedora setup: Discourse Opzetten voor ontwikkeling op Fedora Linux
Code & Internals
- Ember components: Ember Components Toevoegen aan Discourse
- Lint en format: Code automatisch linten en formatteren voor commits
- Acceptance tests: Acceptance tests en component tests schrijven voor Ember code in Discourse
- Test suites uitvoeren: Hoe Discourse core, plugin en thema QUnit test suites uit te voeren
- Versie compatibiliteit: Plugin en thema versies vastzetten voor oudere Discourse installaties (.discourse-compatibility)
- Ember object eigendom: Ember object eigendom (getOwner, service injections, etc.)
- JS performance: Google’s ‘tachometer’ gebruiken om JS performance veranderingen in Discourse te meten
- CI met GitHub Actions: Continue Integratie Opzetten met GitHub Actions
- Markdown extensies: Gids voor ontwikkelaars over Markdown extensies
- Modals converteren: Modals converteren van legacy controllers naar de nieuwe DModal component API
- DModal API: De DModal API gebruiken om Modal vensters (ook wel popups/dialogs genoemd) in Discourse te renderen
- JS API: De JS API gebruiken
- Plugin outlet connectors: Plugin Outlet Connectors gebruiken vanuit een Thema of Plugin
- modifyClass: modifyClass gebruiken om kernfunctionaliteit te wijzigen
- Routes maken: Routes maken in Discourse en Data Tonen
- Authenticatiemethode: Een nieuwe ‘managed’ authenticatiemethode toevoegen aan Discourse
- Onbedoelde serialisatie van ActiveRecord modellen: Voorkomen van onbedoelde serialisatie van ActiveRecord modellen
- Templates overschrijven: (niet aanbevolen) Discourse templates overschrijven vanuit een Thema of Plugin
- Service objecten: Service objecten gebruiken in Discourse
- Systeem specificaties: End-to-end systeem specificaties schrijven voor de Discourse gebruikersinterface
- FormKit: Discourse toolkit voor het renderen van formulieren.
- AppEvents Triggers: AppEvents Triggers Referentie
- Transformers: Transformers gebruiken om client-side waarden en gedrag aan te passen
- Topic Lijst Aanpassing: De topic lijst aanpassen
- CSS richtlijnen: Richtlijnen voor CSS klassen met BEM
- Ontwerpen voor Apparaten: Ontwerpen voor Verschillende Apparaten (Viewport Grootte, Touch/Hover, etc.)
Plugins
- Basis plugin: Discourse Plugins Ontwikkelen - Deel 1 - Een basis plugin maken
- Plugin outlet: Discourse Plugins Ontwikkelen - Deel 2 - Verbinden met een plugin outlet
- Site instellingen: Discourse Plugins Ontwikkelen - Deel 3 - Aangepaste site instellingen toevoegen
- Git setup: Discourse Plugins Ontwikkelen - Deel 4 - Git setup
- Admin interface: Discourse Plugins Ontwikkelen - Deel 5 - Een admin interface toevoegen
- Acceptance tests: Discourse Plugins Ontwikkelen - Deel 6 - Acceptance tests toevoegen
- Plugin publiceren: Discourse Plugins Ontwikkelen - Deel 7 - Uw plugin publiceren
- Nieuwe locales: Een nieuwe locale toevoegen vanuit een plugin
- Chat integratie: Een nieuwe provider toevoegen aan discourse-chat-integration
- markdown-it extensie: Een markdown-it extensie herverpakken als een Discourse plugin
- Rails autoloading: Een plugin structureren voor Rails autoloading
Thema’s & Componenten
- Thema’s Ontwikkelen: Discourse Thema’s & Themacomponenten Ontwikkelen
- Snelle referentie: Snelle Referentiegids voor Thema Ontwikkelaars
- Ontwerpersgids: Ontwerpersgids om te beginnen met thema’s in Discourse
- Theme Creator: Aan de slag met Theme Creator en de Theme CLI
- Theme CLI: Installeer de Discourse Theme CLI console app om u te helpen bij het bouwen van thema’s
- Thema structuur: Structuur van thema’s en themacomponenten
- Meerdere JS bestanden: Thema Javascript opsplitsen in meerdere bestanden
- Meerdere SCSS bestanden: Thema SCSS opsplitsen in meerdere bestanden
- Thema instellingen: Instellingen toevoegen aan uw Discourse thema
- Objecten voor thema instellingen: Object types voor thema instellingen
- Instellingen migreren: Discourse thema instellingen migreren
- Thema metadata: Metadata en screenshots toevoegen aan een Thema
- Kern variabelen: Discourse Kern Variabelen Gebruiken in uw Thema
- Lokaliseerbare strings: Lokaliseerbare strings toevoegen aan thema’s en themacomponenten
- E2E testen: End-to-end systeem testen voor thema’s en themacomponenten
- Onderhoud minimaliseren: Onderhoud op Thema Aanpassingen Minimaliseren
- Lettergrootte: Lettergroottes aanpassen in uw thema’s
- Assets opnemen: Assets (bijv. afbeeldingen, lettertypen) opnemen in thema’s en componenten
- Aangepaste iconen: Standaard SVG iconen van Discourse vervangen met aangepaste iconen in een thema
- Donkere modus: Thema’s en plugins bijwerken om automatische donkere modus te ondersteunen
- Thema modifiers: Thema modifiers: Een korte introductie
- Pseudo-elementen: Tekst of afbeeldingen overal op uw site invoegen met CSS pseudo-elementen
- Font component: Een font themacomponent maken en delen
- Highlight.JS taal: Een nieuwe taal installeren voor Highlight.JS via een themacomponent
- Homepage inhoud: Aangepaste inhoud toevoegen die alleen op uw homepage verschijnt
- Message format: Message Format ondersteuning voor lokalisatie
- Globale icoon wijzigingen: Iconen globaal wijzigen
- Alternatieve iconen: Alternatieve iconen
- Wiki post stijl: De stijl van een wiki post wijzigen
- Kleurenschema: Een kleurenschema maken en delen
- Navigatiemenu: Gebruik de
navigation_menuquery parameter om de zijbalk of andere opties te bekijken - Post inhoud stijlen: Posts inhoud aanpassen met uw eigen stijlen
- Thema screenshots: Voorbeeld screenshots toevoegen aan Discourse thema’s
- Thema-instelbare site-instellingen: Site-instellingen beheren met thema’s
Algemene Gidsen
- White-labelling mobiele apps: Dingen om te overwegen voordat u besluit de Discourse Mobiele apps te white-labelen
- Aangepaste automatiseringen: Aangepaste Automatiseringen maken
- Public data dump: Discourse Public Data Dump
Thema Ontwikkeling Tutorial
- 1 - Introductie: Thema Ontwikkelaar Tutorial: 1. Introductie
- 2 - Remote Thema: Thema Ontwikkelaar Tutorial: 2. Een remote thema maken
- 3 - CSS: Thema Ontwikkelaar Tutorial: 3. CSS in Thema’s
- 4 - Outlets: Thema Ontwikkelaar Tutorial: 4. Outlets gebruiken om inhoud in te voegen en te vervangen
- 5 - Componenten: Thema Ontwikkelaar Tutorial: 5. Componenten bouwen en gebruiken
- 6 - JS API: Thema Ontwikkelaar Tutorial: 6. De JS API gebruiken
- 7 - Conclusie: Thema Ontwikkelaar Tutorial: 7. Afronding