更新された投稿
OK、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
})
});
問題は次のとおりです。MathJaxが変更する前に、マークダウンが最初に数学を解析していると思います。これを修正するにはどうすればよいですか? Math StackOverflowで修正されたと思いますが、どうですか?マークダウンが数学を解析するのを止める必要があります
更新 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 では、Markdown で MathJax を使用できます。私はそれをするために何が必要なのだろうか?Markdown をレンダリングするようなライブラリを使用できますmarked
が、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
: 私のテキストエリアの jQuery 要素です$preview
: プレビューですdiv
それmath
は未定義であるため、機能してvar math = MathJax.Hub.getAllJax("preview")
いないようです。私はところで持っていdiv#preview
ます。