@openuji/speculator 0.7.3 → 0.7.4

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 (50) hide show
  1. package/dist/parse/html/SpecStatementHtmlParser.d.ts +4 -1
  2. package/dist/parse/html/SpecStatementHtmlParser.d.ts.map +1 -1
  3. package/dist/parse/html/SpecStatementHtmlParser.js +42 -26
  4. package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -1
  5. package/dist/parse/html/parser.d.ts.map +1 -1
  6. package/dist/parse/html/parser.js +25 -1
  7. package/dist/parse/html/parser.js.map +1 -1
  8. package/dist/parse/index.d.ts +1 -0
  9. package/dist/parse/index.d.ts.map +1 -1
  10. package/dist/parse/index.js +2 -0
  11. package/dist/parse/index.js.map +1 -1
  12. package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts.map +1 -1
  13. package/dist/parse/markdown/HtmlBlockMarkdownParser.js +2 -1
  14. package/dist/parse/markdown/HtmlBlockMarkdownParser.js.map +1 -1
  15. package/dist/parse/markdown/parser.d.ts.map +1 -1
  16. package/dist/parse/markdown/parser.js +6 -2
  17. package/dist/parse/markdown/parser.js.map +1 -1
  18. package/dist/parse/utils/hast-utils.d.ts.map +1 -1
  19. package/dist/parse/utils/hast-utils.js +110 -7
  20. package/dist/parse/utils/hast-utils.js.map +1 -1
  21. package/dist/parse/utils/markdown-utils.d.ts +18 -0
  22. package/dist/parse/utils/markdown-utils.d.ts.map +1 -1
  23. package/dist/parse/utils/markdown-utils.js +142 -0
  24. package/dist/parse/utils/markdown-utils.js.map +1 -1
  25. package/dist/parse/utils/normative.js +3 -3
  26. package/dist/parse/utils/normative.js.map +1 -1
  27. package/dist/postprocess/index.d.ts +1 -0
  28. package/dist/postprocess/index.d.ts.map +1 -1
  29. package/dist/postprocess/index.js +3 -0
  30. package/dist/postprocess/index.js.map +1 -1
  31. package/dist/postprocess/plugins/statement-distribute.d.ts +13 -0
  32. package/dist/postprocess/plugins/statement-distribute.d.ts.map +1 -0
  33. package/dist/postprocess/plugins/statement-distribute.js +112 -0
  34. package/dist/postprocess/plugins/statement-distribute.js.map +1 -0
  35. package/dist/postprocess/plugins/statement-index.d.ts.map +1 -1
  36. package/dist/postprocess/plugins/statement-index.js +20 -17
  37. package/dist/postprocess/plugins/statement-index.js.map +1 -1
  38. package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts.map +1 -1
  39. package/dist/postprocess/plugins/statementsJsonLd-compute.js +1 -0
  40. package/dist/postprocess/plugins/statementsJsonLd-compute.js.map +1 -1
  41. package/dist/postprocess/walk-ast.d.ts +7 -15
  42. package/dist/postprocess/walk-ast.d.ts.map +1 -1
  43. package/dist/postprocess/walk-ast.js +48 -57
  44. package/dist/postprocess/walk-ast.js.map +1 -1
  45. package/dist/types/ast.generated.d.ts +33 -4
  46. package/dist/types/ast.generated.d.ts.map +1 -1
  47. package/dist/types/ast.generated.js +1 -1
  48. package/dist/types/ast.generated.js.map +1 -1
  49. package/package.json +1 -1
  50. package/schema/spec-ast.schema.json +85 -3
@@ -2,7 +2,10 @@
2
2
  * Spec Statement HTML Parser
3
3
  *
4
4
  * Handles <spec-statement> custom elements.
5
- * Auto-detects RFC 2119 keywords and generates stable IDs.
5
+ * Reads attributes and delegates child parsing to the context.
6
+ * Works for both pure HTML and markdown inputs — like <dfn>.
7
+ * Distribution of normative properties to list items / table rows
8
+ * is handled by the statement-distribute postprocessing plugin.
6
9
  */
7
10
  import type { HtmlParserModule } from '#src/parse/registry';
8
11
  export declare const SpecStatementHtmlParser: HtmlParserModule;
@@ -1 +1 @@
1
- {"version":3,"file":"SpecStatementHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/SpecStatementHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAyD,MAAM,qBAAqB,CAAC;AAMnH,eAAO,MAAM,uBAAuB,EAAE,gBAYrC,CAAC"}
1
+ {"version":3,"file":"SpecStatementHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/SpecStatementHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAyD,MAAM,qBAAqB,CAAC;AAKnH,eAAO,MAAM,uBAAuB,EAAE,gBAYrC,CAAC"}
@@ -2,7 +2,10 @@
2
2
  * Spec Statement HTML Parser
3
3
  *
4
4
  * Handles <spec-statement> custom elements.
5
- * Auto-detects RFC 2119 keywords and generates stable IDs.
5
+ * Reads attributes and delegates child parsing to the context.
6
+ * Works for both pure HTML and markdown inputs — like <dfn>.
7
+ * Distribution of normative properties to list items / table rows
8
+ * is handled by the statement-distribute postprocessing plugin.
6
9
  */
7
10
  import { slugify, toPlainText } from '#src/parse/normalize';
8
11
  import { inferLevel } from '#src/parse/utils/normative';
@@ -19,34 +22,47 @@ export const SpecStatementHtmlParser = {
19
22
  };
20
23
  function parseNode(element, ctx) {
21
24
  const sourcePos = ctx.createSourcePos(element);
22
- const children = ctx.transformInlineChildren(element.children);
23
- // Extract plain text for contentText from children (strips markup, preserves casing)
24
- const rawText = toPlainText(children).trim().replace(/\s+/g, ' ');
25
- const contentText = rawText;
26
- // Determine level (use lowercase for keyword matching)
25
+ const allChildren = ctx.transformBlockChildren(element.children);
26
+ const rawText = toPlainText(allChildren).trim().replace(/\s+/g, ' ');
27
+ const level = getLevel(element, rawText, ctx);
28
+ const { id, tempId } = getId(element, rawText, ctx);
29
+ const dataCopConcept = ctx.getAttr(element, 'data-cop-concept');
30
+ const isInline = allChildren.length === 1 && allChildren[0].type === 'paragraph';
31
+ if (isInline) {
32
+ return {
33
+ type: 'specStatement',
34
+ id,
35
+ tempId,
36
+ level: level,
37
+ dataCopConcept,
38
+ contentText: rawText,
39
+ children: allChildren[0].children,
40
+ sourcePos,
41
+ };
42
+ }
43
+ else {
44
+ return {
45
+ type: 'specStatementGroup',
46
+ id,
47
+ level: level,
48
+ dataCopConcept,
49
+ children: allChildren,
50
+ sourcePos,
51
+ };
52
+ }
53
+ }
54
+ function getLevel(element, text, ctx) {
27
55
  let level = (ctx.getAttr(element, 'level') || '').toUpperCase().replace(/\s+/g, ' ');
28
56
  if (!level) {
29
- level = inferLevel(rawText);
57
+ level = inferLevel(text);
30
58
  }
31
- // Determine ID
59
+ return level;
60
+ }
61
+ function getId(element, text, ctx) {
32
62
  const explicitId = ctx.getAttr(element, 'id');
33
- const about = ctx.getAttr(element, 'about');
34
- const dataCopConcept = ctx.getAttr(element, 'data-cop-concept');
35
- const id = explicitId;
36
- let tempId = undefined;
37
- if (!id) {
38
- tempId = about ? (about.startsWith('#') ? about.slice(1) : slugify(about)) : slugify(contentText);
39
- }
40
- const node = {
41
- type: 'specStatement',
42
- id,
43
- tempId,
44
- level: level,
45
- dataCopConcept,
46
- contentText,
47
- children,
48
- sourcePos,
49
- };
50
- return node;
63
+ if (explicitId)
64
+ return { id: explicitId };
65
+ const tempId = slugify(text);
66
+ return { tempId };
51
67
  }
52
68
  //# sourceMappingURL=SpecStatementHtmlParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpecStatementHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/SpecStatementHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACrD,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,KAAK,EAAE,CAAC;IAER,WAAW,CAAC,IAAa,EAAE,GAAiB;QACxC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAa,EAAE,GAAiB;QACzC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAsB,CAAC;IACrD,CAAC;CACJ,CAAC;AAEF,SAAS,SAAS,CAAC,OAAgB,EAAE,GAAiB;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/D,qFAAqF;IACrF,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC;IAE5B,uDAAuD;IACvD,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,eAAe;IACf,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEhE,MAAM,EAAE,GAAuB,UAAU,CAAC;IAC1C,IAAI,MAAM,GAAuB,SAAS,CAAC;IAE3C,IAAI,CAAC,EAAE,EAAE,CAAC;QACN,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,IAAI,GAAuB;QAC7B,IAAI,EAAE,eAAe;QACrB,EAAE;QACF,MAAM;QACN,KAAK,EAAE,KAAoC;QAC3C,cAAc;QACd,WAAW;QACX,QAAQ;QACR,SAAS;KACZ,CAAC;IAEF,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"SpecStatementHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/SpecStatementHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACrD,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,KAAK,EAAE,CAAC;IAER,WAAW,CAAC,IAAa,EAAE,GAAiB;QACxC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,IAAa,EAAE,GAAiB;QACzC,OAAO,SAAS,CAAC,IAAI,EAAE,GAAG,CAAsB,CAAC;IACrD,CAAC;CACJ,CAAC;AAEF,SAAS,SAAS,CAAC,OAAgB,EAAE,GAAiB;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,WAAW,CAAC,WAA4C,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtG,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;IAEjF,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO;YACH,IAAI,EAAE,eAAe;YACrB,EAAE;YACF,MAAM;YACN,KAAK,EAAE,KAAoC;YAC3C,cAAc;YACd,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAG,WAAW,CAAC,CAAC,CAAuC,CAAC,QAAQ;YACxE,SAAS;SACZ,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,OAAO;YACH,IAAI,EAAE,oBAAoB;YAC1B,EAAE;YACF,KAAK,EAAE,KAAoC;YAC3C,cAAc;YACd,QAAQ,EAAE,WAAsB;YAChC,SAAS;SACZ,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,OAAgB,EAAE,IAAY,EAAE,GAAiB;IAC/D,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,KAAK,CAAC,OAAgB,EAAE,IAAY,EAAE,GAAiB;IAC5D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE9C,IAAI,UAAU;QAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EAIR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EAIvB,MAAM,qBAAqB,CAAC;AAqC7B;;GAEG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC7C,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAU;IAElC,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,QAAQ,GAAE,oBAAsC;IAI5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;IAgB5C;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4CtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA+BlC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EAIR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EAIvB,MAAM,qBAAqB,CAAC;AAqC7B;;GAEG;AACH,qBAAa,cAAe,YAAW,UAAU;IAC7C,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAU;IAElC,OAAO,CAAC,SAAS,CAAkD;IACnE,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,QAAQ,GAAE,oBAAsC;IAI5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;IAgB5C;;OAEG;IACH,OAAO,CAAC,aAAa;IAkDrB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4CtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA+BlC"}
@@ -74,9 +74,33 @@ export class HtmlUnitParser {
74
74
  transformBlockChildren: (children) => {
75
75
  const results = [];
76
76
  const ctx = self.createContext(unit);
77
+ let currentInlines = [];
78
+ const flushInlines = () => {
79
+ if (currentInlines.length > 0) {
80
+ const inlines = self.transformInlineChildren(currentInlines, unit);
81
+ if (inlines.length > 0) {
82
+ results.push({
83
+ type: 'paragraph',
84
+ children: inlines,
85
+ });
86
+ }
87
+ currentInlines = [];
88
+ }
89
+ };
77
90
  for (const child of children) {
78
- results.push(...self.transformBlock(child, ctx));
91
+ if (child.type === 'element') {
92
+ const element = child;
93
+ const handler = self.registry.getHtmlBlockHandler(element.tagName.toLowerCase());
94
+ if (handler?.handleBlock) {
95
+ flushInlines();
96
+ results.push(...self.transformBlock(child, ctx));
97
+ continue;
98
+ }
99
+ }
100
+ // Text, inline elements, etc. → collect as inlines
101
+ currentInlines.push(child);
79
102
  }
103
+ flushInlines();
80
104
  return results;
81
105
  },
82
106
  getTextContent,
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parse/html/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parse/html/parser.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,5 @@ export { buildSectionHierarchy, assembleDocument } from '#src/parse/assembler';
13
13
  export { MarkdownUnitParser } from '#src/parse/markdown/index';
14
14
  export { HtmlUnitParser } from '#src/parse/html/index';
15
15
  export { coreHtmlParsers, coreMarkdownParsers } from '#src/parse/parsers';
16
+ export * from '#src/parse/utils/normative';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrG,OAAO,EACH,oBAAoB,EACpB,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACR,UAAU,EACV,UAAU,EACV,WAAW,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrG,OAAO,EACH,oBAAoB,EACpB,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACR,UAAU,EACV,UAAU,EACV,WAAW,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI1E,cAAc,4BAA4B,CAAC"}
@@ -16,4 +16,6 @@ export { MarkdownUnitParser } from '#src/parse/markdown/index';
16
16
  export { HtmlUnitParser } from '#src/parse/html/index';
17
17
  // Parser module aggregates
18
18
  export { coreHtmlParsers, coreMarkdownParsers } from '#src/parse/parsers';
19
+ // Normative Utils
20
+ export * from '#src/parse/utils/normative';
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErG,6DAA6D;AAC7D,OAAO,EACH,oBAAoB,EACpB,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAmB7B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,YAAY;AACZ,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,2BAA2B;AAC3B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parse/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sBAAsB;AACtB,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErG,6DAA6D;AAC7D,OAAO,EACH,oBAAoB,EACpB,eAAe,GAClB,MAAM,qBAAqB,CAAC;AAmB7B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,YAAY;AACZ,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,6BAA6B;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,2BAA2B;AAC3B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG1E,kBAAkB;AAClB,cAAc,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlBlockMarkdownParser.d.ts","sourceRoot":"","sources":["../../../src/parse/markdown/HtmlBlockMarkdownParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,oBAAoB,EAAwE,MAAM,qBAAqB,CAAC;AAGtI;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,oBAuCrC,CAAC"}
1
+ {"version":3,"file":"HtmlBlockMarkdownParser.d.ts","sourceRoot":"","sources":["../../../src/parse/markdown/HtmlBlockMarkdownParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,oBAAoB,EAAwE,MAAM,qBAAqB,CAAC;AAGtI;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,oBAyCrC,CAAC"}
@@ -22,7 +22,8 @@ export const HtmlBlockMarkdownParser = {
22
22
  if (node.type !== 'html')
23
23
  return null;
24
24
  const htmlNode = node;
25
- const html = htmlNode.value;
25
+ // Restore blank lines preserved by markdown-utils
26
+ const html = htmlNode.value.replace(/__SPECULATOR_BLANK_LINE__/g, '\n');
26
27
  // Parse HTML to get proper element structure
27
28
  const processor = unified().use(rehypeParse, { fragment: true });
28
29
  const tree = processor.parse(html);
@@ -1 +1 @@
1
- {"version":3,"file":"HtmlBlockMarkdownParser.js","sourceRoot":"","sources":["../../../src/parse/markdown/HtmlBlockMarkdownParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAIvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IACzD,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,EAAE,wCAAwC;IAElD,YAAY,CAAC,KAAuB,EAAE,IAAkB;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,IAAsB,EAAE,GAAiB;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,QAAQ,GAAG,IAAY,CAAC;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE5B,6CAA6C;QAC7C,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAElD,yDAAyD;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,gEAAgE;QAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAyB,CAAC,CAAC;QACjF,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,QAAQ;YACR,SAAS;SACZ,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"HtmlBlockMarkdownParser.js","sourceRoot":"","sources":["../../../src/parse/markdown/HtmlBlockMarkdownParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAIvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IACzD,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,EAAE,wCAAwC;IAElD,YAAY,CAAC,KAAuB,EAAE,IAAkB;QACpD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,IAAsB,EAAE,GAAiB;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,QAAQ,GAAG,IAAY,CAAC;QAC9B,kDAAkD;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;QAGxE,6CAA6C;QAC7C,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAS,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE5C,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAElD,yDAAyD;QACzD,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,gEAAgE;QAChE,MAAM,QAAQ,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAyB,CAAC,CAAC;QACjF,OAAO;YACH,IAAI,EAAE,WAAW;YACjB,QAAQ;YACR,SAAS;SACZ,CAAC;IACN,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parse/markdown/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EAGR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EAIvB,MAAM,qBAAqB,CAAC;AAqC7B;;GAEG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACjD,QAAQ,CAAC,MAAM,EAAG,UAAU,CAAU;IAEtC,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,QAAQ,GAAE,oBAAsC;IAI5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;IAkB5C;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAgBlC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parse/markdown/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EAGR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EAIvB,MAAM,qBAAqB,CAAC;AAqC7B;;GAEG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACjD,QAAQ,CAAC,MAAM,EAAG,UAAU,CAAU;IAEtC,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,QAAQ,CAAuB;gBAE3B,QAAQ,GAAE,oBAAsC;IAI5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;IAuB5C;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAgBlC"}
@@ -8,7 +8,7 @@ import { unified } from 'unified';
8
8
  import remarkParse from 'remark-parse';
9
9
  import remarkGfm from 'remark-gfm';
10
10
  import { defaultRegistry, } from '#src/parse/registry';
11
- import { escapeShorthandPipesInTables } from '../utils/markdown-utils.js';
11
+ import { escapeShorthandPipesInTables, preserveCustomHtmlBlocks } from '../utils/markdown-utils.js';
12
12
  /**
13
13
  * Create source position from mdast node position
14
14
  */
@@ -53,7 +53,11 @@ export class MarkdownUnitParser {
53
53
  */
54
54
  parse(unit) {
55
55
  // Escape shorthand pipes in table lines before GFM splits them into cells
56
- const content = escapeShorthandPipesInTables(unit.content);
56
+ //let content = escapeShorthandPipesInTables(unit.content);
57
+ let content = unit.content;
58
+ // Prevent remark from splitting custom HTML blocks at blank lines
59
+ content = escapeShorthandPipesInTables(content);
60
+ content = preserveCustomHtmlBlocks(content);
57
61
  const tree = this.processor.parse(content);
58
62
  // Create context for handlers
59
63
  const ctx = this.createContext(unit);
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parse/markdown/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parse/markdown/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hast-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoB,WAAW,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAkB,MAAM,0BAA0B,CAAC;AAElG;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUvD;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAuBtG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CA4BhG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,YAAY,CAoF9F"}
1
+ {"version":3,"file":"hast-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAoB,WAAW,IAAI,eAAe,EAAkB,MAAM,MAAM,CAAC;AAEtG,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAkB,MAAM,0BAA0B,CAAC;AAyBlG;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe1E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAUvD;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAuBtG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CA4BhG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,YAAY,CA2K9F"}
@@ -4,6 +4,26 @@
4
4
  * Common utility functions for working with hast (HTML AST) nodes,
5
5
  * shared between HTML parsers and markdown HTML inline handling.
6
6
  */
7
+ import { visit } from 'unist-util-visit';
8
+ /**
9
+ * Offset the position of mdast nodes by a given number of lines.
10
+ * This is used when parsing markdown content inside HTML blocks,
11
+ * to ensure error reporting uses correct file line numbers.
12
+ */
13
+ function offsetMdastNodes(nodes, offsetLine) {
14
+ if (offsetLine === 0)
15
+ return;
16
+ const root = { type: 'root', children: nodes };
17
+ visit(root, (node) => {
18
+ const n = node;
19
+ if (n.position) {
20
+ n.position.start.line += offsetLine;
21
+ if (n.position.end) {
22
+ n.position.end.line += offsetLine;
23
+ }
24
+ }
25
+ });
26
+ }
7
27
  /**
8
28
  * Get element attribute value from hast element.
9
29
  * Handles various types: strings, arrays (joins with space), numbers, and booleans.
@@ -42,7 +62,7 @@ export function getTextContent(element) {
42
62
  }
43
63
  return text;
44
64
  }
45
- import { parseMarkdownInlines } from './markdown-utils.js';
65
+ import { parseMarkdownInlines, parseMarkdownBlocks } from './markdown-utils.js';
46
66
  /**
47
67
  * Transform a hast node to Speculator inline(s) using HTML handlers.
48
68
  * This is the core transformation logic shared by both paragraph and block HTML parsers.
@@ -106,7 +126,8 @@ export function transformHastBlock(node, ctx) {
106
126
  * created from the hast tree (correcting offsets for HTML inside Markdown).
107
127
  */
108
128
  export function createHastContext(ctx, parentSourcePos) {
109
- const originalTransform = ctx.transformInlineChildren;
129
+ const originalTransformInlines = ctx.transformInlineChildren;
130
+ const originalTransformBlocks = ctx.transformBlockChildren;
110
131
  // Create an overridden createSourcePos if we have a parent offset
111
132
  const createSourcePos = parentSourcePos
112
133
  ? (hastNode) => {
@@ -126,6 +147,28 @@ export function createHastContext(ctx, parentSourcePos) {
126
147
  };
127
148
  }
128
149
  : ctx.createSourcePos;
150
+ // Helper to get text content from a node
151
+ const getTextContent = (node) => {
152
+ if (node.type === 'text')
153
+ return node.value;
154
+ if ('children' in node && Array.isArray(node.children)) {
155
+ return node.children.map(getTextContent).join('');
156
+ }
157
+ return '';
158
+ };
159
+ const getAttr = (element, name) => {
160
+ // Properties might be normalized to camelCase by rehype (e.g. data-cop-concept -> dataCopConcept)
161
+ let val = element.properties?.[name];
162
+ // Fallback for data attributes
163
+ if (val === undefined && name.startsWith('data-')) {
164
+ const camelName = name.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
165
+ val = element.properties?.[camelName];
166
+ }
167
+ if (Array.isArray(val)) {
168
+ return val.join(' ');
169
+ }
170
+ return val;
171
+ };
129
172
  const hastCtx = {
130
173
  ...ctx,
131
174
  createSourcePos,
@@ -134,9 +177,34 @@ export function createHastContext(ctx, parentSourcePos) {
134
177
  for (const child of children) {
135
178
  if (child.type === 'text') {
136
179
  // Re-parse text as Markdown to handle core markup (**bold**, `code`) and shorthands.
137
- // We use originalTransform (the non-recursive one) to break the chain.
138
- const mdastNodes = parseMarkdownInlines(child.value);
139
- results.push(...originalTransform(mdastNodes));
180
+ // We use originalTransformInlines to break the chain.
181
+ const raw = child.value;
182
+ // Capture boundary whitespace that remark will strip
183
+ const leadingWs = raw.match(/^\s+/)?.[0] || '';
184
+ const trailingWs = raw.match(/\s+$/)?.[0] || '';
185
+ const mdastNodes = parseMarkdownInlines(raw);
186
+ // Offset line numbers to match original file position
187
+ const sourcePos = hastCtx.createSourcePos(child);
188
+ if (sourcePos) {
189
+ offsetMdastNodes(mdastNodes, sourcePos.line - 1);
190
+ }
191
+ const inlines = originalTransformInlines(mdastNodes);
192
+ // Restore whitespace stripped by remark to preserve spaces
193
+ // around sibling inline HTML elements (e.g. <dfn>)
194
+ if (leadingWs && inlines.length > 0 && inlines[0].type === 'text') {
195
+ inlines[0] = { ...inlines[0], value: leadingWs + inlines[0].value };
196
+ }
197
+ else if (leadingWs) {
198
+ inlines.unshift({ type: 'text', value: leadingWs });
199
+ }
200
+ if (trailingWs && inlines.length > 0 && inlines[inlines.length - 1].type === 'text') {
201
+ const last = inlines[inlines.length - 1];
202
+ inlines[inlines.length - 1] = { ...inlines[inlines.length - 1], value: last.value + trailingWs };
203
+ }
204
+ else if (trailingWs) {
205
+ inlines.push({ type: 'text', value: trailingWs });
206
+ }
207
+ results.push(...inlines);
140
208
  }
141
209
  else if (child.type === 'element') {
142
210
  const res = transformHastInline(child, hastCtx);
@@ -149,7 +217,7 @@ export function createHastContext(ctx, parentSourcePos) {
149
217
  }
150
218
  else {
151
219
  // Fallback for any other nodes (e.g. already parsed mdast nodes)
152
- results.push(...originalTransform([child]));
220
+ results.push(...originalTransformInlines([child]));
153
221
  }
154
222
  }
155
223
  return results;
@@ -171,6 +239,7 @@ export function createHastContext(ctx, parentSourcePos) {
171
239
  };
172
240
  for (const child of children) {
173
241
  if (child.type === 'element') {
242
+ // We know it's an element, but TS needs help differentiating from the generic object
174
243
  const element = child;
175
244
  const handler = hastCtx.registry.getHtmlBlockHandler(element.tagName.toLowerCase());
176
245
  if (handler?.handleBlock) {
@@ -179,7 +248,41 @@ export function createHastContext(ctx, parentSourcePos) {
179
248
  continue;
180
249
  }
181
250
  }
182
- // If not a block element, add to current inlines
251
+ else if (child.type === 'text') {
252
+ const text = child.value || '';
253
+ if (text.trim()) {
254
+ // Re-parse text as markdown to detect block structures.
255
+ // If it produces only a single paragraph, treat as inlines
256
+ // (preserving paragraph assembly for inline HTML contexts).
257
+ // If it produces block structures (lists, tables, etc.),
258
+ // flush and delegate to the markdown block transformer.
259
+ const mdastNodes = parseMarkdownBlocks(text);
260
+ // Offset line numbers to match original file position
261
+ const sourcePos = hastCtx.createSourcePos(child);
262
+ if (sourcePos) {
263
+ offsetMdastNodes(mdastNodes, sourcePos.line - 1);
264
+ }
265
+ const hasBlockContent = mdastNodes.some(n => n.type !== 'paragraph') || mdastNodes.length > 1;
266
+ if (hasBlockContent) {
267
+ flushInlines();
268
+ const blocks = originalTransformBlocks(mdastNodes);
269
+ results.push(...blocks);
270
+ }
271
+ else {
272
+ // Single paragraph — collect as inlines
273
+ currentInlines.push(child);
274
+ }
275
+ }
276
+ continue;
277
+ }
278
+ else if (child.type !== 'comment' && child.type !== 'doctype') {
279
+ // Likely an mdast node or already parsed Speculator block/inline
280
+ // Need to cast to any/unknown because ElementContent doesn't have 'children' on all types in a way TS likes for this check
281
+ flushInlines();
282
+ results.push(...originalTransformBlocks([child]));
283
+ continue;
284
+ }
285
+ // Inline elements without block handlers → collect as inlines
183
286
  currentInlines.push(child);
184
287
  }
185
288
  flushInlines();
@@ -1 +1 @@
1
- {"version":3,"file":"hast-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hast-utils.js","sourceRoot":"","sources":["../../../src/parse/utils/hast-utils.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,26 @@ import type { RootContent } from 'mdast';
6
6
  * If the input contains multiple blocks, only children of the first paragraph are returned.
7
7
  */
8
8
  export declare function parseMarkdownInlines(text: string): RootContent[];
9
+ /**
10
+ * Parse a string as Markdown blocks.
11
+ */
12
+ export declare function parseMarkdownBlocks(text: string): RootContent[];
9
13
  /**
10
14
  * Robustly identify table blocks and escape pipes in them.
11
15
  */
12
16
  export declare function escapeShorthandPipesInTables(content: string): string;
17
+ /**
18
+ * Preserve custom HTML element blocks across blank lines.
19
+ *
20
+ * CommonMark type-7 HTML blocks (custom tags like <spec-statement>)
21
+ * terminate at blank lines. This replaces blank lines inside such blocks
22
+ * with <!-- --> comments, preventing remark from splitting the block.
23
+ * Custom elements are identified by tag names containing a hyphen
24
+ * (web component naming convention).
25
+ *
26
+ * Also ensures a blank line is inserted before a custom element when
27
+ * it immediately follows paragraph-level content (e.g. a <dfn> line)
28
+ * to prevent remark from merging both into a single paragraph.
29
+ */
30
+ export declare function preserveCustomHtmlBlocks(content: string): string;
13
31
  //# sourceMappingURL=markdown-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,WAAW,EAAa,MAAM,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAiBhE;AAkBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuDpE"}
1
+ {"version":3,"file":"markdown-utils.d.ts","sourceRoot":"","sources":["../../../src/parse/utils/markdown-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,WAAW,EAAa,MAAM,OAAO,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAiBhE;AACD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAkBD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAuDpE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmFhE"}