【问题标题】:How to use Markdown with MathJax like Math StackExchange如何将 Markdown 与 MathJax 一起使用,例如 Math StackExchange
【发布时间】:2012-08-17 16:04:55
【问题描述】:

更新后的帖子

好的,我已经设法让 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()) );
    });
});

下面是旧帖

在数学堆栈交换中,我可以将 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 的 jQuery 元素
  • $preview:是预览版div

我发现math 未定义,因此var math = MathJax.Hub.getAllJax("preview") 似乎不起作用。我有一个div#preview 顺便说一句。

【问题讨论】:

  • 在 markdown 之前做 MathJax 很聪明(markdown 会通过 html),但这意味着数学将在无处不在呈现。例如,不清楚您是否希望它以literal 文本呈现。
  • 这能回答你的问题吗? let PageDown and MathJax work together

标签: javascript markdown mathjax


【解决方案1】:

最快的方法是保护数学免受 Markdown 解析器的影响。

请参阅 this question 了解 Davide Cervone 的详细回答,包括指向 math.SE 使用的代码的链接。

【讨论】:

    【解决方案2】:

    对于sublime,将以下代码添加到Markdown Preview --> Settings - User

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

    如下图,

    请参阅How to enable MathJax rendering in Sublimetext Markdown Preview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-16
      • 2016-07-22
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      相关资源
      最近更新 更多