Ir al contenido
Código en GitHub

Versión 0.3 · el formato puede cambiar hasta la 1.0

Teje sitios estáticos con PHP.

Ehundu convierte Markdown, datos en YAML y plantillas Twig en un sitio de HTML plano. Desde la terminal o desde un proceso web, en cualquier alojamiento que ejecute PHP.

Primeros pasos Ver el código

composer require ehundu/ehundu


Cómo funciona

Una carpeta entra, un sitio sale.

  1. Escribe

    Cada página es un Markdown con un front matter corto. Lo que comparten todas las de una carpeta, como su etiqueta o el patrón de su URL, se escribe una sola vez en su _datos.yml.

    estructura
    mi-sitio/
      sitio.yml
      contenido/
        index.md
        blog/
          _datos.yml
          primer-articulo.md
      plantillas/
        pagina.twig
      publico/
        img/
          portada.jpg
  2. Compón

    Las plantillas son Twig, con colecciones y fechas en el idioma de cada página. Los atajos insertan imágenes, vídeos o documentos sin escribir HTML en el texto.

    blog/primer-articulo.md
    ---
    titulo: Primer artículo
    fecha: 2026-10-01
    ---
    
    Texto del artículo en **Markdown**.
    
    [imagen fichero="img/portada.jpg" alt="La portada"]
  3. Publica

    Una orden compila el sitio en HTML plano y otra lo sube a una carpeta, por FTP, por SFTP o a un almacenamiento compatible con S3. Solo sube lo que ha cambiado.

    terminal
    $ ehundu compilar mi-sitioCompilado: 2 páginas y 1 fichero en 0,09 s. $ ehundu desplegar mi-sitioCompilado: 2 páginas y 1 fichero en 0,07 s.  subido    img/portada.jpg  subido    blog/primer-articulo/index.html  subido    index.html  subido    sitemap.xmlDesplegado en sftp://yo@ejemplo.com/www: 4 ficheros (16 kB) subidos en 0,62 s.

Lo que lo hace distinto

Compila también desde la web.

Los generadores habituales están pensados para la línea de comandos. En Ehundu, la orden de consola es una capa fina sobre una biblioteca, y un programa PHP puede usar esa misma biblioteca para compilar el sitio dentro de una petición web, en un alojamiento compartido corriente.

Así, una herramienta de edición puede guardar un cambio y publicar el sitio al momento. Y quien prefiera su editor de texto obtiene exactamente el mismo resultado desde la terminal. Los errores y los avisos están en español y señalan el fichero y la línea, para enseñarlos tal cual.

publicar.php
use Ehundu\CompiladorEnProceso;
use Ehundu\Proyecto;

$proyecto = Proyecto::abrir('/ruta/a/mi-sitio');
$informe = (new CompiladorEnProceso())->compilar($proyecto);

echo $informe->resumen();
// Compilado: 2 páginas y 1 fichero en 0,09 s.

foreach ($informe->avisos as $aviso) {
    echo $aviso; // con su fichero y su línea
}

Principios

Pocas piezas, todas tuyas.

  • PHP puro

    Funciona con PHP 8.4 o superior y no necesita ejecutar programas externos ni extensiones poco habituales. Si un alojamiento ejecuta PHP, puede ejecutar Ehundu.

  • Tu contenido son ficheros

    Markdown, YAML, plantillas y archivos estáticos. Sin base de datos y sin estado oculto; una carpeta copiada a otra máquina compila igual.

  • Sin depender de servicios

    Se apoya en software libre que se puede conservar y mantener, nunca en servicios cuyas condiciones pueden cambiar de un día para otro. Publica sin APIs propias de ningún proveedor.

  • En español

    Las carpetas se llaman contenido, plantillas o publico, y los campos titulo, fecha o etiquetas. La comunidad hispanohablante que hace la web merece herramientas pensadas en su idioma.


Nidel, un perro color canela con las orejas de punta y la lengua fuera, con el hilo de una aguja atado al collar rojo.

El nombre

Una aguja en un pajar.

Ehundu significa «tejer» en euskera. No es casual: web, en inglés, es literalmente un tejido, y un generador de sitios hace eso mismo, entrelazar contenido y plantillas hasta formar páginas.

La aguja del logotipo también tiene nombre. Nidel estaba en un pajar el día que lo adopté, y su nombre suena a needle, «aguja» en inglés. Fue, literalmente, encontrar una aguja en un pajar.

Se pronuncia más o menos «e-ún-du».

Estado del proyecto

Hilo a hilo.

Ehundu ya compila, previsualiza y publica sitios reales, también en varios idiomas. Hasta la 1.0 el formato todavía puede cambiar, y cada cambio queda anotado, con su motivo, en el registro de decisiones.

  1. Ahora

    La 0.3

    Markdown, datos y plantillas Twig, atajos, previsualización que rehace solo lo que cambia, despliegue a una carpeta, por FTP, SFTP o a S3, y sitios en varios idiomas.

  2. Después

    La 1.0

    El formato cerrado, para que ningún cambio posterior obligue a tocar los sitios hechos, y la compilación por lotes para los procesos web con límite de tiempo.

  3. Más adelante

    Lo que crece

    Componentes con parámetros, imágenes en varios tamaños, paginación de listados y búsqueda. El formato ya deja sitio para todo ello.