it-swarm-es.tech

MathJax y latex2html5 Complemento del sistema Joomla

Después de leer esto Agregar Mathjax a un sitio web de Joomla

No sé nada sobre la extensión de la escritura, pero según el enlace mencionado, supongo que debería ser fácil escribir un complemento de sistema simple para habilitar tanto mathjax como latex2html5.

Se me ocurre esto

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

Enlace a la instalación de latex2html5 http://latex2html5.com/installation.html

Creo que lo único que queda ahora es cómo incluir la configuración mathjax requerida en el complemento.

<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>

¿Alguien puede guiarme para completar el complemento?

Gracias

1
Starry

Juego limpio para ti por decidir usar un complemento e intentarlo por tu cuenta, +1.

Estás muy cerca, pero olvidaste usar comillas al definir la ruta del guión y la hoja de estilo. Lo siguiente funcionará:

$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');

También tenga en cuenta que para el script y la hoja de estilo que está importando desde su propio servidor, he usado JUri::root() para definir la raíz de su instalación de Joomla como línea de base.

Actualizar:

Para llamar a la función, puede utilizar la función addScriptDeclaration() de Joomla que inyectará su script definido en la cabeza y usará automáticamente las etiquetas <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