2015-08-08 10 views
14

Con mio dispiacere, MediaWiki ha il rendering recently disabled support for MathJax (ticket: T99369) di formule TeX di larghezza wikipedia.MediaWiki rimosso MathJax. MathJax può essere forzato dal lato client in un altro modo?

Dal momento che io (e altri, se si sfoglia il thread di discussione del ticket) trovare il rendering con le opzioni rimanenti (MathML, PNG) inferiori, mi piacerebbe "slipstream" MathJax in Wikipedia.

Poiché caricare ulteriori file JavaScript direttamente tramite le impostazioni JavaScript personalizzate in Wikipedia non sembra possibile usando gli elementi <script>, non riesco a capire come ottenere questa impresa. Potrebbe essere, MathJax potrebbe essere incluso tramite CDN più facilmente.

Sto utilizzando gli attuali browser Edge e Firefox, quindi qualsiasi soluzione che funzioni con uno o entrambi sarà molto apprezzata!


Nel frattempo, ho trovato Greasemonkey per Firefox, che potrebbe essere in grado di realizzare questo, dato uno script adatto. Dal momento che non sono né un Greasemonkey, né un esperto di JavaScript, qualsiasi suggerimento su come procedere per scrivere un tale script sarebbe utile.

+0

Non sono sicuro di cosa stai chiedendo. L'unico modo per ottenere MathJax è in un tag script. Puoi elaborare? – Patrick

+0

Come caricarlo senza il sito Web eseguendolo tramite un plug-in del browser, ad es. - o qualsiasi altro mezzo ci potrebbe essere. – Jinxed

+0

Se non si è in grado di caricare gli elementi di script, non sarà possibile caricare un controllo flash o java. Se intendi l'estensione del browser, puoi caricare un file di script. – Patrick

risposta

12

Come utente registrato, è possibile effettuare le seguenti operazioni:

Sotto user preferences => appearance, accendere il "MathML con PNG fallback SVG o" modalità. (Le altre due modalità richiedono uno script leggermente diverso ma imho quella modalità è l'opzione migliore in questo momento.)

Successivamente modifica la pagina di script specifica dell'utente a https://en.wikipedia.org/wiki/User:YOURHANDLE/common.js [Non dimenticare di cambiare il nome utente!] E aggiungi quanto segue script personalizzato ad esso:

// add to User:YOURNAME/common.js to get smooth MathJax rendering 
var mathTags = $('.mwe-math-mathml-a11y'); 
if (mathTags.length > 0){ //only do something when there's math on the page 
    window.MathJax = { //hook into MathJax's configuration 
    AuthorInit: function() { 
     MathJax.Hub.Register.StartupHook("End",function() { //when MathJax is done... 
     MathJax.Hub.Queue(
      function(){ 
      mathTags.removeClass('mwe-math-mathml-a11y'); // .. make the span around MathML (now MathJax output) visible 
      $('.mwe-math-fallback-image-inline').addClass('mwe-math-mathml-a11y'); //hide fallback images 
      } 
     ); 
     }); 
    } 
    }; 
    mw.loader.load('https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=MML_HTMLorMML-full');//load MathJax with a suitable combined config file 
} 

Questo script carica mathjax solo quando c'è la matematica nella pagina, rende, e (quando il rendering suo farsi) sostituisce le immagini di riserva con i risultati.

In questo modo, si ha pochissimo jitter. Da un rapido test questo sembra funzionare su Chrome 43, Firefox 39, IE8 e Edge e WebKit 2.6.2 (quindi dovrebbe funzionare su Safari).

+0

Meraviglioso! Molte grazie! infine, ho restituito correttamente le formule. Questo è un grande sollievo! – Jinxed

+0

Felice che funzioni per te. Felice di aiutare. –

+1

Grazie per questo! Personalmente preferisco usare "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_SVG.js", nella penultima riga, che viene visualizzato come SVG. Credo che questo sia quello che Wikipedia usava con MathJax, se qualcuno volesse usarlo. Questo non ha l'equazione "clic per visualizzare una versione ingrandita", ma per il resto sembra simile. –

Problemi correlati