Wiki della Community
Advertisement
Wiki della Community

Quando scrivi codici per una wiki, come CSS, miglioramenti di funzionalità o strumenti completamente nuovi con JavaScript o template avanzati con Lua, potresti raggiungere un punto in cui desideri condividere il tuo lavoro con l'ampia community di Fandom e consentire ad altre wiki di trarre vantaggio dal tuo codice.

In passato, le wiki si copiavano il codice a vicenda e lo aggiungevano alle proprie applicazioni. Ora è disponibile un'opzione molto migliore: contribuire col tuo lavoro su Dev Wiki.

La pagina principale di Dev Wiki disponibile su dev

Dev Wiki non è la tipica wiki in cui solo gli amministratori possono modificare le pagine di codice. Qui, ogni utente registrato può contribuire col proprio codice, che può poi essere utilizzato dalle wiki e dagli utenti di Fandom senza la necessità di copiarlo manualmente. Vengono invece utilizzate delle importazioni per caricare il codice da Dev Wiki, garantendo sempre per tutti l'accesso alla versione più aggiornata.

Per poter pubblicare il tuo codice su Dev Wiki affinché tutti possano usarlo, dovresti dare al tuo progetto un nome facile da riconoscere e ricordare. Alcuni buoni esempi potrebbero essere DiscordIntegrator (uno script che ti consente di integrare i widget Discord in una wiki) o AntiBigText (uno stile che riduce le dimensioni dei caratteri sulle pagine). Un buon nome aiuterà gli altri utenti a trovare il tuo codice quando cercano una soluzione specifica.

Intestazione superiore e alcune prime righe di codice per "MediaWiki:AntiBigText.css" su Dev Wiki.

Dopo aver scelto un nome per la pagina del modulo JavaScript, CSS o Lua, è il momento di pubblicare il codice su Dev Wiki. Poiché Dev Wiki consente a tutti di modificare le pagine di codice, puoi semplicemente posizionare il tuo progetto in MediaWiki:<YourProject'sName>.css, MediaWiki:<NomeDelTuoProgetto>.js o Module:NomeDelTuoProgetto>. Quando scrivi codici destinati a essere pubblicati su Dev Wiki, potresti anche trovare utile le sue convenzioni sui codici!

Il riquadro "Custom JavaScript status" nella barra a destra delle pagine JS che mostra lo stato della revisione del codice - tutto verde e approvato!

Le pagine JavaScript su Dev Wiki sono sottoposte a un processo di revisione dal team di Trust & Safety per garantire la sicurezza prima che possano essere utilizzati. A differenza del copiare il codice manualmente con ogni wiki che richiede revisioni separate, la revisione di Dev Wiki copre il codice per un utilizzo universale.

Una volta che il codice è stato pubblicato e inviato per la revisione, è il momento di scrivere una pagina di documentazione per il tuo progetto. A seconda della natura del tuo progetto, essa può variare da descrizioni tecniche dettagliate per le librerie JavaScript a guide di utilizzo intuitive o un mix di entrambe le cose.

Pagina di documentazione per lo script "CustomizeAce" disponibile su dev

È sempre bene dare un'occhiata a come sono strutturate e costruite le pagine degli altri progetti e utilizzare uno schema simile per le tue. Usarle come riferimento può prevenire errori. La pagina del progetto WHAM è un buon esempio da seguire.

Codice wikitext della pagina di documentazione di WHAM.

La pagina di WHAM dimostra l'inclusione di parametri per altre pagine. Fa parte del processo di internazionalizzazione, uno sforzo per rendere sia i progetti di codice stessi che le rispettive pagine di documentazione accessibili e facili da usare per gli utenti che parlano varie lingue in tutto il mondo. Dev Wiki descrive questo processo nella sua pagina di internazionalizzazione.

Quando internazionalizzi il tuo codice, concentrati sul rendere il testo traducibile nel tuo JavaScript. Ad esempio, se stai aggiungendo una nuova opzione al menù a tendina "Modifica" sulle pagine, considera il seguente esempio:

(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 );
})();

Puoi usare la libreria I18n-js da Dev Wiki per rendere facilmente e rapidamente traducibile il tuo script:

(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 );
    } );
})();

Diamo rapidamente un'occhiata a che cosa è cambiato qui:

  • Il codice principale ora è all'interno della funzione main col parametro i18n che funge da ponte tra il tuo codice e la libreria i18n-js.
  • Dopo la fine del codice main, c'è una dichiarazione importArticle() che carica il codice I18n-js. Non preoccuparti! Se c'è già un i18n-js caricato, non romperà nulla.
  • Poi, uno speciale gancio (hook) viene utilizzato per aspettare fino a quando tutti gli elementi I18n-js sono pronti.
  • Dopo l'esecuzione del gancio, esegue una funzione che carica il testo da Dev Wiki e avvia la funzione main.

Ciò significa che delle parti del testo del tuo codice verranno archiviate su Dev Wiki separatamente dal codice programmatico in una pagina che segue questo schema di denominazione: https://dev.fandom.com/wiki/MediaWiki:Custom-<NomeInCodice>/i18n.json, che in questo caso è https://dev.fandom.com/wiki/MediaWiki:Custom-pageAuthorsLink/i18n.json, dove 'pageAuthorsLink' è quello che chiediamo alla funzione loadMessages() di caricare.


Advertisement