web-dev-qa-db-ja.com

MathJaxとlatex2html5 Joomlaシステムプラグイン

これを読んだ後 Joomla WebサイトにMathjaxを追加する

拡張機能の記述については何も知りませんが、上記のリンクに基づいて、mathjaxとlatex2html5の両方を有効にする単純なシステムプラグインを簡単に記述できると思います。

これを思いついた

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

Latex2html5のインストールへのリンク http://latex2html5.com/installation.html

今残っているのは、必要なmathjax設定をプラグインに組み込む方法だけだと思います。

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

誰かが私をプラグインの完了まで案内してくれますか?

ありがとう

1
Starry

プラグインを使用してこれを自分で試してみることにしたあなたに対する公平なプレイ、+ 1。

あなたは非常に近いですが、スクリプトとスタイルシートへのパスを定義するときに引用符を使用するのを忘れていました。以下が機能します:

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

また、独自のサーバーからインポートするスクリプトとスタイルシートについては、JUri::root()を使用して、Joomlaインストールのルートをベースラインとして定義しています。

更新:

関数を呼び出すには、JoomlaのaddScriptDeclaration()関数を使用します。これにより、定義したスクリプトがヘッドに挿入され、_<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