TextMacrosConfiguration.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. var _a;
  6. Object.defineProperty(exports, "__esModule", { value: true });
  7. exports.TextMacrosConfiguration = exports.TextBaseConfiguration = void 0;
  8. var Configuration_js_1 = require("../Configuration.js");
  9. var ParseOptions_js_1 = __importDefault(require("../ParseOptions.js"));
  10. var Tags_js_1 = require("../Tags.js");
  11. var BaseItems_js_1 = require("../base/BaseItems.js");
  12. var TextParser_js_1 = require("./TextParser.js");
  13. var TextMacrosMethods_js_1 = require("./TextMacrosMethods.js");
  14. require("./TextMacrosMappings.js");
  15. exports.TextBaseConfiguration = Configuration_js_1.Configuration.create('text-base', {
  16. parser: 'text',
  17. handler: {
  18. character: ['command', 'text-special'],
  19. macro: ['text-macros']
  20. },
  21. fallback: {
  22. character: function (parser, c) {
  23. parser.text += c;
  24. },
  25. macro: function (parser, name) {
  26. var texParser = parser.texParser;
  27. var macro = texParser.lookup('macro', name);
  28. if (macro && macro._func !== TextMacrosMethods_js_1.TextMacrosMethods.Macro) {
  29. parser.Error('MathMacro', '%1 is only supported in math mode', '\\' + name);
  30. }
  31. texParser.parse('macro', [parser, name]);
  32. }
  33. },
  34. items: (_a = {},
  35. _a[BaseItems_js_1.StartItem.prototype.kind] = BaseItems_js_1.StartItem,
  36. _a[BaseItems_js_1.StopItem.prototype.kind] = BaseItems_js_1.StopItem,
  37. _a[BaseItems_js_1.MmlItem.prototype.kind] = BaseItems_js_1.MmlItem,
  38. _a[BaseItems_js_1.StyleItem.prototype.kind] = BaseItems_js_1.StyleItem,
  39. _a)
  40. });
  41. function internalMath(parser, text, level, mathvariant) {
  42. var config = parser.configuration.packageData.get('textmacros');
  43. if (!(parser instanceof TextParser_js_1.TextParser)) {
  44. config.texParser = parser;
  45. }
  46. return [(new TextParser_js_1.TextParser(text, mathvariant ? { mathvariant: mathvariant } : {}, config.parseOptions, level)).mml()];
  47. }
  48. exports.TextMacrosConfiguration = Configuration_js_1.Configuration.create('textmacros', {
  49. config: function (_config, jax) {
  50. var textConf = new Configuration_js_1.ParserConfiguration(jax.parseOptions.options.textmacros.packages, ['tex', 'text']);
  51. textConf.init();
  52. var parseOptions = new ParseOptions_js_1.default(textConf, []);
  53. parseOptions.options = jax.parseOptions.options;
  54. textConf.config(jax);
  55. Tags_js_1.TagsFactory.addTags(textConf.tags);
  56. parseOptions.tags = Tags_js_1.TagsFactory.getDefault();
  57. parseOptions.tags.configuration = parseOptions;
  58. parseOptions.packageData = jax.parseOptions.packageData;
  59. parseOptions.packageData.set('textmacros', { parseOptions: parseOptions, jax: jax, texParser: null });
  60. parseOptions.options.internalMath = internalMath;
  61. },
  62. preprocessors: [function (data) {
  63. var config = data.data.packageData.get('textmacros');
  64. config.parseOptions.nodeFactory.setMmlFactory(config.jax.mmlFactory);
  65. }],
  66. options: {
  67. textmacros: {
  68. packages: ['text-base']
  69. }
  70. }
  71. });
  72. //# sourceMappingURL=TextMacrosConfiguration.js.map