Un boilerplate modular para desarrollo front-end con PUG/JADE, enfocado en la creación de sitios web estáticos pre-compilados.
Este boilerplate proporciona una arquitectura estructurada para el desarrollo front-end utilizando el motor de plantillas PUG. Está diseñado siguiendo principios de modularidad, reutilización y separación de responsabilidades, permitiendo un flujo de trabajo eficiente y organizado.
Una característica distintiva de este proyecto es el uso de la compatibilidad de HTML con PUG, donde solo los elementos específicos de PUG utilizan su sintaxis nativa, mientras que el resto del contenido se escribe utilizando bloques HTML estándar dentro de los archivos PUG.
La arquitectura facilita el desarrollo local con compilación automática y está optimizada para el despliegue de archivos estáticos en entornos de producción con servidores web de alto rendimiento.
/
├── assets/ # Recursos estáticos compilados
│ ├── css/ # Estilos
│ ├── img/ # Recursos gráficos
│ │ └── brands/ # Identidad visual
│ └── js/ # Scripts
│ └── custom/ # Scripts personalizados
├── src/ # Código fuente
│ ├── components/ # Componentes modulares
│ ├── data/ # Gestión de datos
│ │ └── collections/ # Colecciones de datos estructurados
│ ├── functions/ # Lógica funcional
│ │ └── utilities/ # Funciones de utilidad
│ ├── includes/ # Fragmentos estructurales
│ ├── layouts/ # Plantillas base
│ ├── plugins/ # Integraciones externas
│ └── views/ # Páginas y vistas
│ └── sections/ # Secciones específicas
├── index.html # Punto de entrada compilado
└── prepros-6.config # Configuración de compilación
- Modularidad: Separación clara de responsabilidades en componentes independientes y reutilizables.
- Gestión de Datos Centralizada: Sistema para administrar datos globales y específicos de manera estructurada.
- Abstracción Funcional: Encapsulamiento de lógica en funciones utilitarias reutilizables.
- Compilación Eficiente: Proceso automatizado de transformación de código fuente a archivos estáticos optimizados.
- Separación de Entornos: Clara distinción entre desarrollo local y despliegue en producción.
- Sintaxis Híbrida: Uso de bloques HTML estándar dentro de archivos PUG, aprovechando la compatibilidad de HTML con PUG para mantener la claridad del código.
- Capa de Plantillas: Sistema de generación de HTML basado en componentes.
- Capa de Procesamiento: Herramientas de compilación y transformación de archivos.
- Capa de Despliegue: Configuración para servidores web de alto rendimiento.
- Capa de Interactividad: Funcionalidad del lado del cliente.
- Capa de Presentación: Estilos y diseño visual.
-
Fase de Desarrollo:
- Creación y modificación de archivos fuente en la estructura
src/. - Compilación automática de cambios mediante el sistema de procesamiento.
- Visualización en tiempo real con servidor de desarrollo integrado.
- Creación y modificación de archivos fuente en la estructura
-
Fase de Compilación:
- Transformación de archivos fuente a formatos finales según configuración.
- Generación de estructura de salida con rutas personalizadas.
- Optimización de recursos para rendimiento.
-
Fase de Despliegue:
- Transferencia de archivos compilados al entorno de producción.
- Configuración del servidor web para servir archivos estáticos.
- Optimización de entrega de contenido al usuario final.
El sistema de compilación se configura mediante un archivo de configuración centralizado que define:
- Rutas de entrada y salida para los archivos fuente.
- Reglas de transformación para diferentes tipos de archivos.
- Configuración del entorno de desarrollo local.
- Opciones de optimización para archivos compilados.
// Implementación de componentes reutilizables
+component(param1, param2)// Acceso al sistema centralizado de datos
<p>#{variable_global}</p>// Implementación de funciones utilitarias
<p>#{stringUtility("valor de entrada")}</p>
<p>#{formatUtility("valor para formatear")}</p>
<p>#{calculationUtility(numericValue)}</p>Este proyecto aprovecha la compatibilidad de HTML con PUG para simplificar el desarrollo:
// Bloques HTML estándar dentro de archivos PUG
<div class="container">
<h1>Título de la página</h1>
<p>Contenido en HTML estándar</p>
</div>// Características específicas de PUG
include ../includes/head
+component(param1, param2)
- const variable = 'valor'
<p>Valor dinámico: #{variable}</p>Esta combinación permite aprovechar las ventajas de PUG (inclusiones, mixins, variables) mientras se mantiene la familiaridad de la sintaxis HTML para la estructura principal del contenido.
-
Requisitos del Sistema:
- Sistema de compilación compatible
- Sistema de control de versiones
- Entorno de servidor web para producción
-
Configuración de Desarrollo:
- Clonar o descargar el boilerplate
- Configurar herramienta de compilación
- Iniciar entorno de desarrollo local
-
Configuración de Producción:
- Configurar servidor web
- Implementar estrategia de despliegue
- Optimizar entrega de contenido estático
Para utilizar este proyecto con Prepros Pro 6, siga estos pasos:
-
Configuración Inicial:
- Arrastre la carpeta completa del proyecto a la interfaz de Prepros Pro 6.
- Prepros detectará automáticamente la configuración desde el archivo
prepros-6.config.
-
Proceso de Compilación Manual:
- A medida que se generan nuevas rutas a través de carpetas, es necesario compilar manualmente los archivos PUG correspondientes.
- Los archivos en las siguientes carpetas requieren compilación manual cuando se crean o modifican:
src/views/category/: Páginas de categorías del sitiosrc/views/single/: Páginas únicas como sobre-nosotros, contacto, etc.
-
Ejemplos de Páginas que Requieren Compilación Manual:
- Páginas de categoría: blog, productos, servicios, etc.
- Páginas únicas: sobre-nosotros, contacto, términos-y-condiciones, políticas-de-privacidad, etc.
-
Proceso de Compilación:
- Para cada nueva página, haga clic derecho en el archivo PUG correspondiente en Prepros.
- Seleccione "Compile" para generar el archivo HTML.
- Los archivos se compilarán siguiendo la estructura definida en
prepros-6.config, generalmente con el nombreindex.htmlen la carpeta de destino.
Este proceso asegura que todas las páginas del sitio se compilen correctamente y mantengan la estructura de rutas adecuada para su despliegue en producción.
El boilerplate está diseñado para ser extendido mediante:
- Creación de nuevos componentes modulares
- Ampliación del sistema de datos
- Adición de nuevas funciones utilitarias
- Integración con sistemas externos
- Personalización de plantillas base
Este boilerplate fue desarrollado como una solución arquitectónica para la creación eficiente de sitios web estáticos con un enfoque en modularidad y mantenibilidad.
Este proyecto está disponible como código abierto bajo la licencia MIT.