Ir al contenido
Código en GitHub (se abre en una pestaña nueva)

Documentación · Referencia · El formato de un proyecto

1. Estructura del proyecto

Las carpetas y los ficheros de un proyecto, y lo que escribe el motor.

Versión 0.16

mi-sitio/
  sitio.yml              configuración del sitio
  contenido/             páginas y artículos
    _datos.yml           datos heredados por esta carpeta
    index.md
    blog/
      _datos.yml
      un-articulo.md
  datos/                 datos globales
    cliente.yml
    menus.yml
  plantillas/            layouts
    base.twig
    pagina.twig
  parciales/             fragmentos reutilizables
    cabecera.twig
    listado-articulos.twig
  publico/               se copia tal cual a la raíz del sitio
    css/
    img/
    favicon.ico
  esquema.json           tipos de contenido y campos (lo usan los editores)
  .secretos.yml          credenciales de despliegue (nunca se versiona)
  salida/                resultado del build (nunca se versiona)
  .ehundu/               lo que recuerda el motor entre compilaciones: la memoria de la
                         incremental (§10.5) y el estado de un lote (nunca se versiona)

Reglas:

  • Todo lo que afecta al resultado vive dentro de esta carpeta, salvo el momento en que se compila (§12, regla 3).
  • Al compilar, el motor solo lee de aquí y solo escribe en salida/ y en .ehundu/, lo que recuerda entre compilaciones (§10.5). Fuera del proyecto solo escribe la caché de tipografías de dompdf, si se piden PDF (§10.3), en la carpeta temporal del sistema. El despliegue (§2, despliegue) escribe en el destino que se le pide, y lee del disco el fichero de la clave privada si se le da uno.
  • .ehundu/ es del motor: lo crea él, lleva dentro su propio .gitignore para que no se versione, no se publica ni se lee como contenido, y no afecta al resultado. Se puede borrar cuando se quiera: lo único que se pierde es lo que el motor recordaba (lo avanzado en una compilación por lotes a medias, la memoria de la incremental), y la siguiente compilación será completa.
  • Los nombres de carpeta son fijos; no se configuran. Un proyecto siempre se reconoce igual, y se puede pasar de uno a otro, o migrar muchos, sin averiguar cómo está organizado cada uno.
  • Todo fichero de texto del proyecto (YAML, JSON, Markdown, plantillas, CSS, JavaScript, SVG) es UTF-8. El motor ignora un BOM al principio y pasa \r\n y \r a \n; si un fichero no es UTF-8, el build se detiene con un error que nombra el fichero.

Cerrado: nombres de carpeta en español. La documentación está en español, como el formato (decisión 140).

Ver este documento en GitHub (se abre en una pestaña nueva)