Supporto volontario e collaborativo per Joomla!® in italiano

Un plugin per la matematica

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
matematica

In questo articolo descriviamo un plugin che facilita la pubblicazione di formule matematiche in un sito basato su Joomla!.

Scrivere matematica sul web è certamente un problema che non riguarda tutti perché ovviamente la maggior parte dei siti mondiali non ha alcuna necessita di farlo. Ci sono però parecchie situazioni in cui avere la possibilità di scrivere pagine web contenenti formule ed equazioni è tutt'altro che marginale. Penso a siti di scuole di ogni ordine e grado, portali provati destinati agli studenti, siti di e-learnig e network universitari. Sono tutte situazioni confinate in settori specialistici ma comunque di grande importanza, sopratutto se si pensa alla ricerca scientifica e alla diffusione di Joomla! in questi settori.

Presentare formule matematiche sul web è cosa ben diversa dall'inserire equazioni in un word processor. In ambiente desktop ci sono diverse soluzioni alcune basate su FOSS alcune proprietarie ma la più diffusa è di gran lunga il TeX, un linguaggio per l'elaborazione dei documenti, ed il suo dialetto principale LaTeX. Il LaTeX si propone come un vero e proprio linguaggio di programmazione. Dimenticate i micidiali tasti delle barre di formattazione; grassetto, italico ed altre amenità sono totalmente soppiantate a favore di un sistema che elabora il testo dello scrittore e produce un documento stampabile dalla qualità ineccepibile, formattato automaticamente secondo i migliori standard tipografici.

Anche le soluzioni proposte dai vari MS Word, OO Writer, Libre Office Write etc sono ormai mature e affidabili il LaTeX si è conquistato un riconoscimento accademico internazionale talmente consolidato che esso è diventato de facto lo standard di settore. Il LaTeX però è pensato per produrre documenti da stampare ed è poco adatto alla produzione di pagine web.

Possibili soluzioni

Ci sono stati dei tentativi come LaTeX2TML ma questi si sono scontrati con la contemporanea diffusione dei Conten Managmet Systems (CMS) di cui Joomla! rappresenta la punta di diamante. Lo schema seguito era trasformare le formule in file grafici, il che non era un'ottima idea perché rende le pagine difficilmente accessibili, pesanti e soprattutto poco rispondenti ai tentativi di zoom o di cambiamento della dimensione dei caratteri. Le soluzioni proprietarie hanno seguito lo stesso schema e si sono arenate in settori di nicchia.

Il problema è sentito, ed era inevitabile che il consorzio W3C che sancisce gli standard sul web, se ne occupasse. Il risultato è stato MathML, un'estensione di HTML che in teoria appare essere completo, versatile e soprattutto standard. Il problema è che nessuno dei browsers in circolazione offre un supporto al 100% di questo linguaggio nonostante i vari big del bit-mondo abbiano approvato e fatto proprio il progetto, se si escludono estensioni specifiche mai diffuse capillarmente. Oggi la situazione è che MathML è di fatto inutilizzato. E siamo tornati alle origini.

Il sogno di tutti i matematici è poter scrivere sul web in LaTeX. Si può può fare essenzialmente in due modi: con elaborazioni lato server e lato client. Esistono dei motori che insegnano al server a interpretare formule simil-LaTeX e producono un rendering sul client pronto all'uso. Un esempio è l'engine utilizzata da wikipedia.

Qualche anno fa stata introdotta una libreria javascript chiamata jsMath che interpretava il codice LaTeX lato client. Il progetto, davvero ben fatto, è piaciuto a tutti gli esperti del settore ed ha immediatamente catalizzato l'attenzione dei progettisti web per la sua versatilità e la sua efficienza. Dopo poco dalla sua nascita è stato creato un progetto più vasto, chiamato appunto MathJax, che ha assorbito ed esteso jsMath, ha attirato sponsor e sviluppatori arrivando finalmente ad un prodotto maturo qual è oggi MathJax.

MathJax

