Comment utiliser Markdown avec MathJax comme Math StackExchange

UPDATED POST

Ok j'ai réussi à faire fonctionner Markdown et MathJax ensemble, c'était relativement simple en fait. J'ai utilisé marked avec MathJax.

$(function() {
    var $text       = $("#text"), // the markdown textarea
        $preview    = $("#preview"); // the preview div

    $text.on("keyup", function() {
        $preview.html( marked($text.val()) ); // parse markdown
        MathJax.Hub.Queue(["Typeset", MathJax.Hub, "preview"]); // then let MathJax do its job
    })
});

le problème est maintenant: je pense que markdown analyse mes maths avant que MathJax puisse les changer. Comment puis-je résoudre ce problème? Je pense que c'est fixé sur les maths StackOverflow, mais comment? Je dois empêcher markdown d'analyser les maths.

UPDATE 2

cela fonctionne, mais pas sûr si c'est la façon de mathématiques.stackexchange le fait, mais il semble produire des résultats similaires/identiques avec ce que j'ai testé jusqu'à présent ...

$(function() {
    var $text       = $("#text"),
        $preview    = $("#preview");

    $text.on("keyup", function() {
        $preview.html( $text.val() );
        MathJax.Hub.Queue(["Typeset", MathJax.Hub, "preview"]);
    });

    MathJax.Hub.Register.MessageHook("End Process", function (message) {
        $preview.html( marked($preview.html()) );
    });
});

ANCIEN POST EN DESSOUS DE

dans l'échange de maths, je peux utiliser MathJax avec Markdown. Je me demande que dois-je faire? Je peux utiliser un bibliothèque comme marked pour rendre Markdown, mais pour MathJax, il semble comme il rend juste sur les charges de page. Comment puis-je l'appeler pour re-rendre ou mieux juste rendre ce qui est nécessaire (spécifié par moi)

html = marked("some markdown string") // a HTML string
// is there something like
html = MathJax.parse(html)

mise à jour

je pense que je devrais regarder http://www.mathjax.org/docs/1.1/typeset.html#manipulating-individual-math-elements . Mais quand j'essaie

$text.on("keyup", function() {
    $preview.html( marked($text.val()) );
    var math = MathJax.Hub.getAllJax("preview");
    console.log(math);
    MathJax.Hub.Queue(["Text", math, "a+b"]);
})

où:

  • $text : est l'élément jQuery pour mon textarea
  • $preview : est l'aperçu div

je trouve que math n'est pas défini, il semble donc var math = MathJax.Hub.getAllJax("preview") ne fonctionne pas. J'ai un div#preview btw.

23
demandé sur Jiew Meng 2012-08-22 13:01:43

2 réponses

le moyen le plus rapide est de protéger les maths de votre analyseur de markdown.

Voir cette question pour une réponse détaillée par Davide Cervone, y compris un lien vers le code utilisé par les mathématiques.SE.

4
répondu Peter Krautzberger 2017-05-23 12:25:01

pour sublime, ajouter le code suivant à Markdown Preview --> Settings - User ,

{
    /*
        Enable or not mathjax support.
    */
    "enable_mathjax": true
}

comme indiqué ci-dessous,

enter image description here

Consultez Comment faire pour activer MathJax rendu dans Sublimetext Markdown Aperçu .

1
répondu SparkAndShine 2017-05-23 11:46:12