ラテックスモードのページで数値計算をnode.js
にしたいとします。私はMathJaX
とKaTeX
を見ました。KaTeXでnode.jsテンプレートの数学をレンダリングする
私はこのページの数学は数学としてレンダリングされていることを確認することができますどのように
router.get('/math', function (req, res) {
res.render('math');
});
と私のページをレンダリング?
私は
const katex = require('katex');
const math = katex.renderToString("c = \\pm\\sqrt{a^2 + b^2}", { displayMode: true });
を使用して、
router.get('/math', function (req, res) {
res.render('math', { math: math });
});
でテンプレート内の変数を設定するが、私はむしろ代わりに特異的に各変数を設定したテンプレートに直接すべての数学を書きたいと思うことができますJavaScriptコード。
私は
router.get('/math', function (req, res) {
res.render('math', function (err, html) {
html = html.replace(/\$\$(.*?)\$\$/g, function (outer, inner) {
return katex.renderToString(inner, { displayMode: true });
});
res.send(html);
});
});
でテンプレートからHTMLを取得しています編集
が、それはそれを行うには良い方法であるか、私はres.send()
を使用する前res.render()
を呼び出す省略することができますか?
私は、サーバーに障害が発生したと私はKaTeXコアは、テキスト入力がどこから来るのか気にしないエラーにParseError: KaTeX parse error: Expected 'EOF', got '$' at position 1: $_
ありがとうございます!私はハンドルバーを使用しています。私は 'res.render( 'math')'でテンプレートをレンダリングしていますので、このテンプレートからコンテンツを取り出してコードスニペットで実行して戻すことは可能ですか? – Jamgreen
.replace(/\$($*/)を使用した後、 '.replace(/\$(.*?)\$/g、function(outer、innner){'を使用するとサーバーエラーが発生します。 \\ \ $ \ $/g、function(outer、innner){'。$ 1つしかないのはどういう意味ですか? – Jamgreen
@Jamgreen:あなたはExpressを使っていますか?[' res.render'](http:// expressjs。いずれの場合でも 'res.render'を呼び出すのではなく、テンプレートエンジンを直接呼び出して' res .end'区切り文字としての単一の '$ 'は、a)通常のテキストで発生する可能性があります。b)LaTeXコード内でも発生する可能性があります。 'x> x_0 \ text {すべての$ x $を$ X $}'のような構造で返します。しかし、エラーがあってはならないので、もしあなたがもっと助けが必要な場合は、エラーメッセージを提供したいかもしれません。 – MvG