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

← Todas las novedades

Ehundu 0.3.0

Sitios en varios idiomas, con un fichero por idioma en el mismo árbol: contacto.md y contacto.eu.md son la misma página en castellano y en euskera, sin declararlo en ningún sitio. Los idiomas se declaran en idiomas de sitio.yml, y el primero es el predeterminado. Un sitio en un solo idioma no escribe nada de esto y compila igual que con la 0.2 (docs/formato.md (se abre en una pestaña nueva), §15, decisiones 72 a 81).

Cada idioma con su prefijo en la URL, que Ehundu pone también a la URL escrita en url y a la de un patrón: url: /instalazioak/ en instalaciones.eu.md da /eu/instalazioak/, y el patrón de un _datos.yml vale para todos los idiomas.

Las traducciones, en las plantillas: pagina.idioma, pagina.traducciones (las versiones publicadas de la página, ella incluida) y sitio.idiomas, con lo que una plantilla escribe los hreflang y un selector de idioma que nunca enlaza a una página que no existe. Traducir solo una parte del sitio es lo normal: no hay respaldo automático ni avisos por las traducciones que faltan.

Colecciones y datos de cada idioma. coleccion() da las páginas del idioma de la página que la pide, o de otro con coleccion('blog', 'eu') o 'todos'. datos/menus.eu.yml se mezcla con datos/menus.yml en las páginas en euskera, _datos.eu.yml va encima del _datos.yml de su carpeta, y lo que no se traduce de una página puede ir en un .yml con su nombre, común a todas sus versiones.

fecha() en el idioma de la página, con castellano, euskera («2025eko martxoaren 18a») e inglés; también en los sitios de un solo idioma que no están en castellano.

Un sitemap con todos los idiomas y un feed por idioma (/feed.xml, /eu/feed.xml).

La compilación incremental de ehundu servir sabe qué traducciones mira cada página y sigue dando siempre lo mismo que una compilación completa (docs/compilacion.md (se abre en una pestaña nueva)).

Cambios para los sitios de la 0.2: sitio.idioma vale es si sitio.yml no lo dice, y el feed lleva siempre xml:lang; un .yml dentro de contenido/ con el nombre de una página deja de copiarse a salida/, porque son sus campos comunes; idioma pasa a ser un campo reservado; y dos ficheros de la misma página en el mismo idioma (contacto.md y contacto.twig) detienen la compilación.

Esta versión en GitHub (se abre en una pestaña nueva), con el ehundu.phar.