{{ hero_title or 'Bienvenido' }}
{{ hero_description or '' }}
# 🎨 Sistema de Templates - GKACHELE™ **© 2025 GKACHELE™. Todos los derechos reservados.** ## 📋 Descripción Sistema de templates similar a WordPress que permite: - ✅ Escanear automáticamente todos los templates disponibles - ✅ Seleccionar/cambiar template desde el customizer - ✅ Cargar configuración automáticamente desde `config.json` - ✅ Aplicar colores y tipografía por defecto del template --- ## 📁 Estructura de un Template Para añadir un nuevo template, simplemente crea una carpeta en `demo/themes/` con esta estructura: ``` demo/themes/ └── mi-template/ ├── config.json (OBLIGATORIO) └── template.html (OBLIGATORIO) ├── style.css (OPCIONAL) └── preview.jpg (OPCIONAL - para mostrar preview) ``` --- ## 📝 Formato de `config.json` ```json { "name": "Nombre del Template", "rubro": "restaurante", "description": "Descripción del template", "sections": [ "hero", "menu", "horarios", "reservas", "contacto" ], "colors": { "primary": "#c94d4d", "secondary": "#d97757", "accent": "#f4a261", "text": "#2c2c2c" }, "typography": { "font_family": "Roboto", "headings": "Playfair Display" }, "features": { "menu_url": true, "horarios": true, "reservas": true } } ``` ### Campos del `config.json`: - **`name`**: Nombre visible del template - **`rubro`**: Categoría (restaurante, gimnasio, general, etc.) - **`description`**: Descripción breve - **`sections`**: Array de secciones disponibles - **`colors`**: Colores por defecto (primary, secondary, accent, text) - **`typography`**: Tipografía por defecto - **`features`**: Características del template --- ## 🚀 Cómo Añadir un Nuevo Template ### Paso 1: Crear la carpeta ```bash mkdir demo/themes/mi-nuevo-template ``` ### Paso 2: Crear `config.json` Copia el formato de arriba y ajusta los valores. ### Paso 3: Crear `template.html` Usa Jinja2 para variables dinámicas: ```html
{{ hero_description or '' }}
``` ### Paso 4: ¡Listo! El sistema lo detectará automáticamente al recargar. --- ## 🔧 Funciones del Sistema ### `scan_available_themes()` Escanear todos los templates disponibles y cargar sus configuraciones. ### `get_theme_config(theme_id)` Obtener configuración de un template específico. ### `get_themes_by_rubro(rubro)` Obtener templates filtrados por rubro. --- ## 🌐 Endpoints API ### `GET /api/themes` Listar todos los templates disponibles. **Query params:** - `rubro`: Filtrar por rubro (opcional) **Respuesta:** ```json { "success": true, "themes": { "restaurante-moderno": { "id": "restaurante-moderno", "name": "Restaurante Moderno", "description": "Tema elegante para restaurantes", "rubro": "restaurante", "colors": {...}, "typography": {...} } }, "total": 3 } ``` ### `GET /api/themes/{{ hero_description or '' }}