Introducción
Por las razones expuestas acá (que a pesar de referirse a un ámbito académico también aplican para nosotros) y acá no creo que Mediawiki sea el software más adecuado para nuestro Wiki. Creo que Moin puede ser un excelente software para esto por su modularidad, extensibilidad y estar escrito en Python (puede ver estos argumentos más detalladamente acá) y he estado haciendo unas pruebas sobre esta migración.
La idea es que la migración se haga teniendo en cuenta a los usuarios actuales del Directorio, para poder usar sus aprendizajes pasados, pero que empodere aprendizajes y usos futuros que en este momento no se dan. Por ejemplo la posibilidad de publicar mapas mentales y otro tipo de material interactivo más variado.
El proceso
Instalar MoinMoin y el tema de la Wikipedia
Empecé por Instalar la edición de escritorio y unos temas que la hacen similar al tema que usamos en el Directorio, es decir, el tema por defecto de la Wikipedia. (los aprendizajes del proceso, que sirven para replicarlo a los interesados, están documentadados en el artículo MoinMoin).
Conseguir un snapshot de la base de datos
Luego descargué un snapshot de la base de datos del Directorio, del día 18 de diciembre de 2005 (quienes quieran conseguir un snapshot de esta base de datos tienen que comunicarse con Aztlek, ya que su ubicación aún no es pública).
Posteriormente procedemos con la instalé mysql y las herramientas mínimas de php. Para esto digitamos, como superusuario:
# apt-get install php4-cli # apt-get install php4-mysql # apt-get install mysql-server
Esto puede tardar un tiempo (particularmente por los archivos de mysql).
El Mensaje Final del proceso de instalación dice algo como:
See /usr/share/doc/mysql-server-4.1/README.Debian.gz for more information.
Y vaciamos el snapshot del Directorio en una base de datos recien creada para ello, que llame wikisoftlibre. Para esto entramos a la base de datos y creamos un usuario con permisos de superusuario que no se llame root (esto es para evitar confusiones con el superusuario de la máquina unix):
$ mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO 'offray'@'localhost'; mysql> exit;
Ahora entramos como el usuario al que le asignamos los privilegios de superusuario y creamos una base de datos vacia, donde descargaremos todos los contenidos del Directorio:
$ mysql --user=offray mysql mysql> CREATE DATABASE wikisoftlibre; mysql> exit
Vamos a donde se realizó la descarga y descomprimimos e importamos el archivo a la base de datos recien creada:
$ cd Documentos/Comunidad/ $ bzip2 -dc eldirectorio_2005-12-18.sql.bz2 | mysql -u offray wikisoftlibre
Ejecutar el script modificado de conversión
El script de MediaWikiConverter se encargaría de la migración, pero tiene un inconveniente que le hace entrar en un loop infinito y no le permite finalizar la conversión, llegando a consumir toda la memoria asignada para la ejecución del script (si se asigna más memoria, también la consume toda). Este loop ocurre cuando intenta realizar la conversión de la sintaxis de Mediawiki a la sintaxis de Moin. Sin embargo, no es necesario hacer la transformación de sintaxis para migrar las páginas en un enfoque alternativo que explicaré a continuación.
He creado tres archivos para lidiar con esto:
MediaWikiExtractor: El primero es un script modificado a partir de MediaWikiConverter, que sólo se conecta al snapshot de la base de datos y extrae los títulos de los artículos y sus contenidos. Note que se han llenado los campos del script de acuerdo a la configuración en mi máquina (la base de datos es wikisoftlibre, el usuario es offray y por supuesto el servidor es el local). También se ha omitido el código que se encarga de la traducción de sintaxis, así como todo el código innecesario en este script, para que cumpla sólo un cometido: extraer el contenido pertinente en la base de datos de mediawiki y organizarlo en carpetas de acuerdo al tipo (artículos, discusión de artículos, usuarios o discusión de usuarios). Para el resto de la migración se usa otro script.
MigradorMediaAMoin.py : Si se tiene instalado el parser media dentro de Moin, podemos usar páginas con la sintaxis de mediawiki dentro de moin con tan sólo indicar que la sintaxis es distinta (esto también está en el artículo MoinMoin) y agregando la tabla de contenidos para esto se colocan las siguientes líneas
#format media [[TableOfContents()]]
al inicio de cada página que provenga de nuestro "antiguo" wiki. Este script también se encarga de migrar las categorías al formato de Moin y de catalogar las páginas de usuarios.
parser.txt: Archivo de texto plano. Contiene simplemente dos líneas que indican que el parser a usarse para interpretar es el de mediawiki y que se debe colocar una tabla de contenidos al comienzo de cada artículo.
Estos Scripts fueron creados con el editor literato Leo, así que pueden haber unos códigos locos en los comentarios de estos, que no afectan para nada el desempeño (de hecho mejoran la lectura en leo! :-P ).
Los resultados preeliminares
Al final logré obtener dos versiones de páginas muy similares en Wikis diferentes, las del Directorio y las de Moin. Acá están los screenshots (click sobre ellas para agrandar):
Estamos a un cacho!.. Sin embargo...
Quiero ayudar, ¿qué puedo hacer?
El proceso como verán no está terminado, pero ya casi. ¿Quieren participar?. Acá hay unas cosa que se podrían hacer:
- Instalar Moin y ayudar a evaluarlo (instalar Plugins, extensiones, leer y traducir la documentación, etc.) Para esto sólo basta con instalar la edición de escritorio, pero si además alguien pudiera brindarnos un servidor con Moin y el tema de mediawiki preinstalados, eso sería de lujo!!
Modificar el script MigradorMediaAMoin.py de acuerdo a lo que dice en la sección "Por Hacer" o sugerir nuevas características
Documentar los avances preeliminares (sí no importa que sean preeliminares), en páginas como esta, o en su blog e informar a los demás a través del Directorio de estos avances.
En la página WantedPages hay un listado de referencias a páginas inexistentes.
Una minoría de ellas contiene subpáginas /Talk que son el sustituto que coloca el parser de mediawiki a las páginas de discusión del namespace Discusión: que proveía mediawiki. Esta es una indicación, por lo general, de que estas páginas contienen información que está en formato mediawiki aún y también hacen referencia a págínas como categorías inexistentes, así que es un lugar de refencia sobre lo que aún falta por migrar. Recuerden tener en cuenta las Notas de migración, para los cambios de etiquetamiento.
- Otra posibilidad es que se apunte a páginas que efectivamente están, pero están mal escritas en los enlaces que las referencian. Se puede colocar adecuadamente la referencia a los enlaces.
- Finalmente está el hecho de que se quiera hacer un enlace a una página que debería existir, pero aún no ha sido creada, si este es el caso y conoces sobre el tema. Crea esta página.
Buscar páginas que contengan la directiva #format wiki, que quiere decir que fueron migradas y cambiar detalles pequeños de sintaxis que aún están en mediawiki y no se escriben de la misma forma en Moin.


