Documentação sobre como estender o Discourse com plugins, temas e componentes de tema, trabalhar com o código-fonte principal e usar a API do Discourse.
Introdução
- Introdução: Introdução ao Desenvolvimento no Discourse
Ambientes de Desenvolvimento
- Container de Desenvolvimento: Desenvolvendo o Discourse usando um Container de Desenvolvimento
- GitHub Codespaces: Desenvolvendo o Discourse no GitHub Codespaces
- Configuração com Docker: Instalar o Discourse para desenvolvimento usando Docker
- Configuração no macOS: Instalar o Discourse no macOS para desenvolvimento
- Configuração no Ubuntu/Debian: Instalar o Discourse no Ubuntu ou Debian para Desenvolvimento
- Configuração no Windows: Instalar o Discourse no Windows para desenvolvimento
- Plugins sem Docker: Instalar plugins em seu ambiente de desenvolvimento sem Docker
- Configuração local: Como configurar um Ambiente de Desenvolvimento Local do Discourse?
- Configuração multisite: Configurar um ambiente de desenvolvimento multisite
- Configuração no Fedora: Configurar o Discourse para desenvolvimento no Fedora Linux
Código e Internos
- Componentes Ember: Adicionar Componentes Ember ao Discourse
- Lint e formatação: Linter 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 suites de testes: Como executar as suites de testes QUnit do Discourse core, plugins e temas
- Compatibilidade de versão: Fixar versões de plugins e temas para instalações mais antigas do Discourse (ramos d-compat)
- Propriedade de objetos Ember: Propriedade de objetos Ember (getOwner, injeções de serviço, etc.)
- Performance JS: Usando o ‘tachometer’ do Google para medir mudanças de performance 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 (também conhecidas como popups/dialogos) no Discourse
- API JS: Usando a API JS
- Conectores de Plugin Outlet: Usando Conectores de Plugin Outlet a partir de um Tema ou Plugin
- modifyClass: Usando modifyClass para alterar o comportamento principal
- Criando rotas: Criando Rotas no Discourse e Exibindo Dados
- Método de autenticação: Adicionar um novo método de autenticação ‘gerenciado’ ao Discourse
- Serialização acidental de modelos ActiveRecord: Prevenindo a serialização acidental de modelos ActiveRecord
- Sobrescrevendo templates: (não recomendado) Sobrescrevendo templates do Discourse a partir de um Tema ou Plugin
- Objetos de serviço: Usando objetos de serviço no Discourse
- Specs do sistema: Escrever specs de sistema end-to-end para a interface de usuário do Discourse
- FormKit: Kit de ferramentas do Discourse para renderizar formulários.
- Gatilhos AppEvents: Referência de Gatilhos AppEvents
- Transformadores: Usando Transformadores para personalizar valores e comportamentos no lado do cliente
- Personalização da Lista de Tópicos: Personalizando a lista de tópicos
- Diretrizes CSS: Diretrizes para classes CSS usando BEM
- Hinting de tipo JS & validação: Hinting de tipo JavaScript & validação (typescript)
- Design para Dispositivos: Design para Diferentes Dispositivos (Toque & Hover)
- Design para Larguras Responsivas: Design para Larguras Responsivas (Breakpoints, Viewport & Containers)
Plugins
- Plugin básico: Desenvolvendo Plugins Discourse - Parte 1 - Criar um plugin básico
- Plugin outlet: Desenvolvendo Plugins Discourse - Parte 2 - Conectar a um plugin outlet
- Configurações do site: Desenvolvendo Plugins Discourse - Parte 3 - Adicionar configurações de site personalizadas
- Configuração Git: Desenvolvendo Plugins Discourse - Parte 4 - Configurar git
- Interface administrativa: Desenvolvendo Plugins Discourse - Parte 5 - Adicionar uma interface administrativa
- Testes de aceitação: Desenvolvendo Plugins Discourse - Parte 6 - Adicionar testes de aceitação
- Publicar seu plugin: Desenvolvendo Plugins Discourse - Parte 7 - Publicar seu plugin
- Novos idiomas: Adicionar um novo idioma a partir de plugin
- Integração de chat: Adicionar um novo provedor ao discourse-chat-integration
- Extensão markdown-it: Reempacotar uma extensão markdown-it como um plugin Discourse
- Carregamento automático Rails: Estruturar um plugin para carregamento automático do Rails
Temas e Componentes
- Desenvolvendo Temas: Desenvolvendo Temas Discourse & Componentes de Tema
- Referência rápida: Guia de Referência Rápida para Desenvolvedores de Temas
- Guia para designers: Guia do Designer para começar com temas no Discourse
- Theme Creator: Comece com o Theme Creator e o Theme CLI
- Theme CLI: Instalar o aplicativo de console Discourse Theme CLI para ajudá-lo a criar temas
- Estrutura do tema: Estrutura de temas e componentes de tema
- Múltiplos arquivos JS: Dividir o Javascript do tema em vários arquivos
- Múltiplos arquivos SCSS: Dividir o SCSS do tema em vários arquivos
- Configurações do tema: Adicionar configurações ao seu tema Discourse
- Objetos para configurações de tema: Tipo de objeto para configuração de tema
- Migrar configurações: Migrar configurações de tema Discourse
- Metadados do tema: Adicionar metadados e capturas de tela a um Tema
- Variáveis principais: Usar Variáveis Principais do Discourse em seu Tema
- Strings localizáveis: Adicionar strings localizáveis a temas e componentes de tema
- Testes E2E: Testes de sistema end-to-end para temas e componentes de tema
- Minimizando manutenção: Minimizando a Manutenção de Personalizações de Tema
- Tamanhos de fonte: Alterar tamanhos de fonte em seus temas
- Incluir ativos: Incluir ativos (por exemplo, imagens, fontes) em temas e componentes
- Ícones personalizados: Substituir os ícones SVG padrão do Discourse por ícones personalizados em um tema
- Modo escuro: Atualizar temas e plugins para suportar modo escuro automático
- Modificadores de tema: Modificadores de tema: Uma breve introdução
- Pseudo-elementos: Inserir texto ou imagens em qualquer lugar do seu site usando pseudo-elementos CSS
- Componente de fonte: Criar e compartilhar um componente de tema de fonte
- Linguagem Highlight.JS: Instalar uma nova linguagem para Highlight.JS via componente de tema
- Conteúdo da página inicial: Adicionar conteúdo personalizado que aparece apenas na sua página inicial
- Formato de mensagem: Suporte ao Formato de Mensagem para localização
- Alterações globais de ícones: Alterar ícones globalmente
- Ícones alternativos: Ícones alternativos
- Estilo de post wiki: Alterar o estilo de um post wiki
- Esquema de cores: Criar e compartilhar um esquema de cores
- Menu de navegação: Usar o parâmetro de consulta
navigation_menupara visualizar a barra lateral ou outras opções - Estilos de conteúdo de posts: Personalizar o conteúdo dos posts com seus próprios estilos
- Capturas de tela do tema: Adicionar capturas de tela de pré-visualização aos temas Discourse
- Configurações de site tematizáveis: Controlar configurações de site com temas
Guias Gerais
- White-labeling de aplicativos móveis: Coesas a serem consideradas antes de decidir fazer white-label dos aplicativos Discourse Mobile
- Automações personalizadas: Criar Automações personalizadas
- Dump de dados públicos: Discourse Public Data Dump
- Avaliações de IA: Executar avaliações de IA do Discourse
Tutorial de Desenvolvimento de Temas
- 1 - Introdução: Tutorial do Desenvolvedor de Temas: 1. Introdução
- 2 - Tema Remoto: Tutorial do Desenvolvedor de Temas: 2. Criando um tema remoto
- 3 - CSS: Tutorial do Desenvolvedor de Temas: 3. CSS em Temas
- 4 - Outlets: Tutorial do Desenvolvedor de Temas: 4. Usando Outlets para inserir e substituir conteúdo
- 5 - Componentes: Tutorial do Desenvolvedor de Temas: 5. Construindo e usando componentes
- 6 - API JS: Tutorial do Desenvolvedor de Temas: 6. Usando a API JS
- 7 - Conclusão: Tutorial do Desenvolvedor de Temas: 7. Encerrando