Ikiwiki: un compilador de wikis
El programa ikiwiki es un compilador de wikis escrito en Perl, cuyo autor es Joey Hess.
Introducción
En lugar de proporcionar mecanismos para editar las páginas directamente en el navegador, Ikiwiki toma un grupo de archivos fuente, los procesa, filtra, relaciona y convierte en páginas HTML completamente estáticas. Eso no impide, no obstante, que exista un plugin CGI para efectuar esas operaciones en línea.
Por una parte utiliza un gestor de versiones, como SubVersion, tanto para almacenar los contenidos como para gestionar los historiales de cambio. Por otra parte usa un lenguaje de marcas simple, MarkDown, con el que tras un par de añadidos, como son los enlaces wiki y las directivas de preprocesado, es posible describir el sitio que estamos creando como si fuese un wiki, esto es, pensando más en la semántica que en la gramática.
Es más, el autor desde el principio se basa en que para crear las páginas debe bastar con editar los archivos fuente y enviar los cambios al repositorio. Aprovechando características concretas de SubVersion, como los hook que pueden definirse en un repositorio para operaciones concretas (en este caso post-commit), Ikiwiki permite compilar programas que reconstruyan las páginas automáticamente y los instala en los lugares adecuados para ello.
Además, intenta ser lo más inteligente posible respecto a qué ha cambiado, al estilo de make, de manera que si el cambio no es de configuración, sino de contenido, las actualizaciones son muy rápidas.
Así pues, el método de trabajo consiste en, una vez instalado el repositorio y creada una configuración concreta para el sitio, bajarse una copia de trabajo, modificarla y enviar los cambios. Muy simple ... pero no se queda ahí, dispone de otras muchas características que intentaré resumir a continuación.
Desde la versión 1.1 Ikiwiki incluye un sistema de plugins que permite muchas cosas:
- Elegir un sistema de versiones diferente:
- Elegir un lenguaje fuente diferente (ó usar varios a la vez):
- MarkDown (con ampliaciones)
- HTML
- Vim Outliner
- reStructuredText
- Y otros menores como:
- Editar las páginas a través del navegador mediante CGI, con identificación de usuarios incluída desde el principio.
- Crear bitácoras, incluyendo un sistema de comentarios un tanto rudo, pero que no chirría.
Cabe decir también que utiliza UTF-8 para todo, y que genera XHTML 1.0 válido, puesto que se basa en plantillas para crear las páginas. Plantillas que, por cierto, pueden cambiarse para darle el toque concreto al lugar que estamos creando, y perder esa estética tan de wiki que tiene por defecto (si es que nos molesta, obviamente).
La lista de usuarios de Ikiwiki muestra varios usos actuales del programa, mientras que la página de ejemplos da algunas guías sobre como implementar un blog ó la página de un programa.
Si se quiere ampliar Ikiwiki de alguna manera, dispone de una excelente documentación para escribir plugins y el autor está bastante dispuesto a aceptar parches y colaboraciones (con las reticencias normales en un programador avezado).
Resumiendo: una vez que le coges el tranquillo, es un sistema excelente para crear sitios web en el caso de que estés acostumbrado a la consola y los repositorios.