Comunidad Central
Advertisement
Comunidad Central

Cuando escribes código para tu wiki, ya sean estilos de CSS, mejoras de funcionalidad, herramientas completamente nuevas usando JavaScript o plantillas avanzadas usando Lua, puede que llegues a un punto donde te gustaría compartir tu trabajo con más usuarios de la comunidad de Fandom para que otros wikis puedan beneficiarse de tu código.

En el pasado, los wikis solían copiar código de otros wikis y aplicarlo para sus propios usos. Ahora tenemos una mejor opción disponible: contribuir en Dev Wiki.

Contributing to Dev Wiki - Dev Wiki MP

Página principal de Dev Wiki, disponible en dev.fandom.com

Dev Wiki no es el típico wiki donde solo los administradores pueden editar páginas de código. En su lugar, cualquier usuario registrado puede contribuir con su propio código para que pueda ser usado por wikis y usuarios en toda la plataforma sin tener que copiar manualmente el código. Solo necesitas usar una importación para cargar código desde Dev Wiki, lo cual te asegura que siempre estés usando la versión más reciente.

Para que tu código sea publicado en Dev Wiki y cualquiera puede usarlo, primero deberías de darle a tu proyecto un nombre fácil de reconocer y recordar. Algunos buenos ejemplos pueden ser DiscordIntegrator (un script que te permite integrar widgets de Discord en un wiki) o AntiBigText (una hoja de estilos que reduce los tamaños de las letras en las páginas). Un buen nombre ayudará a otros usuarios a encontrar tu código cuando estén buscando una solución al problema que justamente tu código resuelve.

Contributing to Dev Wiki - Code page

Encabezado y primeras líneas de "MediaWiki:AntiBigText.css" en Dev Wiki

Después de elegir un nombre para tu proyecto de JavaScript, CSS o Lua, es hora de publicar el código en Dev Wiki. Ya que el wiki permite a cualquiera editar códigos de páginas, puedes simplemente colocarlo en MediaWiki:<NombreDeTuProyecto>.css, MediaWiki:<NombreDeTuProyecto>.js o Module:<NombreDeTuProyecto>, según corresponda. Cuando escribas algo que quieres que esté disponible en Dev Wiki, es probable que la convención de código te sea útil.

Contributing to Dev Wiki - JS review

Cuadro de "estado de revisión de JavaScript" en la barra lateral de todas las páginas de JavaScript - ¡todo en verde y aprobado!

Las páginas de JavaScript deben de pasar a través de un proceso de revisión por parte del equipo de Fandom para asegurar que sea seguro antes de ser usado. A diferencia de copiar el código manualmente, donde cada wiki tendría que pasar por su propio proceso de revisión, en Dev Wiki el código estará disponible universalmente después de la revisión local. Al importarlo, no necesitas esperar a que también sea revisado.

Después de que tu código sea publicado y haya sido enviado a revisión, es el momento de escribir una página de documentación para tu proyecto. Dependiendo de la naturaleza de este, puede ser que incluyas descripciones técnicas detalladas para otros desarrolladores o guías más amigables con el usuario común; puede que incluso requieras de ambos casos.

Contributing to Dev Wiki - Code documentation

Documentación de "CustomizeAce", un script disponible en dev.fandom.com/wiki/CustomizeAce

Siempre es buena idea revisar otras páginas de proyectos para ver cómo están estructuradas y usarlo en tu propia página; usarlas como referencia puede evitar algunos errores. La página de WHAM es un buen ejemplo para esto.

Contributing to Dev Wiki - Documentation editing

Wikitexto de la página de documentación de WHAM

La pagina de WHAM muestra cómo incluir parámetros para otras páginas. También está incluido en el proceso de internacionalización, que es un esfuerzo para hacer que los propios proyectos y sus documentaciones estén disponibles y sean fáciles de usar para los usuarios sin importar el idioma que hablen. Puedes leer más sobre este proceso en la página sobre internacionalización.

Al internacionalizar tu código, concéntrate en facilitar que el texto de tu JavaScript pueda ser traducido. Por ejemplo, si estás añadiendo una nueva opción al menú desplegable de "Editar" en las páginas, considera el siguiente ejemplo:

(function() {
    'use strict';

    var editDropdown = $('.page-header__actions .wds-list');
    var pageAuthorsLink = $('<li>').append(
    	$('<a>', {
            id: 'ca-credits',
            href: mw.util.getUrl( mw.config.get( 'wgPageName' ), { action: 'credits' } ),
            text: 'Page authors'
        })
    );

    editDropdown.append( pageAuthorsLink );
})();

Puedes usar la biblioteca de i18n-js para permitir traducciones de tu script de una manera más fácil y rápida.

(function() {
    'use strict';

    function main( i18n ) {
        var editDropdown = $('.page-header__actions .wds-list');
        var pageAuthorsLink = $('<li>').append(
            $('<a>', {
                id: 'ca-credits',
                href: mw.util.getUrl( mw.config.get( 'wgPageName' ), { action: 'credits' } ),
                text: i18n.msg( 'editDropdownLabel' ).plain()
            })
        );

        editDropdown.append( pageAuthorsLink );
    }

    importArticle( {
        type: 'script',
        article: 'u:dev:MediaWiki:I18n-js/code.js'
    } );

    mw.hook( 'dev.i18n' ).add( function( i18nlib ) {
        i18nlib.loadMessages( 'pageAuthorsLink' ).then( main );
    } );
})();

Hagamos un repaso rápido de lo que hemos cambiado:

  • El código principal ahora se encuentra dentro de una función main que recibe un parámetro i18n; este funciona como enlace entre tu código y la biblioteca de I18n-js.
  • Cuando termina tu función main, hay una instrucción importArticle() que carga el código de I18n-js. ¡No te preocupes! Si I18n-js ya ha sido cargado antes, no habrá ningún problema con tu código.
  • Posteriormente, usa un hook especial usado para esperar hasta que todos los elementos de I18n-js estén disponibles.
  • Cuando el hook sea ejecutado, llamará a una función para cargar el texto desde Dev Wiki y finalmente iniciará tu función main.

Esto quiere decir que las partes de texto de tu código se almacenarán en Dev Wiki por separado de tu código en sí, en una página que seguirá la siguiente forma: https://dev.fandom.com/wiki/MediaWiki:Custom-<NombreDeTuProyecto>/i18n.json; en este caso, sería https://dev.fandom.com/wiki/MediaWiki:Custom-pageAuthorsLink/i18n.json, ya que 'pageAuthorsLink' es lo que estamos solicitando cuando llamamos a la función loadMessages().


Advertisement