Documentação sobre como estender o Discourse com plugins, temas e componentes de tema, trabalhar com o código principal e usar a API do Discourse.
Introdução
- Introdução: Introdução ao Desenvolvimento do Discourse
Ambientes de Desenvolvimento
- Dev Container: Desenvolvendo o Discourse usando um Dev Container
- GitHub Codespaces: Desenvolvendo o Discourse no GitHub Codespaces
- Configuração Docker: Instale o Discourse para desenvolvimento usando o Docker
- Configuração macOS: Instale o Discourse no macOS para desenvolvimento
- Configuração Ubuntu/Debian: Instale o Discourse no Ubuntu ou Debian para Desenvolvimento
- Configuração Windows: Instale o Discourse no Windows para desenvolvimento
- Plugins não-Docker: Instale plugins em seu ambiente de desenvolvimento não-Docker
- Configuração local: Configurar um Ambiente de Desenvolvimento Discourse Local?
- Configuração multi-site: Configurar um ambiente de desenvolvimento multi-site
- Configuração Fedora: Configure o Discourse para desenvolvimento no Fedora Linux
Código e Internos
- Componentes Ember: Adicionar Componentes Ember ao Discourse
- Lint e formatar: Lint e formatar código automaticamente antes dos commits
- Testes de aceitação: Escrever testes de aceitação e testes de componentes para código Ember no Discourse
- Executar suítes de teste: Como executar suítes de teste QUnit do núcleo, plugin e tema do Discourse
- Compatibilidade de versão: Fixar versões de plugin e tema para instalações Discourse mais antigas (.discourse-compatibility)
- Propriedade de objeto Ember: Propriedade de objeto Ember (getOwner, injeções de serviço, etc.)
- Desempenho JS: Usando o ‘tachometer’ do Google para medir mudanças de desempenho JS no Discourse
- CI com GitHub Actions: Configurar Integração Contínua usando GitHub Actions
- Extensões Markdown: Guia do desenvolvedor para extensões Markdown
- Convertendo modais: Convertendo modais de controladores legados para a nova API de componente DModal
- API DModal: Usando a API DModal para renderizar janelas Modais (aka popups/diálogos) no Discourse
- API JS: Usando a API JS
- Conectores de saída de plugin: Usando Conectores de Saída de Plugin de um Tema ou Plugin
- modifyClass: Usando modifyClass para alterar o comportamento do núcleo
- Criando rotas: Criando Rotas no Discourse e Exibindo Dados
- Método de autenticação: Adicionando um novo método de autenticação ‘gerenciado’ ao Discourse
- Serialização acidental de modelos ActiveRecord: Prevenindo a serialização acidental de modelos ActiveRecord
- Substituindo templates: (não recomendado) Substituindo templates do Discourse de um Tema ou Plugin
- Objetos de serviço: Usando objetos de serviço no Discourse
- Especificações do sistema: Escrever especificações de sistema end-to-end para a interface do usuário do Discourse
- FormKit: Kit de ferramentas Discourse para renderizar formulários.
- AppEvents Triggers: Referência de AppEvents Triggers
- Transformers: Usando Transformers para customizar valores e comportamento do lado do cliente
- Customização da Lista de Tópicos: Customizando a lista de tópicos
- Diretrizes de CSS: Diretrizes para classes CSS usando BEM
- Projetando para Dispositivos: Projetando para Diferentes Dispositivos (Tamanho da Viewport, Toque/Hover, etc.)
Plugins
- Plugin básico: Desenvolvendo Plugins Discourse - Parte 1 - Crie um plugin básico
- Saída do plugin: Desenvolvendo Plugins Discourse - Parte 2 - Conecte-se a uma saída de plugin
- Configurações do site: Desenvolvendo Plugins Discourse - Parte 3 - Adicione configurações personalizadas do site
- Configuração do Git: Desenvolvendo Plugins Discourse - Parte 4 - Configurar o git
- Interface de administrador: Desenvolvendo Plugins Discourse - Parte 5 - Adicione uma interface de administrador
- Testes de aceitação: Desenvolvendo Plugins Discourse - Parte 6 - Adicionar testes de aceitação
- Publique seu plugin: Desenvolvendo Plugins Discourse - Parte 7 - Publique seu plugin
- Novos locais: Adicione um novo local do plugin
- Integração de bate-papo: Adicione um novo provedor à integração de bate-papo do discourse
- Extensão markdown-it: Reempacotando uma extensão markdown-it como um plugin Discourse
- Autocarregamento do Rails: Estruturando um plugin para autocarregamento do Rails
Temas e componentes
- …