@manuscripts/transform 2.0.3-LEAN-3074-0 → 2.0.4-LEAN-3092

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/cjs/index.js +0 -1
  2. package/dist/cjs/jats/importer/jats-body-dom-parser.js +24 -72
  3. package/dist/cjs/jats/jats-exporter.js +17 -37
  4. package/dist/cjs/schema/index.js +0 -1
  5. package/dist/cjs/schema/nodes/equation.js +12 -14
  6. package/dist/cjs/schema/nodes/equation_element.js +4 -5
  7. package/dist/cjs/schema/nodes/inline_equation.js +12 -16
  8. package/dist/cjs/transformer/builders.js +1 -8
  9. package/dist/cjs/transformer/decode.js +4 -7
  10. package/dist/cjs/transformer/encode.js +4 -25
  11. package/dist/cjs/transformer/node-types.js +0 -1
  12. package/dist/cjs/transformer/object-types.js +0 -1
  13. package/dist/es/index.js +0 -1
  14. package/dist/es/jats/importer/jats-body-dom-parser.js +25 -73
  15. package/dist/es/jats/jats-exporter.js +17 -37
  16. package/dist/es/schema/index.js +0 -1
  17. package/dist/es/schema/nodes/equation.js +12 -14
  18. package/dist/es/schema/nodes/equation_element.js +4 -5
  19. package/dist/es/schema/nodes/inline_equation.js +12 -16
  20. package/dist/es/transformer/builders.js +0 -6
  21. package/dist/es/transformer/decode.js +4 -7
  22. package/dist/es/transformer/encode.js +4 -25
  23. package/dist/es/transformer/node-types.js +0 -1
  24. package/dist/es/transformer/object-types.js +0 -1
  25. package/dist/types/index.d.ts +0 -1
  26. package/dist/types/schema/index.d.ts +0 -1
  27. package/dist/types/schema/nodes/equation.d.ts +3 -4
  28. package/dist/types/schema/nodes/equation_element.d.ts +1 -2
  29. package/dist/types/schema/nodes/inline_equation.d.ts +4 -4
  30. package/dist/types/transformer/builders.d.ts +1 -2
  31. package/package.json +4 -5
  32. package/dist/cjs/mathjax/index.js +0 -41
  33. package/dist/cjs/mathjax/mathjax-packages.js +0 -20
  34. package/dist/cjs/mathjax/mathml-to-svg.js +0 -70
  35. package/dist/cjs/mathjax/tex-to-mathml.js +0 -49
  36. package/dist/cjs/mathjax/tex-to-svg.js +0 -59
  37. package/dist/es/mathjax/index.js +0 -12
  38. package/dist/es/mathjax/mathjax-packages.js +0 -17
  39. package/dist/es/mathjax/mathml-to-svg.js +0 -66
  40. package/dist/es/mathjax/tex-to-mathml.js +0 -45
  41. package/dist/es/mathjax/tex-to-svg.js +0 -55
  42. package/dist/types/mathjax/index.d.ts +0 -3
  43. package/dist/types/mathjax/mathjax-packages.d.ts +0 -16
  44. package/dist/types/mathjax/mathml-to-svg.d.ts +0 -17
  45. package/dist/types/mathjax/tex-to-mathml.d.ts +0 -17
  46. package/dist/types/mathjax/tex-to-svg.d.ts +0 -17
package/dist/cjs/index.js CHANGED
@@ -18,7 +18,6 @@ exports.isSectionLabelNode = void 0;
18
18
  __exportStar(require("./lib/section-group-type"), exports);
19
19
  __exportStar(require("./lib/table-cell-styles"), exports);
20
20
  __exportStar(require("./lib/utils"), exports);
21
- __exportStar(require("./mathjax"), exports);
22
21
  __exportStar(require("./schema"), exports);
23
22
  __exportStar(require("./transformer"), exports);
24
23
  __exportStar(require("./jats"), exports);
@@ -21,8 +21,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.jatsBodyDOMParser = void 0;
22
22
  const mime_1 = __importDefault(require("mime"));
23
23
  const prosemirror_model_1 = require("prosemirror-model");
