it-swarm.dev

MathJax e latex2html5 Plugin di sistema Joomla

Dopo aver letto questo Aggiunta di Mathjax a un sito Web Joomla

Non so nulla sulla scrittura dell'estensione ma in base al link menzionato, suppongo che dovrebbe essere facile scrivere un semplice plugin di sistema per abilitare sia mathjax che latex2html5.

Mi viene in mente questo

<?php

// no direct access
defined('_JEXEC') or die('Restricted index access');

class plgSystemMathJaxLatex2Html5 extends JPlugin {
    public function onContentPrepare($context, &$article, &$params, $page = 0)
    {   
            $doc = JFactory::getDocument();
            $doc->addScript("http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML");
            $doc->addScript(plugins/system/MathJaxLatex2Html5/assets/js/latex2html5.min.js);
            $doc->addStyleSheet(plugins/system/MathJaxLatex2Html5/assets/css/latex2html5.css);
    }
}

Link all'installazione di latex2html5 http://latex2html5.com/installation.html

Penso che l'unica cosa rimasta ora sia come includere il plugin mathjax richiesto nel plugin.

<script type="text/x-mathjax-config">
    // <![CDATA[
    MathJax.Hub.Config({ 
        TeX: {extensions: ["AMSmath.js", "AMSsymbols.js"]},     
        extensions: ["tex2jax.js"],
        jax: ["input/TeX", "output/HTML-CSS"],
        showProcessingMessages : false,
        messageStyle : "none" ,    
        showMathMenu: false ,
        tex2jax: {
            processEnvironments: true,
            inlineMath: [ ['$','$'], ["\(","\)"] ],
            displayMath: [ ['$$','$$'], ["\[","\]"] ],
            preview : "none",
            processEscapes: true
        },
        "HTML-CSS": { linebreaks: { automatic:true, width: "latex-container"} }
    });
    // ]]>
</script>

Qualcuno può guidarmi per favore al completamento del plugin?

Grazie

1
Starry

Gioco equo per te per aver deciso di utilizzare un plug-in e provare questo da solo, +1.

Sei molto vicino, ma hai dimenticato di usare le virgolette durante la definizione del percorso dello script e del foglio di stile. Funzionerà quanto segue:

$doc->addScript('http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML');
$doc->addScript(JUri::root() . 'plugins/system/MathJaxLatex2Html5/assets/js/latex2html5.min.js');
$doc->addStyleSheet(JUri::root() . 'plugins/system/MathJaxLatex2Html5/assets/css/latex2html5.css');

Nota anche che per lo script e il foglio di stile che stai importando dal tuo server, ho usato JUri::root() per definire la radice dell'installazione di Joomla come linea di base.

Aggiornare:

Per chiamare la funzione, puoi la funzione addScriptDeclaration() di Joomla che inietterà il tuo script definito nella testa e userà automaticamente i tag <script>

$js = '
MathJax.Hub.Config({ 
        TeX: {extensions: ["AMSmath.js", "AMSsymbols.js"]},     
        extensions: ["tex2jax.js"],
        jax: ["input/TeX", "output/HTML-CSS"],
        showProcessingMessages : false,
        messageStyle : "none" ,    
        showMathMenu: false ,
        tex2jax: {
            processEnvironments: true,
            inlineMath: [ ['$','$'], ["\(","\)"] ],
            displayMath: [ ['$$','$$'], ["\[","\]"] ],
            preview : "none",
            processEscapes: true
        },
        "HTML-CSS": { linebreaks: { automatic:true, width: "latex-container"} }
    });
';
$doc->addScriptDeclaration($js);
0
Lodder