Как получить Mathml-код из латексного кода в расширении webview против кода? - PullRequest
0 голосов
/ 18 апреля 2020

Я хочу отобразить 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 пакеты здесь.

...