L'autore scrive testo praticamente come se stesse scrivendo in LaTeX. Il server invia il testo all'utente inglobando nella pagina web una chiamata alle librerie MathJax che interpretano il codice LaTeX e lo trasforma in qualcosa di leggibile. MathJax permette all'autore di scrivere indifferentemente in LaTeX, in MathML o in ASCIMath (un'altro tentativo di standard) trasformando le formule in HTML, in MathML o file grafici SVG il tutto con una qualità davvero notevole. MathJax è costantemente seguiti dagli sviluppatori ha frequenti aggiornamenti che correggono bug e implementano nuove funzionalità. Di fatto sta diventando l'agognato standard del settore.

Modificare il template in uso

Il problema a questo punto come configurare un sito Joomla based in modo da utilizzare la libreria MathJax. La cosa è tutt'altro che difficile. Basta inserire la chiamata alle librerie nell'header della pagina. Ovviamente essendo Joomla! un CMS non occorre modificare ogni singola pagina ma basta operare intelligentemente sul template modificando il file index.php del template in uso inserendo nell'header la riga

<script type="text/javascript" src="/path-to-MathJax/MathJax.js"></script>

dove path-to-MathJax dev'essere rimpiazzato dall'URL della libreria in uso.

Si può decidere di utilizzare la libreria condivisa sul server pubblico (CDN) del progetto o si può decidere di metterne una copia sul proprio server. Il passo successivo è configurare il tutto modificando ulteriormente la riga di codice scritta or ora.  Non voglio occuparmi in questo articolo delle varie opportunità di configurazione di MathJax, cosa che inevitabilmente ci porterebbe troppo lontano. Va detto solo che la configurazione va fatta una volta per tutte ed il gioco è fatto liberando l'autore da ogni dettaglio tecnico.

Tutto questo è bellissimo e semplicissimo ma ha un grave difetto: se si aggiorna in template (manualmente o automaticamente) occorre ricominciare da capo e questo non è un bel modo di funzionare. Sarebbe meglio demandare a un plugin l'onere di inserire nelle pagine la chiamata alle librerie MathJax e lasciare libero il template di aggiornarsi quando vuole.

La soluzione definitiva

Il plugin MathJaxLoader l'ho scritto per sopperire alle problematiche evidenziate prima. Una volta configurato nella sezione di amministrazione del sito, il plugin inserisce la chiamata alle librerie MathJax senza dovere agire sui files del template. In questo modo possiamo aggiornare il template senza avere la necessità di operare di nuovo la modifica per inserire le chiamate alla libreria. Questo è particolarmente utile in quei siti che usano più di un template.

Il plugin inoltre offre alcune opzioni per la semplificazione della configurazione che aiutano il gestore del sito a seguire gli standard imposti dalla libreria.

Per l'installazione non c'è nulla diverso dagli altri plugin. Scaricare il file e istallarlo nella sezione amministrazione del sito. Per ora è in italiano e nel mio maldestro inglese. Chi vuole aiutare può cominciare a tradurre e a provare ad usare il plugin.

Il plugin è offerto gratuitamente alla community sotto la licenza GPL versione 3 ed è disponibile nella sezione Download della community di questo stesso portale. Clicca qui per il link diretto.

Link

  • Per chi vuole informazioni complete ed approfondite su MathJax il sito di riferimento è https://www.mathjax.org/.
  • Per chi vuole avere informazioni su TeX/LaTeX il punto da cui partire è il sito del gruppo degli utilizzatori italiani http://www.guit.sssup.it/
  • Il mio sito personale: www.marioluciani.it Un tempo scrivevo molta più matematica ma nel sito ci sono centinaia di pagine contenenti formule di ogni tipo. In particolare
  • In questa pagina ci sono moltissimi esempi di utilizzo pratico della libreria


CommentaCommenta questo articolo sul forum
Ho scritto e condiviso questo articolo su Joomla.it, fallo anche tu. Invia ora un nuovo articolo!
Mario Luciani
Nome: Mario Luciani
Alcune informazioni su di me:


Ho anche scritto:
         ✔ diventa autore su Joomla.it

Ultima versione di Joomla!®

downloadVer. 3.6.5 Stabile Italiana
Data di rilascio:14 Dicembre 2016
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: