@uniweb/semantic-parser 1.1.11 → 1.1.12
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.
- package/package.json +1 -1
- package/src/processors/sequence.js +22 -1
package/package.json
CHANGED
|
@@ -404,6 +404,17 @@ function getTextContent(content, options = {}) {
|
|
|
404
404
|
// dangerouslySetInnerHTML. The HTML5 parser handles <math>
|
|
405
405
|
// as MathML natively — zero runtime math library needed.
|
|
406
406
|
return prev + (curr.attrs?.mathml || "");
|
|
407
|
+
} else if (type === "inset_placeholder") {
|
|
408
|
+
// Inline inset (e.g. a `[@key]{...}` cite). Emit a marker
|
|
409
|
+
// tag the renderer can split on; the actual inset is
|
|
410
|
+
// rendered via React from `block.getInset(refId)`. The
|
|
411
|
+
// paragraph's `children` array also carries an ordered
|
|
412
|
+
// record of inset entries (see processInlineElements) so
|
|
413
|
+
// consumers that don't want to substring-walk the HTML
|
|
414
|
+
// have an alternative path.
|
|
415
|
+
const refId = curr.attrs?.refId;
|
|
416
|
+
if (!refId) return prev;
|
|
417
|
+
return prev + `<uniweb-inset data-ref-id="${refId}"></uniweb-inset>`;
|
|
407
418
|
} else if (type === "hardBreak") {
|
|
408
419
|
return prev + "<br>";
|
|
409
420
|
} else {
|
|
@@ -425,8 +436,18 @@ function processInlineElements(content) {
|
|
|
425
436
|
type: "icon",
|
|
426
437
|
attrs: parseUniwebIcon(item.attrs),
|
|
427
438
|
});
|
|
428
|
-
} else if (item.type === "math-inline") {
|
|
439
|
+
} else if (item.type === "math-inline" || item.type === "math_inline") {
|
|
429
440
|
items.push(item);
|
|
441
|
+
} else if (item.type === "inset_placeholder") {
|
|
442
|
+
// Inline inset (e.g., a `[@key]{...}` cite or a mid-prose
|
|
443
|
+
// visual inset). The Render path looks the actual block up
|
|
444
|
+
// via block.getInset(refId); we just carry the marker here so
|
|
445
|
+
// its position in the text flow is preserved.
|
|
446
|
+
items.push({
|
|
447
|
+
type: "inset",
|
|
448
|
+
refId: item.attrs?.refId,
|
|
449
|
+
embedKind: item.attrs?.embedKind || "visual",
|
|
450
|
+
});
|
|
430
451
|
} else if (item.type === "text" && item.marks) {
|
|
431
452
|
// Extract links from text nodes with link marks
|
|
432
453
|
const linkMark = item.marks.find((m) => m.type === "link");
|