Documentación sobre cómo extender Discourse con plugins, temas y componentes de tema, cómo trabajar con el código base y cómo utilizar la API de Discourse.
Introducción
- Introducción: Introducción al desarrollo en Discourse
Entornos de desarrollo
- Dev Container: Desarrollar Discourse usando un Dev Container
- 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: ¿Cómo 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: Agregar componentes Ember a Discourse
- Kit de UI: El kit de UI de componentes, helpers y modificadores compartidos de Discourse
- Lint y formato: Lintear y formatear código automáticamente antes de los commits
- Pruebas de aceptación: Escribir pruebas de aceptación y de componentes para código Ember en Discourse
- Ejecutar suites de pruebas: Cómo ejecutar las suites de pruebas QUnit del núcleo, plugins y temas de Discourse
- Compatibilidad de versiones: Fijar versiones de plugins y temas para instalaciones antiguas de Discourse (ramas d-compat)
- Propiedad de objetos Ember: Propiedad de objetos Ember (getOwner, inyección 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
- Conversión de modales: Convertir modales de controladores heredados a la nueva API de componentes DModal
- API de DModal: Usar la API de DModal para renderizar ventanas modales (también conocidas como popups/diálogos) en Discourse
- API de JS: Usar la API de JS
- Conectores de salidas de plugin: Usar conectores de salidas de plugin desde un tema o plugin
- modifyClass: Usar modifyClass para cambiar el comportamiento del núcleo
- Creación de rutas: Creación de rutas en Discourse y mostrar datos
- Método de autenticación: Agregar un nuevo método de autenticación ‘gestionado’ a Discourse
- Serialización accidental de modelos ActiveRecord: Prevenir la serialización accidental de modelos ActiveRecord
- Sobrescritura de plantillas: (no recomendado) Sobrescribir plantillas de Discourse desde un tema o plugin
- Objetos de servicio: Usar objetos de servicio en Discourse
- Especificaciones de sistema: Escribir especificaciones de sistema de extremo a extremo para la interfaz de usuario de Discourse
- FormKit: Kit de herramientas de Discourse para renderizar formularios.
- Disparadores de AppEvents: Referencia de disparadores de AppEvents
- Transformadores: Usar transformadores para personalizar valores y comportamiento en el cliente
- Personalización de la lista de temas: Personalizar la lista de temas
- Directrices de CSS: Directrices para clases CSS usando BEM
- Pistas de tipo y validación de JS: Pistas de tipo y validación de JavaScript (typescript)
- Diseño para dispositivos: Diseño para diferentes dispositivos (táctil y hover)
- Diseño para anchos responsivos: Diseño para anchos responsivos (puntos de quiebre, viewport y contenedores)
- Primitivas de gestos: Primitivas de arrastre, redimensionado y gestos
- División de bundles: División de bundles para plugins
Plugins
- Plugin básico: Desarrollando plugins de Discourse - Parte 1 - Crear un plugin básico
- Salida de plugin: Desarrollando plugins de Discourse - Parte 2 - Conectar a una salida de plugin
- Configuraciones del sitio: Desarrollando plugins de Discourse - Parte 3 - Agregar configuraciones de sitio personalizadas
- Configuración de Git: Desarrollando plugins de Discourse - Parte 4 - Configurar git
- Interfaz de administración: Desarrollando plugins de Discourse - Parte 5 - Agregar una interfaz de administración
- Pruebas de aceptación: Desarrollando plugins de Discourse - Parte 6 - Agregar pruebas de aceptación
- Publicar tu plugin: Desarrollando plugins de Discourse - Parte 7 - Publicar tu plugin
- Nuevas localizaciones: Agregar una nueva localización desde un plugin
- Integración de chat: Agregar un nuevo proveedor a discourse-chat-integration
- Extensión de markdown-it: Empaquetar una extensión de markdown-it como plugin de Discourse
- Carga automática de Rails: Estructurar un plugin para la carga automática de Rails
Temas y componentes
- Desarrollo de temas: Desarrollando temas y componentes de tema de Discourse
- Referencia rápida: Guía de referencia rápida para desarrolladores de temas
- Guía para diseñadores: Guía para diseñadores para empezar con temas en Discourse
- Creador de temas: Empezar con Theme Creator y la CLI de temas
- CLI de temas: Instalar la aplicación de consola CLI de temas de Discourse para ayudarte a construir temas
- Estructura de temas: Estructura de temas y componentes de tema
- Múltiples archivos JS: Dividir el Javascript del tema en múltiples archivos
- Múltiples archivos SCSS: Dividir el SCSS del tema en múltiples archivos
- Configuraciones del tema: Agregar configuraciones a tu tema de Discourse
- Objetos para configuraciones de tema: Tipo de objetos para configuración de tema
- Migrar configuraciones: Migrar configuraciones de temas de Discourse
- Metadatos del tema: Agregar metadatos y capturas de pantalla a un tema
- Variables del núcleo: Usar variables del núcleo de Discourse en tu tema
- Cadenas localizables: Agregar cadenas localizables a temas y componentes de tema
- Pruebas E2E: Pruebas de sistema de extremo a extremo para temas y componentes de tema
- Minimizar mantenimiento: Minimizar el mantenimiento de personalizaciones de temas
- Tamaños de fuente: Cambiar tamaños de fuente en tus temas
- Incluir recursos: Incluir recursos (p. ej. imágenes, fuentes) en temas y componentes
- Iconos personalizados: Reemplazar los iconos SVG predeterminados de Discourse con iconos personalizados en un tema
- Modo oscuro: Actualizar temas y plugins para soportar el modo oscuro automático
- Modificadores de tema: Modificadores de tema: Una breve introducción
- Pseudoelementos: Insertar texto o imágenes en cualquier parte de tu sitio usando pseudoelementos CSS
- Componente de fuente: Crear y compartir un componente de tema de fuente
- Idioma de Highlight.JS: Instalar un nuevo idioma para Highlight.JS mediante un componente de tema
- Contenido de la página de inicio: Agregar contenido personalizado que solo aparece en tu página de inicio
- Formato de mensaje: Soporte de Message Format para localización
- Cambios globales de iconos: Cambiar iconos globalmente
- Iconos alternativos: Iconos alternativos
- Estilo de publicación de wiki: Cambiar el estilo de una publicación de wiki
- Esquema de color: Crear y compartir un esquema de color
- Menú de navegación: Usar el parámetro de consulta
navigation_menupara previsualizar la barra lateral u otras opciones - Estilos de contenido de publicaciones: Personalizar el contenido de las publicaciones con tus propios estilos
- Capturas de pantalla de temas: Agregar capturas de pantalla de previsualización a temas de Discourse
- Configuraciones de sitio tematizables: Controlar configuraciones de sitio con temas
Guías generales
- Etiquetado blanco de aplicaciones móviles: Cosas a considerar antes de decidir etiquetar en blanco las aplicaciones móviles de Discourse
- Automatizaciones personalizadas: Crear automatizaciones personalizadas
- Volcado de datos público: Volcado de datos público de Discourse
- Evaluaciones de IA: Ejecutar evaluaciones de IA de Discourse
- Bot de IA vía API: Usar el bot de IA a través de la API de Discourse
Tutorial de desarrollo de temas
- 1 - Introducción: Tutorial para desarrolladores de temas: 1. Introducción
- 2 - Tema remoto: Tutorial para desarrolladores de temas: 2. Creando un tema remoto
- 3 - CSS: Tutorial para desarrolladores de temas: 3. CSS en temas
- 4 - Salidas: Tutorial para desarrolladores de temas: 4. Usar salidas para insertar y reemplazar contenido
- 5 - Componentes: Tutorial para desarrolladores de temas: 5. Construir y usar componentes
- 6 - API de JS: Tutorial para desarrolladores de temas: 6. Usar la API de JS
- 7 - Conclusión: Tutorial para desarrolladores de temas: 7. Cierre