Ich bin mit einem standalone Programm in C# beschäftigt, in dem ich MathJax Bibliothek verwenden möchte.
Da MathJax eine auf JavaScript basierende Bibliothek ist, bin ich mir nicht sicher, ob es machbar ist.
Vermutlich muss ich Espresso, Javascript.Net,ClearScript o. Ä verwenden.
Leider unterstützen diese Bibliothek JS nicht vollständig.
Z.B. Javascript.Net unterstützt DOM nicht.
Hat jemand Erfahrung mit JS in C# oder noch besser mit MathJax in C#?
Wie ich das sehe ist diese Bibliothek für Browser gedacht. Wie bzw. welche Funktionalität willst du damit in ein C# Programm einbauen?
Hallo johnnycc,
so sollte es funktionieren:
private static void Main(string[] args)
{
string script = @"
return function (math, callback) {
var mjAPI = require('mathjax-node');
mjAPI.start();
mjAPI.typeset({
math: math,
mml: true,
}, function(data) {
callback(null, data.mml);
});
} ";
var func = Edge.Func(script);
Console.WriteLine(func("E = mc^2").GetAwaiter().GetResult());
}
Die Ausgabe sollte dann so aussehen:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block" alttext="E = mc^2">
<mi>E</mi>
<mo>=</mo>
<mi>m</mi>
<msup>
<mi>c</mi>
<mn>2</mn>
</msup>
</math>
Wird beim starten die node.dll nicht gefunden wurde, dann beachte dieses Issue:
https://github.com/tjanczuk/edge/issues/503
Infos zu edge.js:
https://github.com/tjanczuk/edge/tree/master#scripting-nodejs-from-clr
Infos zumathjax-node:
https://github.com/mathjax/MathJax-node
http://dotnet-paderborn.azurewebsites.net/
Vielen Dank, es hat funktioniert. 👍
Ich kenne mich mit Node.js nicht aus.
Nach dem ich mathjax-node installiert habe, habe ich Node.js deinstalliert und es funktionierte trotzdem.
Anscheinend ist mathjax-node Dateien im Projekt-Folder ausreichend.
Dies ist wichtig da nicht jeder, der das Programm benutzt, Node.js auf dem Rechner hat.
Node wird benötigt, wenn Du die NPM Befehle ausführen willst.
Ein Benutzer braucht das nicht, aber ein Entwickler. Du musst jedoch natürlich die JavaScript-Dateien mitliefern, die erzeugt werden.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code