subindex online exchange examples determinant javascript markdown mathjax

javascript - online - Cómo usar Markdown con MathJax como Math StackExchange



mathjax subindex (2)

POST ACTUALIZADO

Ok, he logrado que Markdown y MathJax trabajen juntos, en realidad era relativamente simple. He utilizado marked junto con 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 }) });

El problema ahora es: creo que markdown está analizando mis matemáticas primero antes de que MathJax pueda cambiarlo. ¿Cómo puedo solucionar esto? Creo que está fijo en Math StackOverflow, pero ¿cómo? Necesito detener el markdown al analizar las matemáticas

ACTUALIZACIÓN 2

Esto funciona, pero no estoy seguro de si es la forma en que lo hace math.stackexchange, pero parece producir resultados similares / similares con lo que he probado hasta ahora ...

$(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()) ); }); });

ANTIGUO POSTRE DEBAJO

En el intercambio de pila de matemáticas, puedo usar MathJax con Markdown. Me pregunto que necesito para hacer eso? Puedo usar una biblioteca como marked para representar Markdown, pero para MathJax, parece que simplemente se procesa en las cargas de la página. ¿Cómo puedo llamarlo para volver a renderizar o mejor simplemente renderizar lo que sea necesario (especificado por mí)?

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

ACTUALIZAR

Creo que debería estar viendo http://www.mathjax.org/docs/1.1/typeset.html#manipulating-individual-math-elements . Pero cuando lo intento

$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"]); })

Dónde:

  • $text : es el elemento jQuery para mi área de texto
  • $preview : es la vista previa div

Me parece que las math no están definidas, por lo que parece que var math = MathJax.Hub.getAllJax("preview") no funciona. Tengo un div#preview cierto.


La forma más rápida es proteger las matemáticas de su markdown-parser.

Consulte esta pregunta para obtener una respuesta detallada de Davide Cervone, incluido un enlace al código utilizado por math.SE.