Estos ejercicios corresponden a una versión antigua de MediaWiki. No están actualizados a versiones más actuales porque desde el curso 2014/15 no estoy trabajando en clase MediaWiki ya que estoy dedicando más tiempo a otras aplicaciones. He mantenido estos ejercicios en los apuntes por si le pueden servir a alguien.
En esta lección se proponen soluciones de los ejercicios de MediaWiki (2). Se recomienda intentar realizarlos primero sin recurrir a estas soluciones.
Para cambiar el logotipo, hay que modificar en el archivo de configuración LocalSettings.php de MediaWiki:
$wgLogo = "$wgStylePath/common/images/wiki.png";
Para evitar que una actualización posterior de MediaWiki sustituya nuestro logo, es mejor usar un fichero con otro nombre y guardarlo en otra carpeta dentro de $wgStylePath.
Cada skin usa un tamaño distinto para los logos (el skin Vector usa 160x160píxeles, pero bastantes skins usan 135x135 píxeles). Si se usan tamaños superiores, Vector recorta las imágenes y otros skins las muestran completas.
Para convertir la wiki pública en una wiki privada se puede añadir, entre otros, los siguientes valores en el archivo de configuración LocalSettings.php de MediaWiki:
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
Manual Wikipedia: https://en.wikipedia.org/wiki/Help:Tables
El código para generar las tablas del ejemplo es el siguiente:
{| class="wikitable"
|-
! Planeta
! Diámetro
|-
| Mercurio
| align="right" | 4.879,4 km
|-
| Venus
| align="right" | 12.103,6 km
|-
| Tierra
| align="right" | 12.756,2 km
|}
{| class="wikitable"
|+ Elementos químicos
|-
! align="left" | Símbolo
| align="center" | H
| align="center" | He
| align="center" | Li
|-
! align="left" | Nombre
| Hidrógeno
| Helio
| Litio
|-
! align="left" | Masa atómica
| 1,00797 u
| 4,00260 u
| 6,94174 u
|}
{| class="wikitable"
|-
| A
| colspan="3" | B
|-
| rowspan="3" | C
| colspan="2" rowspan="2" style="background-color: lightblue; color: blue; font-size: 200%" |D
| E
|-
| F
|-
| G
| H
| I
|}
$wgFileExtensions[] = 'svg';
$wgAllowTitlesInSVG = true;
Manual MediaWiki: https://www.mediawiki.org/wiki/Manual:$wgSVGConverters
Es fácil de instalar y configurar y funciona bien.
La última versión de Inkscape se puede descargar de https://www.cdlibre.org/consultar/catalogo/Graficos_Editores-graficos.html
En el archivo de configuración LocalSettings.php de MediaWiki hay que añadir:
$wgSVGConverter = 'Inkscape';
$wgSVGConverters = array(
'Inkscape' => '"ruta_de_Inkscape\inkscape.exe" -z -w $width -f $input -e $output',
);
Manual MediaWiki: https://www.mediawiki.org/wiki/Manual:Installing_third-party_tools
Aunque es fácil de instalar y configurar, MediaMagick no funciona demasiado bien (por ejemplo, si la imagen contiene degradados).
Para Windows, se puede descargar la versión portable de http://www.imagemagick.org/script/index.php o de https://sourceforge.net/projects/imagemagick/files/. El fichero para Windows se llama ImageMagick-X.Y.Z-N-Q16-x86-windows.zip, y actualmente (enero de 2013) la última versión disponible es la versión 6.8.1-9 del 6 de enero de 2013). Este fichero se debe descomprimir en la carpeta de mediawiki.
En el archivo de configuración LocalSettings.php de MediaWiki hay que añadir:
$wgAllowTitlesInSVG = true;
$wgSVGConverter = 'ImageMagick';
$wgUseImageMagick = true;
$wgSVGConverters = array(
'ImageMagick' => '"ruta_de_ImageMagick/convert.exe" -background white -geometry $width $input $output',
);
En el archivo de configuración LocalSettings.php de MediaWiki hay un par de líneas comentadas sobre Imagemagick que no es necesario modificar:
#$wgUseImageMagick = true;
#$wgImageMagickConvertCommand = "/usr/bin/convert";
Batik es una biblioteca Java para manipular SVG. La página web es https://xmlgraphics.apache.org/batik/. Yo no lo he probado, pero por lo visto es muy lenta.
librsvg es una biblioteca de visualización de SVG para GNOME. Se puede descargar de https://download.gnome.org/sources/librsvg/
Yo no lo he probado, pero por lo visto es muy rápido, pero complicado de instalar (sobre todo en Windows, aunque también en Linux) porque tiene muchas dependencias.
$wgFileExtensions[] = 'svg';
$wgFileExtensions[] = 'pdf';
Para enlazar los archivos subidos:
[[media:nombre de archivo | texto ]
Para crear una galería de imágenes:
<gallery>
nombre del archivo de imagen | leyenda
nombre del archivo de imagen | leyenda
nombre del archivo de imagen | leyenda
</gallery>
Esto es un ejemplo de tabla colapsable:
{| class="wikitable collapsible collapsed"
|-
! colspan="4" | Esta tabla se puede mostrar u ocultar
|-
! !! 1 !! 2 !! 3
|- align="center"
! A
| A1 || A2 || A3
|- align="center"
! B
| B1 || B2 || B3
|}
/**
* Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = 'ocultar';
var expandCaption = 'mostrar';
window.collapseTable = function ( tableIndex ) {
var Button = document.getElementById( 'collapseButton' + tableIndex );
var Table = document.getElementById( 'collapsibleTable' + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
var i;
if ( Button.firstChild.data === collapseCaption ) {
for ( i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = 'none';
}
Button.firstChild.data = expandCaption;
} else {
for ( i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
};
function createCollapseButtons() {
var tableIndex = 0;
var NavigationBoxes = {};
var Tables = document.getElementsByTagName( 'table' );
var i;
function handleButtonLink( index, e ) {
window.collapseTable( index );
e.preventDefault();
}
for ( i = 0; i < Tables.length; i++ ) {
if ( $( Tables[i] ).hasClass( 'collapsible' ) ) {
/* only add button and increment count if there is a header row to work with */
var HeaderRow = Tables[i].getElementsByTagName( 'tr' )[0];
if ( !HeaderRow ) continue;
var Header = HeaderRow.getElementsByTagName( 'th' )[0];
if ( !Header ) continue;
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( 'id', 'collapsibleTable' + tableIndex );
var Button = document.createElement( 'span' );
var ButtonLink = document.createElement( 'a' );
var ButtonText = document.createTextNode( collapseCaption );
Button.className = 'collapseButton'; /* Styles are declared in Common.css */
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute( 'id', 'collapseButton' + tableIndex );
ButtonLink.setAttribute( 'href', '#' );
$( ButtonLink ).on( 'click', $.proxy( handleButtonLink, ButtonLink, tableIndex ) );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( '[' ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( ']' ) );
Header.insertBefore( Button, Header.firstChild );
tableIndex++;
}
}
for ( i = 0; i < tableIndex; i++ ) {
if ( $( NavigationBoxes[i] ).hasClass( 'collapsed' ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( 'autocollapse' ) ) ) {
window.collapseTable( i );
}
else if ( $( NavigationBoxes[i] ).hasClass ( 'innercollapse' ) ) {
var element = NavigationBoxes[i];
while ((element = element.parentNode)) {
if ( $( element ).hasClass( 'outercollapse' ) ) {
window.collapseTable ( i );
break;
}
}
}
}
}
mw.hook( 'wikipage.content' ).add( createCollapseButtons )
Para ver si la extensión Vector está activada hay que abrir la página Especial:Versión (Special:Version) y ver si en el apartado Extensiones instaladas aparece la extensión Vector.
require_once( "$IP/extensions/Vector/Vector.php" );
$wgDefaultUserOptions['useeditwarning'] = 1;
Por escribir
Por escribir
Por escribir
Por escribir
Texto | |
---|---|
Resultado | Sintaxis |
Cita | {{Cita|Texto de la cita|[[Autor]], ''Obra''}} |