Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > IkiWiki: un compilador de wikis

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:
    • Ninguno (en cuyo caso se pierde tan sólo el histórico de cambios)
    • SubVersión
    • 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 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.

Páginas sobre ikiwiki en taquiones:

mar 29 sep 2009 11:55:19 BST Ikiwiki y git
mar 29 sep 2009 11:55:19 BST Notas sobre la plantilla page.tmpl de Ikiwiki
mar 29 sep 2009 11:55:19 BST Seleccionando páginas en ikiwiki
mar 29 sep 2009 11:55:19 BST Ikiwiki: notas sobre hojas de estilo
mar 29 sep 2009 11:55:19 BST Ikiwiki en Debian estable
mar 29 sep 2009 11:55:19 BST Nuestra plantilla para Ikiwiki