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

[[!tags ikiwiki setup perl sar]]

Personalizando Ikiwiki

Decía en la entrega anterior que para crear un wiki completamente personalizado es necesario alterar los parámetros de funcionamiento, y la mejor manera de llevarlo a cabo es usando un archivo de configuración.

El autor, Joey Hess, proporciona un archivo en su web, además de otro junto con el paquete. Se llama ikiwiki.setup, y es un pequeño programa Perl que se le proporciona al programa con una opción especial (--setup).

$ cd /home/victor/work/wiki
$ cp /usr/share/doc/ikiwiki/html/ikiwiki.setup .
$ svn add ikiwiki.setup

Antes de modificarlo vamos a crear un estructura de directorios con los que trabajar:

$ mkdir sources base templates
$ cp /usr/share/ikiwiki/templates/* templates
$ cp /usr/share/ikiwiki/basewiki/style.css base
$ svn add sources base templates

Hemos guardado un copia de las plantillas que utiliza Ikiwiki para tener la opción de personalizar nuestras páginas sin tocar las que vienen con el paquete, así como una hoja de estilo básica con lo que empezar a jugar.

El archivo de configuración

Cambiamos el wiki editando el archivo ikiwiki.setup que ya tenemos, de manera que quede así:

#!/usr/bin/perl
#
# Programa de configuración de ikiwiki; debe usarse con el parámetro --setup,
# y recuerde volver a usarlo cada vez que lo modifique o los cambios no
# tendrán efecto
# 

use IkiWiki::Setup::Standard {
    wikiname    =>  "Taquiones",
    adminuser   =>  [ q(victor) ],
    adminemail  =>  q(victor@taquiones.net),

    # Rutas físicas y lógicas 
    srcdir      =>  "/home/victor/work/wiki/sources/",
    destdir     =>  "/home/victor/public_html/wiki",

    url         =>  "http://localhost/~victor/wiki",
    templatedir =>  "/home/victor/work/wiki/templates",
    underlaydir =>  "/home/victor/work/wiki/base",

    #   Repositorio 
    rcs         =>  "svn",
    svnrepo     =>  "/home/victor/lib/svn",
    svnpath     =>  "trunk",

    #   Programas auxiliares: wrappers
    wrappers    =>  [

                    ],

    #   ¿ Crear RSS para los cambios en el wiki ? 
    rss         =>  1,

    #   No queremos incluír comentarios en todas las páginas.
    discussion  =>  0,

    #   Queremos excluir los siguientes tipos de archivo del wiki
    exclude     =>  qr/\.(orig|bak)/,

    #   Formato de fecha y hora
    timeformat  =>  '%c',

    #   Languaje a utilizar (debe ser UTF-8)
    locale      =>  'es_ES.UTF-8',

    # Registro de eventos: todo activo por el momento
    verbose     =>  1,
    syslog      =>  0,

    #   Lista de complementos que queremos activar
    add_plugins =>  [
                qw/tag map toc/,
                ],
};

Quizás lo más destacable es que estamos indicándole

  • dónde obtener los archivos fuente del wiki (parámetro srcdir)
  • dónde buscar si no encuentra nada en el anterior (parámetro underlaydir)
  • dónde dejar el resultado (parámetro destdir) y
  • dónde mirar cuando se usen plantillas en algún fuente (parámetro templatedir)

De momento no queremos que cree ningún wrapper, así que dejamos la opción vacía, pero que exista ó no funcionará. Ikiwiki es bastante ligero, tanto como para dar por supuestas algunas cosas, y no se recupera bien de errores como falta de datos en la creación de un wiki. Creo que, acertadamente, el autor asume que existirá cierto nivel de conocimientos en los usuarios de su programa.

Ahora vamos a ponerlo en marcha ...