En lugar de proporcionar mecanismos para editar esas 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.
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, si no 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:
- Ninguno (en cuyo caso se pierde sólo el histórico)
- SubVersion
- Git
- tla
- Mercurial
- Elegir un lenguaje fuente diferente (ó usar varios a la vez):
- 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 ejemplos de uso del programa, tanto para crear
páginas estáticas como para crear comunidades.
Si se quiere ampliar Ikiwiki de alguna manera, dispone de una excelente
documentación para escribir plugins y el autor parece bastante
dispuesto a aceptar parches y colaboraciones.
Particularmente lo estoy usando para reconstruir mis páginas, con mucha
comodidad (si exceptuamos las hojas de estilo, que no son lo mío) y si aún no
está instalando definitivamente es porque ando peleándome con la
reescritura de direcciones en Apache,
ya que le he dado una vuelta considerable al sitio y hay lugares que
tienen que permanecer accesibles.
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. En próximas entregas me gustaría contar con más detalle
la puesta en marcha y el uso, incluyendo el acceso vía CGI, que aún no he
probado y que puede ser útil si lo que se quiere es un wiki normal.