更新帖子
好的,我已经设法让Markdown和MathJax一起工作,实际上它相对简单。我已将marked
与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
})
});
现在的问题是:我认为markdown在MathJax改变它之前解析我的数学。我该如何解决?我认为它固定在Math StackOverflow上,但如何?我需要停止markdown来解析数学
更新2
这有效,但不确定它是否与math.stackexchange的方式相同,但它似乎与我到目前为止测试的结果产生相似/相同的结果......
$(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()) );
});
});
旧帖子
在math stackexchange中,我可以将MathJax与Markdown一起使用。我想知道我需要做什么?我可以使用像marked
这样的库来渲染Markdown,但对于MathJax,它似乎只是在页面加载时呈现。如何调用它来重新渲染或更好地渲染所需的内容(由我指定)
html = marked("some markdown string") // a HTML string
// is there something like
html = MathJax.parse(html)
更新
我想我应该看http://www.mathjax.org/docs/1.1/typeset.html#manipulating-individual-math-elements。但是当我尝试
时$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"]);
})
其中:
$text
:是我的textarea $preview
:是预览div
我发现math
未定义,因此似乎var math = MathJax.Hub.getAllJax("preview")
无效。我有一个div#preview
顺便说一句。
答案 0 :(得分:4)
最快的方法是保护数字免受降价解析器的影响。
请参阅this question以获取Davide Cervone的详细答案,包括math.SE使用的代码的链接。
答案 1 :(得分:1)
对于sublime,请将以下代码添加到Markdown Preview --> Settings - User
,
{
/*
Enable or not mathjax support.
*/
"enable_mathjax": true
}
如下图所示,
请参阅How to enable MathJax rendering in Sublimetext Markdown Preview。