Páginas

Las páginas en Elemental CMS siguen un enfoque limpio y directo. Cada página está autocontenida con sus propios archivos de especificación y contenido, las dependencias se cargan directamente sin empaquetado ni minificación, y los recursos se organizan por idioma para un soporte multilingüe claro.

Creando Páginas #

Crea una nueva página con una estructura limpia y enfocada:

# Crear una nueva página elemental-cms pages create -p home es # Archivos generados: PAGES_FOLDER/es/ ├── home.json # Estructura de metadatos limpia └── home.html # Contenido HTML directo

Gestionando Páginas #

Listando Páginas

# Listar todas las páginas elemental-cms pages list # La salida muestra: * home (es) # * indica cambios locales about (es) # Sin * significa sincronizado * contact (es) # * también puede significar solo local o archivos locales faltantes

Enviando Páginas

# Enviar una página elemental-cms pages push -p home es # Enviar todas las páginas elemental-cms pages push --all

Obteniendo Páginas

# Obtener una página elemental-cms pages pull -p home es # Obtener todas las páginas elemental-cms pages pull --all

Publicando Páginas

# Publicar una página elemental-cms pages publish -p home es # Publicar todas las páginas en borrador elemental-cms pages publish --all

Despublicando Páginas

# Despublicar una página elemental-cms pages unpublish -p home es

Eliminando Páginas

# Eliminar una página elemental-cms pages remove -p home es

Comparando Páginas

# Comparar versiones local y de base de datos elemental-cms pages diff -p home es # Comparar versión en borrador elemental-cms pages diff -p home es --drafts

Dependencias de Páginas #

Las páginas pueden incluir sus propias dependencias, cargadas directamente y solo cuando se necesitan:

{ "name": "home", "language": "es", "title": "Página de Inicio", "cssDeps": [ { "name": "home-styles", "type": "text/css", "url": "css/home.css" # Referencia directa al archivo } ], "jsDeps": [ { "name": "home-behavior", "type": "application/javascript", "url": "js/home.js" # Archivo JavaScript limpio } ] }

Puntos clave sobre las dependencias de páginas:

  • Cada dependencia es un archivo separado y enfocado
  • No se necesita empaquetado ni minificación
  • Los archivos se cargan directamente cuando la página se carga
  • Organización clara por propósito e idioma

Notas Importantes #

Borrador vs Publicado

Las páginas siguen un flujo de trabajo simple:

  • push: Crea/actualiza versión en borrador
  • publish: Hace la página accesible en la web
  • unpublish: Retorna al estado de borrador

Operaciones por Lote

Algunos comandos soportan --all para operaciones masivas:

# Enviar todas las páginas elemental-cms pages push --all # Obtener todas las páginas elemental-cms pages pull --all # Publicar todas las páginas en borrador elemental-cms pages publish --all

Sistema de Respaldo #

El sistema crea automáticamente respaldos al actualizar páginas existentes:

PAGES_FOLDER/es/ ├── home.json ├── home.html └── .bak/ ├── home-1637584752066.json # Respaldo con marca de tiempo └── home-1637584752066.html # Respaldo de contenido correspondiente

Ejemplo de Estructura de Página

Un ejemplo completo de página mostrando el enfoque limpio y directo:

# home.json - Metadatos limpios y dependencias directas { "_id": ObjectId("..."), "name": "home", "language": "es", "title": "Página de Inicio", "description": "Bienvenido a nuestro sitio", "isHome": true, "cssDeps": [ { "name": "home-styles", "type": "text/css", "url": "css/home.css" } ], "jsDeps": [ { "name": "home-behavior", "type": "application/javascript", "url": "js/home.js" } ] } # home.html - Contenido HTML directo <div class="home-page"> <h1>{​{ _("home.welcome") }​}</h1> <div class="content"> {​{ render_snippet('featured-content', page) }​} </div> </div>

Este enfoque asegura que tus páginas permanezcan limpias, mantenibles y eficientes, cargando solo los recursos que necesitan cuando los necesitan.

Content