mml3-node.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.createTransform = void 0;
  4. function createTransform() {
  5. var nodeRequire = eval('require');
  6. var dirname = eval('__dirname');
  7. try {
  8. nodeRequire.resolve('saxon-js');
  9. }
  10. catch (err) {
  11. throw Error('Saxon-js not found. Run the command:\n npm install saxon-js\nand try again.');
  12. }
  13. var Saxon = nodeRequire('saxon-js');
  14. var path = nodeRequire('path');
  15. var fs = nodeRequire('fs');
  16. var xsltFile = path.resolve(dirname, 'mml3.sef.json');
  17. var xslt = JSON.parse(fs.readFileSync(xsltFile));
  18. return function (node, doc) {
  19. var adaptor = doc.adaptor;
  20. var mml = adaptor.outerHTML(node);
  21. if (!mml.match(/ xmlns[=:]/)) {
  22. mml = mml.replace(/<(?:(\w+)(:))?math/, '<$1$2math xmlns$2$1="http://www.w3.org/1998/Math/MathML"');
  23. }
  24. var result;
  25. try {
  26. result = adaptor.firstChild(adaptor.body(adaptor.parse(Saxon.transform({
  27. stylesheetInternal: xslt,
  28. sourceText: mml,
  29. destination: 'serialized'
  30. }).principalResult)));
  31. }
  32. catch (err) {
  33. result = node;
  34. }
  35. return result;
  36. };
  37. }
  38. exports.createTransform = createTransform;
  39. //# sourceMappingURL=mml3-node.js.map