24
- const mathml_to_svg_1 = require("../../mathjax/mathml-to-svg");
25
- const tex_to_svg_1 = require("../../mathjax/tex-to-svg");
26
24
  const schema_1 = require("../../schema");
27
25
  const transformer_1 = require("../../transformer");
28
26
  const XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
@@ -39,6 +37,24 @@ const chooseContentType = (graphicNode) => {
39
37
  }
40
38
  }
41
39
  };
40
+ const getEquationContent = (p) => {
41
+ var _a;
42
+ const element = p;
43
+ const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
44
+ let contents = '';
45
+ let format = '';
46
+ for (const child of container.childNodes) {
47
+ const nodeName = child.nodeName.replace(/^[a-z]:/, '');
48
+ switch (nodeName) {
49
+ case 'tex-math':
50
+ case 'mml:math':
51
+ contents = child.outerHTML;
52
+ format = nodeName === 'tex-math' ? 'tex' : 'mathml';
53
+ break;
54
+ }
55
+ }
56
+ return { format, contents };
57
+ };
42
58
  const marks = [
43
59
  {
44
60
  tag: 'bold',
@@ -147,91 +163,27 @@ const nodes = [
147
163
  tag: 'inline-formula',
148
164
  node: 'inline_equation',
149
165
  getAttrs: (node) => {
150
- var _a, _b, _c, _d, _e;
151
166
  const element = node;
152
- const attrs = {
153
- id: element.getAttribute('id'),
154
- MathMLRepresentation: '',
155
- SVGRepresentation: '',
156
- TeXRepresentation: '',
157
- };
158
- const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
159
- for (const child of container.childNodes) {
160
- const nodeName = child.nodeName.replace(/^[a-z]:/, '');
161
- switch (nodeName) {
162
- case 'tex-math':
163
- attrs.TeXRepresentation = (_c = (_b = child.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
164
- if (attrs.TeXRepresentation) {
165
- attrs.SVGRepresentation =
166
- (_d = (0, tex_to_svg_1.convertTeXToSVG)(attrs.TeXRepresentation, true)) !== null && _d !== void 0 ? _d : '';
167
- }
168
- break;
169
- case 'mml:math':
170
- ;
171
- child.removeAttribute('id');
172
- attrs.MathMLRepresentation = transformer_1.xmlSerializer.serializeToString(child);
173
- if (attrs.MathMLRepresentation) {
174
- attrs.SVGRepresentation =
175
- (_e = (0, mathml_to_svg_1.convertMathMLToSVG)(attrs.MathMLRepresentation, true)) !== null && _e !== void 0 ? _e : '';
176
- }
177
- break;
178
- }
179
- }
180
- return attrs;
167
+ return getEquationContent(element);
181
168
  },
182
169
  },
183
170
  {
184
171
  tag: 'disp-formula',
185
172
  node: 'equation_element',
186
173
  getAttrs: (node) => {
174
+ var _a, _b;
187
175
  const element = node;
188
- const caption = element.querySelector('figcaption');
189
176
  return {
190
177
  id: element.getAttribute('id'),
191
- suppressCaption: !caption,
178
+ label: (_b = (_a = element.querySelector('label')) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : '',
192
179
  };
193
180
  },
194
181
  getContent: (node, schema) => {
195
- var _a, _b, _c, _d, _e;
196
182
  const element = node;
197
- const attrs = {
198
- MathMLStringRepresentation: '',
199
- SVGStringRepresentation: '',
200
- TeXRepresentation: '',
201
- };
202
- const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
203
- for (const child of container.childNodes) {
204
- const nodeName = child.nodeName.replace(/^[a-z]:/, '');
205
- switch (nodeName) {
206
- case 'tex-math':
207
- attrs.TeXRepresentation = (_c = (_b = child.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
208
- if (attrs.TeXRepresentation) {
209
- attrs.SVGStringRepresentation =
210
- (_d = (0, tex_to_svg_1.convertTeXToSVG)(attrs.TeXRepresentation, true)) !== null && _d !== void 0 ? _d : '';
211
- }
212
- break;
213
- case 'mml:math':
214
- ;
215
- child.removeAttribute('id');
216
- attrs.MathMLStringRepresentation =
217
- transformer_1.xmlSerializer.serializeToString(child);
218
- if (attrs.MathMLStringRepresentation) {
219
- attrs.SVGStringRepresentation =
220
- (_e = (0, mathml_to_svg_1.convertMathMLToSVG)(attrs.MathMLStringRepresentation, true)) !== null && _e !== void 0 ? _e : '';
221
- }
222
- break;
223
- }
224
- }
225
- const caption = element.querySelector('figcaption');
226
- const figcaption = schema.nodes.figcaption.create();
183
+ const attrs = getEquationContent(element);
184
+ const id = element.getAttribute('id');
227
185
  return prosemirror_model_1.Fragment.from([
228
- schema.nodes.equation.createChecked(attrs),
229
- caption
230
- ?
231
- exports.jatsBodyDOMParser.parse(caption, {
232
- topNode: figcaption,
233
- })
234
- : figcaption,
186
+ schema.nodes.equation.createChecked(Object.assign({ id }, attrs)),
235
187
  ]);
236
188
  },
237
189
  },
@@ -164,6 +164,7 @@ class JATSExporter {
164
164
  };
165
165
  this.nodeFromJATS = (JATSFragment) => {
166
166
  JATSFragment = JATSFragment.trim();
167
+ JATSFragment = JATSFragment.replace(' ', ' ');
167
168
  if (!JATSFragment.length) {
168
169
  return null;
169
170
  }
@@ -684,22 +685,23 @@ class JATSExporter {
684
685
  },
685
686
  doc: () => '',
686
687
  equation: (node) => {
687
- const formula = this.document.createElement('disp-formula');
688
- formula.setAttribute('id', normalizeID(node.attrs.id));
689
- if (node.attrs.TeXRepresentation) {
690
- const math = this.document.createElement('tex-math');
691
- math.textContent = node.attrs.TeXRepresentation;
692
- formula.appendChild(math);
693
- }
694
- else if (node.attrs.MathMLStringRepresentation) {
695
- const math = this.nodeFromJATS(node.attrs.MathMLStringRepresentation);
696
- if (math) {
697
- formula.appendChild(math);
698
- }
699
- }
700
- return formula;
688
+ const math = this.nodeFromJATS(node.attrs.contents);
689
+ const mathEl = math;
690
+ mathEl.setAttribute('id', normalizeID(node.attrs.id));
691
+ return mathEl;
692
+ },
693
+ inline_equation: (node) => {
694
+ const eqElement = this.document.createElement('inline-formula');
695
+ const math = this.nodeFromJATS(node.attrs.contents);
696
+ eqElement.append(math);
697
+ return eqElement;
698
+ },
699
+ equation_element: (node) => {
700
+ const eqElement = this.document.createElement('disp-formula');
701
+ eqElement.setAttribute('id', normalizeID(node.attrs.id));
702
+ processChildNodes(eqElement, node, schema_1.schema.nodes.equation);
703
+ return eqElement;
701
704
  },
702
- equation_element: (node) => createFigureElement(node, 'fig', node.type.schema.nodes.equation, 'equation'),
703
705
  figcaption: (node) => {
704
706
  if (!node.textContent) {
705
707
  return '';
@@ -749,28 +751,6 @@ class JATSExporter {
749
751
  },
750
752
  hard_break: () => '',
751
753
  highlight_marker: () => '',
752
- inline_equation: (node) => {
753
- const formula = this.document.createElement('inline-formula');
754
- formula.setAttribute('id', normalizeID(node.attrs.id));
755
- if (node.attrs.TeXRepresentation) {
756
- const math = this.document.createElement('tex-math');
757
- math.textContent = node.attrs.TeXRepresentation;
758
- formula.appendChild(math);
759
- }
760
- else if (node.attrs.MathMLRepresentation) {
761
- const math = this.nodeFromJATS(node.attrs.MathMLRepresentation);
762
- if (math) {
763
- formula.appendChild(math);
764
- }
765
- }
766
- else if (node.attrs.SVGRepresentation) {
767
- const math = this.nodeFromJATS(node.attrs.SVGRepresentation);
768
- if (math) {
769
- formula.appendChild(math);
770
- }
771
- }
772
- return formula;
773
- },
774
754
  inline_footnote: (node) => {
775
755
  const xref = this.document.createElement('xref');
776
756
  xref.setAttribute('ref-type', 'fn');
@@ -115,7 +115,6 @@ __exportStar(require("./nodes/footnotes_section"), exports);
115
115
  __exportStar(require("./nodes/graphical_abstract_section"), exports);
116
116
  __exportStar(require("./nodes/hard_break"), exports);
117
117
  __exportStar(require("./nodes/highlight_marker"), exports);
118
- __exportStar(require("./nodes/inline_equation"), exports);
119
118
  __exportStar(require("./nodes/inline_footnote"), exports);
120
119
  __exportStar(require("./nodes/keyword"), exports);
121
120
  __exportStar(require("./nodes/keywords_element"), exports);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /*!
3
- * © 2019 Atypon Systems LLC
3
+ * © 2023 Atypon Systems LLC
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License");
6
6
  * you may not use this file except in compliance with the License.
@@ -20,9 +20,8 @@ const json_schema_1 = require("@manuscripts/json-schema");
20
20
  exports.equation = {
21
21
  attrs: {
22
22
  id: { default: '' },
23
- MathMLStringRepresentation: { default: '' },
24
- SVGStringRepresentation: { default: '' },
25
- TeXRepresentation: { default: '' },
23
+ contents: { default: '' },
24
+ format: { default: '' },
26
25
  dataTracked: { default: null },
27
26
  },
28
27
  group: 'block',
@@ -30,26 +29,25 @@ exports.equation = {
30
29
  {
31
30
  tag: `div.${json_schema_1.ObjectTypes.Equation}`,
32
31
  getAttrs: (p) => {
33
- const dom = p;
32
+ const htmlEl = p;
34
33
  return {
35
- id: dom.getAttribute('id'),
36
- MathMLStringRepresentation: dom.getAttribute('data-mathml-string-representation'),
37
- SVGStringRepresentation: dom.innerHTML,
38
- TeXRepresentation: dom.getAttribute('data-tex-representation'),
34
+ id: htmlEl.getAttribute('id'),
35
+ format: htmlEl.getAttribute('data-equation-format'),
36
+ contents: htmlEl.innerHTML,
39
37
  };
40
38
  },
41
39
  },
42
40
  ],
43
41
  toDOM: (node) => {
44
42
  const equationNode = node;
43
+ const { id, contents, format } = equationNode.attrs;
45
44
  const dom = document.createElement('div');
46
- dom.setAttribute('id', equationNode.attrs.id);
47
45
  dom.classList.add(json_schema_1.ObjectTypes.Equation);
48
- if (equationNode.attrs.MathMLStringRepresentation) {
49
- dom.setAttribute('data-mathml-string-representation', equationNode.attrs.MathMLStringRepresentation);
46
+ dom.setAttribute('id', id);
47
+ if (format) {
48
+ dom.setAttribute('data-equation-format', format);
50
49
  }
51
- dom.setAttribute('data-tex-representation', equationNode.attrs.TeXRepresentation);
52
- dom.innerHTML = equationNode.attrs.SVGStringRepresentation;
50
+ dom.innerHTML = contents;
53
51
  return dom;
54
52
  },
55
53
  };
@@ -17,11 +17,10 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.equationElement = void 0;
19
19
  exports.equationElement = {
20
- content: '(equation | placeholder) figcaption',
20
+ content: '(equation | placeholder)',
21
21
  attrs: {
22
22
  id: { default: '' },
23
- suppressCaption: { default: true },
24
- suppressTitle: { default: undefined },
23
+ label: { default: '' },
25
24
  dataTracked: { default: null },
26
25
  comments: { default: null },
27
26
  },
@@ -29,7 +28,7 @@ exports.equationElement = {
29
28
  group: 'block element',
30
29
  parseDOM: [
31
30
  {
32
- tag: 'figure.equation',
31
+ tag: 'div.equation',
33
32
  getAttrs: (p) => {
34
33
  const dom = p;
35
34
  return {
@@ -41,7 +40,7 @@ exports.equationElement = {
41
40
  toDOM: (node) => {
42
41
  const equationElementNode = node;
43
42
  return [
44
- 'figure',
43
+ 'div',
45
44
  {
46
45
  class: 'equation',
47
46
  id: equationElementNode.attrs.id,
@@ -16,43 +16,39 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.inlineEquation = void 0;
19
- const json_schema_1 = require("@manuscripts/json-schema");
20
19
  exports.inlineEquation = {
21
20
  attrs: {
22
- id: { default: '' },
23
- MathMLRepresentation: { default: '' },
24
- SVGRepresentation: { default: '' },
25
- TeXRepresentation: { default: '' },
26
21
  dataTracked: { default: null },
22
+ comments: { default: null },
23
+ contents: { default: '' },
24
+ format: { default: '' },
27
25
  },
26
+ selectable: false,
28
27
  atom: true,
29
28
  inline: true,
30
29
  draggable: true,
31
30
  group: 'inline',
32
31
  parseDOM: [
33
32
  {
34
- tag: `span.${json_schema_1.ObjectTypes.InlineMathFragment}`,
33
+ tag: `span.MPInlineMathFragment`,
35
34
  getAttrs: (p) => {
36
35
  const dom = p;
37
36
  return {
38
- id: dom.getAttribute('id'),
39
- MathMLRepresentation: dom.getAttribute('data-mathml-representation') || '',
40
- SVGRepresentation: dom.innerHTML || '',
41
- TeXRepresentation: dom.getAttribute('data-tex-representation') || '',
37
+ format: dom.getAttribute('data-equation-format'),
38
+ contents: dom.innerHTML,
42
39
  };
43
40
  },
44
41
  },
45
42
  ],
46
43
  toDOM: (node) => {
47
44
  const inlineEquationNode = node;
45
+ const { contents, format } = inlineEquationNode.attrs;
48
46
  const dom = document.createElement('span');
49
- dom.classList.add(json_schema_1.ObjectTypes.InlineMathFragment);
50
- dom.setAttribute('id', inlineEquationNode.attrs.id);
51
- dom.setAttribute('data-tex-representation', inlineEquationNode.attrs.TeXRepresentation);
52
- if (inlineEquationNode.attrs.MathMLRepresentation) {
53
- dom.setAttribute('data-mathml-representation', inlineEquationNode.attrs.MathMLRepresentation);
47
+ dom.classList.add('MPInlineMathFragment');
48
+ if (format) {
49
+ dom.setAttribute('data-equation-format', format);
54
50
  }
55
- dom.innerHTML = inlineEquationNode.attrs.SVGRepresentation;
51
+ dom.innerHTML = contents;
56
52
  return dom;
57
53
  },
58
54
  };
@@ -18,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.buildTitles = exports.buildElementsOrder = exports.auxiliaryObjectTypes = exports.buildJournal = exports.buildAttribution = exports.buildContributorRole = exports.buildContribution = exports.buildColor = exports.buildParagraph = exports.buildSection = exports.buildCorresp = exports.buildFootnotesOrder = exports.buildFootnote = exports.buildInlineMathFragment = exports.buildNote = exports.buildComment = exports.buildSupplementaryMaterial = exports.buildAffiliation = exports.buildFigure = exports.buildKeywordGroup = exports.buildKeyword = exports.buildBibliographyElement = exports.buildBibliographicDate = exports.buildBibliographicName = exports.buildBibliographyItem = exports.buildContributor = exports.buildManuscript = exports.buildProject = void 0;
21
+ exports.buildTitles = exports.buildElementsOrder = exports.auxiliaryObjectTypes = exports.buildJournal = exports.buildAttribution = exports.buildContributorRole = exports.buildContribution = exports.buildColor = exports.buildParagraph = exports.buildSection = exports.buildCorresp = exports.buildFootnotesOrder = exports.buildFootnote = exports.buildNote = exports.buildComment = exports.buildSupplementaryMaterial = exports.buildAffiliation = exports.buildFigure = exports.buildKeywordGroup = exports.buildKeyword = exports.buildBibliographyElement = exports.buildBibliographicDate = exports.buildBibliographicName = exports.buildBibliographyItem = exports.buildContributor = exports.buildManuscript = exports.buildProject = void 0;
22
22
  const json_schema_1 = require("@manuscripts/json-schema");
23
23
  const w3c_xmlserializer_1 = __importDefault(require("w3c-xmlserializer"));
24
24
  const schema_1 = require("../schema");
@@ -115,13 +115,6 @@ const buildNote = (target, source, contents = '') => ({
115
115
  contents,
116
116
  });
117
117
  exports.buildNote = buildNote;
118
- const buildInlineMathFragment = (containingObject, TeXRepresentation) => ({
119
- _id: (0, id_1.generateID)(json_schema_1.ObjectTypes.InlineMathFragment),
120
- objectType: json_schema_1.ObjectTypes.InlineMathFragment,
121
- containingObject: containingObject || undefined,
122
- TeXRepresentation,
123
- });
124
- exports.buildInlineMathFragment = buildInlineMathFragment;
125
118
  const buildFootnote = (containingObject, contents, kind = 'footnote') => ({
126
119
  _id: (0, id_1.generateID)(json_schema_1.ObjectTypes.Footnote),
127
120
  objectType: json_schema_1.ObjectTypes.Footnote,
@@ -271,9 +271,8 @@ class Decoder {
271
271
  const model = data;
272
272
  return schema_1.schema.nodes.equation.createChecked({
273
273
  id: model._id,
274
- MathMLStringRepresentation: model.MathMLStringRepresentation,
275
- SVGStringRepresentation: model.SVGStringRepresentation,
276
- TeXRepresentation: model.TeXRepresentation,
274
+ contents: model.contents,
275
+ format: model.format,
277
276
  });
278
277
  },
279
278
  [json_schema_1.ObjectTypes.EquationElement]: (data) => {
@@ -292,12 +291,10 @@ class Decoder {
292
291
  else {
293
292
  throw new errors_1.MissingElement(model.containedObjectID);
294
293
  }
295
- const figcaption = this.getFigcaption(model);
296
294
  return schema_1.schema.nodes.equation_element.createChecked({
297
295
  id: model._id,
298
- suppressCaption: Boolean(model.suppressCaption),
299
- suppressTitle: Boolean(model.suppressTitle === undefined ? true : model.suppressTitle),
300
- }, [equation, figcaption]);
296
+ label: model.label,
297
+ }, [equation]);
301
298
  },
302
299
  [json_schema_1.ObjectTypes.FootnotesElement]: (data) => {
303
300
  const foonotesElementModel = data;
@@ -62,12 +62,6 @@ const listContents = (node) => {
62
62
  }
63
63
  return (0, w3c_xmlserializer_1.default)(output);
64
64
  };
65
- const svgDefs = (svg) => {
66
- const template = document.createElement('template');
67
- template.innerHTML = svg.trim();
68
- const defs = template.content.querySelector('defs');
69
- return defs ? (0, w3c_xmlserializer_1.default)(defs) : undefined;
70
- };
71
65
  const tableRowDisplayStyle = (tagName, parent) => {
72
66
  switch (tagName) {
73
67
  case 'thead':
@@ -353,20 +347,12 @@ const encoders = {
353
347
  : false,
354
348
  }),
355
349
  equation: (node) => ({
356
- MathMLStringRepresentation: node.attrs.MathMLStringRepresentation || undefined,
357
- TeXRepresentation: node.attrs.TeXRepresentation,
358
- SVGStringRepresentation: node.attrs.SVGStringRepresentation,
350
+ contents: node.attrs.contents,
351
+ format: node.attrs.format,
359
352
  }),
360
353
  equation_element: (node) => ({
361
354
  containedObjectID: attributeOfNodeType(node, 'equation', 'id'),
362
- caption: inlineContentOfChildNodeType(node, node.type.schema.nodes.figcaption, node.type.schema.nodes.caption),
363
- title: inlineContentOfChildNodeType(node, node.type.schema.nodes.figcaption, node.type.schema.nodes.caption_title, false),
364
- elementType: 'p',
365
- suppressCaption: Boolean(node.attrs.suppressCaption) || undefined,
366
- suppressTitle: node.attrs.suppressTitle === undefined ||
367
- node.attrs.suppressTitle === true
368
- ? undefined
369
- : false,
355
+ label: node.attrs.label,
370
356
  }),
371
357
  figure: (node) => ({
372
358
  contentType: node.attrs.contentType || undefined,
@@ -413,12 +399,6 @@ const encoders = {
413
399
  .map((childNode) => childNode.attrs.id)
414
400
  .filter((id) => id),
415
401
  }),
416
- inline_equation: (node, parent) => ({
417
- containingObject: parent.attrs.id,
418
- TeXRepresentation: node.attrs.TeXRepresentation,
419
- SVGRepresentation: node.attrs.SVGRepresentation,
420
- SVGGlyphs: svgDefs(node.attrs.SVGRepresentation),
421
- }),
422
402
  keyword: (node, parent) => ({
423
403
  containedGroup: parent.attrs.id,
424
404
  name: keywordContents(node),
@@ -580,8 +560,7 @@ const encode = (node) => {
580
560
  if (placeholderTypes.includes(child.type)) {
581
561
  return;
582
562
  }
583
- if (parent.type === schema_1.schema.nodes.paragraph &&
584
- child.type !== schema_1.schema.nodes.inline_equation) {
563
+ if (parent.type === schema_1.schema.nodes.paragraph) {
585
564
  return;
586
565
  }
587
566
  const { model, markers } = (0, exports.modelFromNode)(child, parent, path, priority);
@@ -39,7 +39,6 @@ exports.nodeTypesMap = new Map([
39
39
  [schema_1.schema.nodes.footnotes_section, json_schema_1.ObjectTypes.Section],
40
40
  [schema_1.schema.nodes.graphical_abstract_section, json_schema_1.ObjectTypes.Section],
41
41
  [schema_1.schema.nodes.highlight_marker, json_schema_1.ObjectTypes.HighlightMarker],
42
- [schema_1.schema.nodes.inline_equation, json_schema_1.ObjectTypes.InlineMathFragment],
43
42
  [schema_1.schema.nodes.keyword, json_schema_1.ObjectTypes.Keyword],
44
43
  [schema_1.schema.nodes.keywords_element, json_schema_1.ObjectTypes.KeywordsElement],
45
44
  [schema_1.schema.nodes.keywords, json_schema_1.ObjectTypes.Section],
@@ -38,7 +38,6 @@ exports.manuscriptObjects = [
38
38
  json_schema_1.ObjectTypes.CommentAnnotation,
39
39
  json_schema_1.ObjectTypes.Contributor,
40
40
  json_schema_1.ObjectTypes.Footnote,
41
- json_schema_1.ObjectTypes.InlineMathFragment,
42
41
  json_schema_1.ObjectTypes.Section,
43
42
  ].concat(exports.elementObjects);
44
43
  const isManuscriptModel = (model) => {
package/dist/es/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from './lib/section-group-type';
2
2
  export * from './lib/table-cell-styles';
3
3
  export * from './lib/utils';
4
- export * from './mathjax';
5
4
  export * from './schema';
6
5
  export * from './transformer';
7
6
  export * from './jats';
@@ -15,10 +15,8 @@
15
15
  */
16
16
  import mime from 'mime';
17
17
  import { DOMParser, Fragment } from 'prosemirror-model';
18
- import { convertMathMLToSVG } from '../../mathjax/mathml-to-svg';
19
- import { convertTeXToSVG } from '../../mathjax/tex-to-svg';
20
18
  import { schema } from '../../schema';
21
- import { chooseSectionCategory, xmlSerializer } from '../../transformer';
19
+ import { chooseSectionCategory } from '../../transformer';
22
20
  const XLINK_NAMESPACE = 'http://www.w3.org/1999/xlink';
23
21
  const chooseContentType = (graphicNode) => {
24
22
  if (graphicNode) {
@@ -33,6 +31,24 @@ const chooseContentType = (graphicNode) => {
33
31
  }
34
32
  }
35
33
  };
34
+ const getEquationContent = (p) => {
35
+ var _a;
36
+ const element = p;
37
+ const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
38
+ let contents = '';
39
+ let format = '';
40
+ for (const child of container.childNodes) {
41
+ const nodeName = child.nodeName.replace(/^[a-z]:/, '');
42
+ switch (nodeName) {
43
+ case 'tex-math':
44
+ case 'mml:math':
45
+ contents = child.outerHTML;
46
+ format = nodeName === 'tex-math' ? 'tex' : 'mathml';
47
+ break;
48
+ }
49
+ }
50
+ return { format, contents };
51
+ };
36
52
  const marks = [
37
53
  {
38
54
  tag: 'bold',
@@ -141,91 +157,27 @@ const nodes = [
141
157
  tag: 'inline-formula',
142
158
  node: 'inline_equation',
143
159
  getAttrs: (node) => {
144
- var _a, _b, _c, _d, _e;
145
160
  const element = node;
146
- const attrs = {
147
- id: element.getAttribute('id'),
148
- MathMLRepresentation: '',
149
- SVGRepresentation: '',
150
- TeXRepresentation: '',
151
- };
152
- const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
153
- for (const child of container.childNodes) {
154
- const nodeName = child.nodeName.replace(/^[a-z]:/, '');
155
- switch (nodeName) {
156
- case 'tex-math':
157
- attrs.TeXRepresentation = (_c = (_b = child.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
158
- if (attrs.TeXRepresentation) {
159
- attrs.SVGRepresentation =
160
- (_d = convertTeXToSVG(attrs.TeXRepresentation, true)) !== null && _d !== void 0 ? _d : '';
161
- }
162
- break;
163
- case 'mml:math':
164
- ;
165
- child.removeAttribute('id');
166
- attrs.MathMLRepresentation = xmlSerializer.serializeToString(child);
167
- if (attrs.MathMLRepresentation) {
168
- attrs.SVGRepresentation =
169
- (_e = convertMathMLToSVG(attrs.MathMLRepresentation, true)) !== null && _e !== void 0 ? _e : '';
170
- }
171
- break;
172
- }
173
- }
174
- return attrs;
161
+ return getEquationContent(element);
175
162
  },
176
163
  },
177
164
  {
178
165
  tag: 'disp-formula',
179
166
  node: 'equation_element',
180
167
  getAttrs: (node) => {
168
+ var _a, _b;
181
169
  const element = node;
182
- const caption = element.querySelector('figcaption');
183
170
  return {
184
171
  id: element.getAttribute('id'),
185
- suppressCaption: !caption,
172
+ label: (_b = (_a = element.querySelector('label')) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : '',
186
173
  };
187
174
  },
188
175
  getContent: (node, schema) => {
189
- var _a, _b, _c, _d, _e;
190
176
  const element = node;
191
- const attrs = {
192
- MathMLStringRepresentation: '',
193
- SVGStringRepresentation: '',
194
- TeXRepresentation: '',
195
- };
196
- const container = (_a = element.querySelector('alternatives')) !== null && _a !== void 0 ? _a : element;
197
- for (const child of container.childNodes) {
198
- const nodeName = child.nodeName.replace(/^[a-z]:/, '');
199
- switch (nodeName) {
200
- case 'tex-math':
201
- attrs.TeXRepresentation = (_c = (_b = child.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== null && _c !== void 0 ? _c : '';
202
- if (attrs.TeXRepresentation) {
203
- attrs.SVGStringRepresentation =
204
- (_d = convertTeXToSVG(attrs.TeXRepresentation, true)) !== null && _d !== void 0 ? _d : '';
205
- }
206
- break;
207
- case 'mml:math':
208
- ;
209
- child.removeAttribute('id');
210
- attrs.MathMLStringRepresentation =
211
- xmlSerializer.serializeToString(child);
212
- if (attrs.MathMLStringRepresentation) {
213
- attrs.SVGStringRepresentation =
214
- (_e = convertMathMLToSVG(attrs.MathMLStringRepresentation, true)) !== null && _e !== void 0 ? _e : '';
215
- }
216
- break;
217
- }
218
- }
219
- const caption = element.querySelector('figcaption');
220
- const figcaption = schema.nodes.figcaption.create();
177
+ const attrs = getEquationContent(element);
178
+ const id = element.getAttribute('id');
221
179
  return Fragment.from([
222
- schema.nodes.equation.createChecked(attrs),
223
- caption
224
- ?
225
- jatsBodyDOMParser.parse(caption, {
226
- topNode: figcaption,
227
- })
228
- : figcaption,
180
+ schema.nodes.equation.createChecked(Object.assign({ id }, attrs)),
229
181
  ]);
230
182
  },
231
183
  },