Я хочу отобразить mathml-код в своем расширении web-кода против кода, но, к сожалению, я не могу получить его с помощью mathjax. Я использовал конвертер npm пакетов latextomathml, но он выдает ошибку: необработанная ошибка ссылки: Latexto XML не является защитой
Вот мой код в расширении. js в vs код веб-просмотра.
const vscode = require ('vscode'); const path = require ('path');
var Translator = require ("latextomathml");
// этот метод вызывается при активации вашего расширения / / Ваше расширение активируется при первом выполнении команды
/ ** * @param {vscode.ExtensionContext} context * / function activate (context) {
// Use the console to output diagnostic information (console.log) and errors (console.error)
// This line of code will only be executed once when your extension is activated
console.log('Congratulations, your extension "testex" is now active!');
// The command has been defined in the package.json file
// Now provide the implementation of the command with registerCommand
// The commandId parameter must match the command field in package.json
let disposable = vscode.commands.registerCommand('extension.loadcontent', function () {
const panel = vscode.window.createWebviewPanel(
'loadcontent',
'Loading Content',
vscode.ViewColumn.One,
{
enableScripts: true
}
);
panel.webview.html = getWebviewContent();
**var x = Translator.LaTeXtoMathML;**
panel.webview.html = getWebviewContent(x);
function getWebviewContent(xaSrc,**x**){
return `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Loading Testing</title>
<script type="module" src="vscode-resource:/node_modules/latextomathml/latextomathml.js" />
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
showProcessingMessages: false,
tex2jax: {
inlineMath: [
['$','$'],
[ '\\(', '\\)' ]
]
},
extensions: ['toMathML.js']
});
var math = null;
MathJax.Hub.queue.Push(function () {
math = MathJax.Hub.getAllJax('MathOutput') [0];
});
window.UpdateMath = function (TeX) {
MathJax.Hub.queue.Push(['Text', math, '\\\\displaystyle{' + TeX + '}']);
document.getElementById('output').value = math.root.toMathML("");
};
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-MML-AM_CHTML">
</script>
</head>
<body>
<textarea id="MathInput" style="position: absolute; top: 30px; left: 30px;" cols="60" rows="10" onkeyup="UpdateMath(this.value)"></textarea>
<div id="MathOutput">
<h3>$$ { } $$</h3>
</div>
<div>
<button type="button" onclick="output1()" style="position: absolute; top: 20px; right: 580px;">MathMl</button>
<textarea class="mathml" id="output" placeholder="MathML code" style="position: absolute; top: 10px; right: 30px;" cols="60" rows="5"></textarea>
</div>
<script type="text/javascript">
const vscode = acquireVsCodeApi();
window.output1 = function() {
**console.log(${x}("{x}^{2}"));** **//How to write this in correct way**
}
</script>
</body>
</html>`;
}
});
context.subscriptions.push(disposable);
}
почему произошла эта ошибка? Я новичок в разработке против расширения кода. Также расскажите, как правильно загрузить npm пакеты здесь.