Documentación sobre cómo extender Discourse con plugins, temas y componentes de temas, trabajar con el código central y usar la API de Discourse.
Introducción
- Introducción: Introducción al Desarrollo de Discourse
Entornos de Desarrollo
- Contenedor Dev: Desarrollar Discourse usando un Contenedor Dev
- GitHub Codespaces: Desarrollar Discourse en GitHub Codespaces
- Configuración de Docker: Instalar Discourse para desarrollo usando Docker
- Configuración de macOS: Instalar Discourse en macOS para desarrollo
- Configuración de Ubuntu/Debian: Instalar Discourse en Ubuntu o Debian para Desarrollo
- Configuración de Windows: Instalar Discourse en Windows para desarrollo
- Plugins sin Docker: Instalar plugins en tu entorno de desarrollo sin Docker
- Configuración local: ¿Configurar un Entorno de Desarrollo Local de Discourse?
- Configuración multisitio: Configurar un entorno de desarrollo multisitio
- Configuración de Fedora: Configurar Discourse para desarrollo en Fedora Linux
Código e Internos
- Componentes Ember: Añadir componentes Ember a Discourse
- Linter y formateo: Linter y formatear código automáticamente antes de los commits
- Tests de aceptación: Escribir tests de aceptación y tests de componentes para código Ember en Discourse
- Ejecutar suites de tests: Cómo ejecutar las suites de tests QUnit del core, plugins y temas de Discourse
- Compatibilidad de versiones: Fijar versiones de plugins y temas para instalaciones antiguas de Discourse (.discourse-compatibility)
- Propiedad de objetos Ember: Propiedad de objetos Ember (getOwner, inyecciones de servicios, etc.)
- Rendimiento de JS: Usar ‘tachometer’ de Google para medir cambios en el rendimiento de JS en Discourse
- CI con GitHub Actions: Configurar Integración Continua usando GitHub Actions
- Extensiones de Markdown: Guía para desarrolladores de extensiones de Markdown
- Convertir modales: Convertir modales de controladores legacy a la nueva API de componentes DModal
- API DModal: Usar la API DModal para renderizar ventanas modales (también conocidas como popups/diálogos) en Discourse
- API JS: Usar la API JS
- Conectores de outlets de plugins: Usar conectores de outlet de plugins desde un tema o plugin
- modifyClass: Usar modifyClass para cambiar el comportamiento del core
- Crear rutas: Crear rutas en Discourse y mostrar datos
- Método de autenticación: Añadir un nuevo método de autenticación ‘gestionado’ a Discourse
- Serialización accidental de modelos ActiveRecord: Prevenir la serialización accidental de modelos ActiveRecord
- Sobreescribir plantillas: (no recomendado) Sobreescribir plantillas de Discourse desde un tema o plugin
- Objetos de servicio: Usar objetos de servicio en Discourse
- Especificaciones del sistema: Escribir especificaciones de sistema end-to-end para la interfaz de usuario de Discourse
- FormKit: Toolkit de Discourse para renderizar formularios.
- AppEvents Triggers: Referencia de AppEvents Triggers
- Transformers: Usar Transformers para personalizar valores y comportamiento del lado del cliente
- Personalización de la lista de temas: Personalizar la lista de temas
- Guías de estilo CSS: Guías de estilo para clases CSS usando BEM
- Diseño para dispositivos: Diseñar para diferentes dispositivos (tamaño del viewport, táctil/hover, etc.)
Plugins
- Plugin básico: Desarrollando plugins de Discourse - Parte 1 - Crear un plugin básico
- Salida del plugin: Desarrollando plugins de Discourse - Parte 2 - Conectar a una salida de plugin
- Ajustes del sitio: Desarrollando plugins de Discourse - Parte 3 - Añadir ajustes personalizados del sitio
- Configuración de Git: Desarrollando plugins de Discourse - Parte 4 - Configurar git
- Interfaz de administración: Desarrollando plugins de Discourse - Parte 5 - Añadir una interfaz de administración
- Pruebas de aceptación: Desarrollando plugins de Discourse - Parte 6 - Añadir pruebas de aceptación
- Publica tu plugin: Desarrollando plugins de Discourse - Parte 7 - Publica tu plugin
- Nuevas configuraciones regionales: Añadir una nueva configuración regional desde el plugin
- Integración de chat: Añadir un nuevo proveedor a discourse-chat-integration
- extensión markdown-it: Reempaquetando una extensión markdown-it como un plugin de Discourse
- Autocarga de Rails: Estructurando un plugin para la autocarga de Rails
Temas
Componentes
- …