web-dev-qa-db-fra.com

MathJax et latex2html5 Joomla System Plugin

Après avoir lu ceci Ajout de Mathjax à un site Web de Joomla

Je ne sais rien au sujet de l'extension de l'écriture mais basé sur le lien mentionné, je suppose qu'il devrait être facile d'écrire un simple plugin système pour activer à la fois mathjax et latex2html5.

Je viens avec ça

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

Lien vers l'installation de latex2html5 http://latex2html5.com/installation.html

Je pense qu'il ne reste plus qu'à inclure la configuration requise pour mathjax dans le 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>

Quelqu'un peut-il me guider s'il vous plaît à la fin du plugin?

Merci

1
Starry

Bon jeu à vous pour avoir décidé d’utiliser un plugin et d’essayer cela par vous-même, +1.

Vous êtes très proche, mais vous avez oublié d'utiliser des guillemets lors de la définition du chemin d'accès au script et à la feuille de style. Ce qui suit fonctionnera:

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

Notez également que pour le script et la feuille de style que vous importez depuis votre propre serveur, j’ai utilisé JUri::root() pour définir la racine de votre installation Joomla en tant que référence.

Mise à jour:

Pour appeler la fonction, vous pouvez utiliser la fonction addScriptDeclaration() de Joomla qui injectera votre script défini dans la tête et utilisera automatiquement les balises <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