Interfaz de Línea de Comandos
Chloroplast soporta varios subcomandos. Se recomienda primero hacer cd a la carpeta raÃz de tu proyecto, y ejecutar los comandos con los valores predeterminados según sea apropiado.
Subcomando new
El subcomando new te permite arrancar un sitio chloroplast copiando archivos a una carpeta de destino.
chloroplast new conceptual carpetaObjetivo
Esto creará carpetaObjetivo (si no existe ya), y copiará archivos de la plantilla conceptual. Luego puedes ejecutar los siguientes comandos para construir y previsualizar el sitio localmente:
cd carpetaObjetivo
chloroplast build
chloroplast host
parámetros
conceptual: El segundo parámetro posicional después denew.- Actualmente esto solo soportará
conceptual, que será una copia de esta documentación. - Eventualmente tendremos más plantillas, y eventualmente abriremos a contribuciones de la comunidad.
- Actualmente esto solo soportará
carpetaObjetivo: el tercer parámetro posicional después denewes el nombre de la carpeta objetivo donde se colocarán los archivos de plantilla.
Subcomando build
El subcomando build construirá un sitio Chloroplast
chloroplast build --root ruta/a/SiteConfig/ --out ruta/a/salida
parámetros
root: la ruta al directorio que contiene un archivoSiteConfig.ymlout: la ruta al directorio donde se generará el HTML resultante.normalizePaths: por defectotrue, que normaliza todas las rutas a minúsculas. Establece esto a false para que las rutas de salida coincidan con las mayúsculas y minúsculas de origen.errorLogPath: ruta opcional para escribir información detallada de errores a un archivo de registrobuildVersion: cadena de versión opcional para agregar a las referencias CSS y JavaScript para invalidar la caché. Si no se proporciona, se genera automáticamente una marca de tiempo en el formatoyyyyMMddHHmmss.
Los parámetros anteriores utilizarán por defecto el directorio de trabajo actual para la ruta raÃz, y un directorio out/ en esa misma ruta si ambos parámetros se omiten.
El comando build renderizará todos los archivos index.md en archivos index.html correspondientes, y copiará todo lo demás a la misma ubicación correspondiente (imágenes, estilos, etc).
Además, el comando build generará automáticamente archivos XML de sitemap si un baseUrl está configurado en tu SiteConfig.yml. Esto ayuda con el SEO y la indexación de motores de búsqueda.
Manejo de Errores
El comando build proporciona manejo integral de errores para ayudar a diagnosticar problemas sin sobrecargar la salida de consola:
- Salida de Consola: Mensajes de error limpios y concisos que muestran la información esencial necesaria para solucionar problemas
- Archivo de Registro de Errores: Información detallada de errores incluyendo trazas completas de pila y código fuente generado
Configurando el Registro de Errores
Puedes configurar el registro de errores de dos maneras:
1. Parámetro de LÃnea de Comandos:
chloroplast build --errorLogPath /ruta/a/registro-errores.txt
2. Configuración en SiteConfig.yml:
# Configuración de registro de errores
errorLogPath: logs/build-errors.log
Beneficios del Registro de Errores
- La consola se mantiene legible: Solo se muestra información esencial de errores en la terminal
- Información completa de depuración: Trazas completas de pila, código fuente generado e información detallada de excepciones se escriben al archivo de registro
- Recolección de múltiples errores: Todos los errores encontrados durante la construcción se recolectan y muestran juntos
- Seguimiento de marcas de tiempo: Cada error incluye información de marca de tiempo para solución de problemas
Ejemplo de Salida de Errores
Salida de Consola:
=== ERRORES DE CONSTRUCCIÓN ===
Se encontraron 1 error(es) durante la construcción:
[20:17:21] Error en 'Inicialización de plantilla': Falló la inicialización del renderizador de contenido
Falló la compilación de plantilla:
Error(es):
- Template.cs(4,26): error CS1010: Nueva lÃnea en constante
- Template.cs(4,61): error CS1002: ; esperado
Detalles del error escritos en: /tmp/build-errors.log
Contenido del Archivo de Registro de Errores:
- Trazas completas de pila de excepciones
- Código fuente completo generado para errores de compilación de plantillas
- Rutas de archivos detalladas y contexto de procesamiento
- Marcas de tiempo para todos los errores encontrados
Subcomando host
El subcomando host inicia un servidor web HTML simple. Útil para previsualización local durante el desarrollo o incluso creación. Si actualizas archivos markdown, el contenido se reconstruirá automáticamente para que solo tengas que actualizar el navegador.
chloroplast host --root ruta/a/raÃz --out ruta/a/html
Puedes simplemente presionar la tecla enter para terminar esta tarea después de detener el servidor web con Ctrl+C en cualquier momento.
Si estás actualizando plantillas razor, también puedes ejecutar este comando en una ventana de terminal separada y dejarlo ejecutándose. De esa manera, mientras ejecutas el subcomando completo build, el contenido y los estilos del front-end se actualizarán, y puedes simplemente actualizar el navegador después de que esa construcción se haya completado.
parámetros
out: Este debe ser el mismo valor que el parámetrooutusado en el comandobuild.
El parámetro anterior utilizará por defecto la carpeta out/ en el directorio de trabajo actual, si se omite.
Generación de Sitemap
El comando build genera automáticamente archivos XML de sitemap cuando un baseUrl está configurado en tu SiteConfig.yml. Esto ayuda a los motores de búsqueda a descubrir e indexar el contenido de tu sitio.
Configuración
Agrega lo siguiente a tu SiteConfig.yml para configurar la generación de sitemap:
# URL base para tu sitio (requerido para la generación de sitemap)
baseUrl: https://tu-sitio.com
# Configuración opcional de sitemap
sitemap:
enabled: true # Habilitar/deshabilitar generación de sitemap (por defecto: true)
maxUrlsPerSitemap: 50000 # URLs máximas por archivo de sitemap (por defecto: 50000)
Comportamiento
- Sitemap único: Para sitios con menos URLs que el umbral configurado, se genera un único archivo
sitemap.xml - Múltiples sitemaps: Para sitios más grandes, se crean múltiples archivos de sitemap (
sitemap1.xml,sitemap2.xml, etc.) con un archivo Ãndice de sitemap (sitemap.xml) que los referencia - Filtrado de contenido: Solo se incluyen archivos HTML en los sitemaps; recursos como CSS, imágenes y otros archivos se excluyen
- Marcas de tiempo: Cada entrada de URL incluye una marca de tiempo de última modificación basada en la fecha de modificación del archivo
Invalidación de Caché
Chloroplast agrega automáticamente parámetros de versión a las referencias CSS y JavaScript para asegurar la invalidación de la caché del navegador cuando se actualizan los recursos. Esta caracterÃstica ayuda a prevenir que los usuarios vean estilos o scripts obsoletos después de los despliegues.
Configuración
Agrega lo siguiente a tu SiteConfig.yml para controlar el comportamiento de invalidación de caché:
# Configuración de invalidación de caché
cacheBusting:
enabled: true # Habilitar/deshabilitar invalidación de caché (por defecto: true)
Uso en Plantillas
En tus plantillas Razor, usa el método WithVersion() para agregar parámetros de versión a las URLs de recursos:
<!-- CSS con invalidación de caché -->
<link href="@WithVersion("/assets/main.css")" rel="stylesheet" />
<!-- JavaScript con invalidación de caché -->
<script src="@WithVersion("/assets/site.js")" type="text/javascript"></script>
Uso en LÃnea de Comandos
Puedes especificar una versión de construcción personalizada al ejecutar el comando build:
# Usar una versión personalizada
chloroplast build --buildVersion "v1.2.3"
# Usar versión de marca de tiempo automática (por defecto)
chloroplast build
Comportamiento
- Cuando está habilitado: Las URLs de recursos se anexan con el parámetro
?v={version}(ej.,/assets/main.css?v=20231215123456) - Cuando está deshabilitado: Las URLs de recursos permanecen sin cambios (ej.,
/assets/main.css) - Versionado automático: Si no se especifica
--buildVersion, se genera automáticamente una marca de tiempo en formatoyyyyMMddHHmmss - Manejo de parámetros de consulta: El parámetro de versión se anexa correctamente con
&si la URL ya contiene parámetros de consulta