Está a punto de salir la mediawiki 1.17, pero ahora mismo estoy implantando un sistema en producción y siempre es mejor usar versiones estables y ya probadas.
Navegando por la red veo que hay mogollón de extensiones nuevas y que le permiten una potencia descomunal a mediawiki. Para mi esta herramienta es una perfecta herramienta para organizar documentación de cualquier tipo.
Hace unos días que tuve que batallar para que se escogiese mediawiki en lugar de unar un plugin de wiki para drupal. Cabe decir que el módulo wiki de drupal no estaba nada mal, pero siempre es mucho mejor una mediawiki y además con algunas de las extensiones que voy a comentar a continuación.
Como es común he instalado una mediawiki de tal forma que sea fácil montar varias instancias con la misma instalación mediante links simbólicos. Para que este sistema funcione es recomendable usar subdominios en lugar de directorios y redirects, de esta forma tenemos control de dónde se encuentra el wwwroot.
Una de las primeras modificaciones es acortar los nombres de la url, para que no aparezca el “index.php”. Para ello modificamos el fichero LocalSettings.php
$wgScriptPath = "/w"; $wgScript = "$wgScriptPath/index.php"; $wgArticlePath = "/wiki/$1";
Nos aseguramos de comentar las línas que hay por defecto. Luego en el fichero de virtualhost de apache lo dejamos así:
# ACME DocumentRoot /var/www/html/mediawiki_acme/ ServerName acme.acme.com ServerAlias *.acme.acme.com CustomLog logs/mediawiki/mediawiki_acme.log combined ErrorLog logs/mediawiki/mediawiki_acme.err Order allow,deny Allow from all Alias /w/index.php /var/www/html/mediawiki_acme/index.php Alias /wiki /var/www/html/mediawiki_acme/index.php Alias /index.php /var/www/html/mediawiki_acme/index.php Alias /w/skins/ /var/www/html/mediawiki_acme/skins/ Alias /w/images/ /var/www/html/mediawiki_acme/images/ Alias /w/extensions/ /var/www/html/mediawiki_acme/extensions/ Alias /w/ /var/www/html/mediawiki_acme/
Es necesario definir correctamente los alias para que las páginas se muestren correctamente. En mediawiki no hay un fichero .htaccess para dirigir todos los contenidos a tu sitio, así que lo más fácil y rápido es mediante Alias en el fichero de configuración de apache.
Una vez ya tengamos funcionando las páginas vamos a activar varias extensiones:
– Semantic bundle: se trata de un conjunto de extensiones relacionadas con semantic mediawiki, un conjunto de herramientas que mejoran la organización de los datos, dejando a mediawiki ordenar todo el contenido, nosotros simplemente lo que tenemos que hacer es rellenar la información que queremos pero siguiendo unas pautas, para ello hay formularios, plantillas y demás mandangas.
# cd extensions # wget -c https://semantic-mediawiki-bundle.googlecode.com/files/SemanticBundle-20110329.tgz # tar xvzf SemanticBundle-20110329.tgz
y en el fichero LocalSettings.php añadimos estas líneas:
require_once( "$IP/extensions/semantic-bundle/SemanticBundle.php" ); require_once( "$IP/extensions/semantic-bundle/SemanticBundleSettings.php" );
Ahora vamos al directorio de la extensión y creamos el fichero de configuración de las Semantic tools a partir del que hay de ejemplo:
# cd extensions/semantic-bundle/ # cp SemanticBundleSettings.sample.php SemanticBundleSettings.php
Editamos el fichero SemanticBundleSettings.php y activamos los módulos que deseamos activar. Recordad que si estamos trabajando en una wikifarm tendremos que indicarle sus propios ficheros de configuración, sino todos los cambios que se apliquen a una mediawiki se aplicarán por igual en otra y algunas extensiones precisan de configuración de tablas, por lo que puede hacer que en algun momento alguna wiki no funcione.
Una vez añadida la extensión, deberemos inicializar semanticmediawiki mediante un click en nuestra mediawiki. Esto va a generar tablas dónde se va a guardar la información:
http://acme.acme.com/wiki/Special:SMWAdmin
Una vez activado semantic mediawiki podemos activar algunas extensiones interesantes en el fichero SemanticBundleSettings.php, algunas interesantes:
– Semantic Forms
– Semantic Drilldown
– Admin Links: añade un menú a los administradores para hacer tareas de gestión sobre la mediawiki
– Header tabs
– ParserFunctions
– Replace Text
– Widgets: Permite añadir elementos externos
Otra extensión que he instalado en esta mediawiki es SyntaxHighlight_GeSHi, una extensión que nos permite colorear código.
# cd extensions # wget -c http://upload.wikimedia.org/ext-dist/SyntaxHighlight_GeSHi-MW1.17-r85375.tar.gz # tar xvzf SyntaxHighlight_GeSHi-MW1.17-r85375.tar.gz # vi ../LocalSettings.php require_once("$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php"); $wgSyntaxHighlightDefaultLang = "bash";
Y en la página de mediawiki simplemente tendremos que añadir el texto que queramos que coloree con las etiquetas
, en la url de la extensión podemos ver los lenguajes soportados :)
Otra indispensable es FCKEditor, que nos ofrece un potente editor para aquellos usuarios que no són capaces de recordar el wikicode.
# cd extensions # wget -c http://upload.wikimedia.org/ext-dist/FCKeditor-MW1.17-r81394.tar.gz # tar xvzf FCKeditor-MW1.17-r81394.tar.gz # vi ../LocalSettings.php require_once("$IP/extensions/FCKeditor/FCKeditor.php");
Cuando editemos una página nos van a aparecer unos iconos arriba y un vínculo para abrir el editor completo en una pantalla nueva.
Si seguimos con extensiones, he descubierto una que te permite gestionar un poco mejor las discusiones de las páginas, permitiendo que quede mucho más claro de qué hilo viene un texto, además si los usuarios no están muy habituados a mediawiki no saben como responder un hilo. Se trata de liquidthreads.
# cd extensions # wget -c http://upload.wikimedia.org/ext-dist/LiquidThreads-MW1.17-r85033.tar.gz # tar xvzf LiquidThreads-MW1.17-r85033.tar.gz # vi ../LocalSettings.php require_once("$IP/extensions/LiquidThreads/LiquidThreads.php");
Esta extensión al igual que semantic mediawiki precisa de la creación de tablas en la base de datos para funcionar, así que tenemos 2 opciones. La primera es cargar directamente el fichero sql:
# mysql -uroot -p nombrebbdd -f < fichero.sql
o ejecutar el fichero de update.php que en teoría (sólo me ha funcionado con una extensión):
# php maintenance/update.php
Y hasta aquí algunas extensiones, ya irán cayendo más los próximos días ;)
Actualización:
Venga un par de extensiones interesantes más :D
#External Data #http://www.mediawiki.org/wiki/Extension:External_Data include_once("$IP/extensions/ExternalData/ExternalData.php");
Permite importar datos externos a la mediawiki y darles formato como si estuviesemos trabajando directamente con los datos SQL.
#Select Category #http://www.mediawiki.org/wiki/Extension:SelectCategory require_once( 'extensions/SelectCategory/SelectCategory.php' );
Éste realmente me ha gustado mucho, ya que permite escoger la categoría con un sólo click. Además si anidas las categorías estas se saldrán perfectamente categorizadas dentro de las otras categorías. Muy fino :)