@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.
- package/dist/parse/html/SpecStatementHtmlParser.d.ts +4 -1
- package/dist/parse/html/SpecStatementHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/SpecStatementHtmlParser.js +42 -26
- package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -1
- package/dist/parse/html/parser.d.ts.map +1 -1
- package/dist/parse/html/parser.js +25 -1
- package/dist/parse/html/parser.js.map +1 -1
- package/dist/parse/index.d.ts +1 -0
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +2 -0
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/markdown/HtmlBlockMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/HtmlBlockMarkdownParser.js +2 -1
- package/dist/parse/markdown/HtmlBlockMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/parser.d.ts.map +1 -1
- package/dist/parse/markdown/parser.js +6 -2
- package/dist/parse/markdown/parser.js.map +1 -1
- package/dist/parse/utils/hast-utils.d.ts.map +1 -1
- package/dist/parse/utils/hast-utils.js +110 -7
- package/dist/parse/utils/hast-utils.js.map +1 -1
- package/dist/parse/utils/markdown-utils.d.ts +18 -0
- package/dist/parse/utils/markdown-utils.d.ts.map +1 -1
- package/dist/parse/utils/markdown-utils.js +142 -0
- package/dist/parse/utils/markdown-utils.js.map +1 -1
- package/dist/parse/utils/normative.js +3 -3
- package/dist/parse/utils/normative.js.map +1 -1
- package/dist/postprocess/index.d.ts +1 -0
- package/dist/postprocess/index.d.ts.map +1 -1
- package/dist/postprocess/index.js +3 -0
- package/dist/postprocess/index.js.map +1 -1
- package/dist/postprocess/plugins/statement-distribute.d.ts +13 -0
- package/dist/postprocess/plugins/statement-distribute.d.ts.map +1 -0
- package/dist/postprocess/plugins/statement-distribute.js +112 -0
- package/dist/postprocess/plugins/statement-distribute.js.map +1 -0
- package/dist/postprocess/plugins/statement-index.d.ts.map +1 -1
- package/dist/postprocess/plugins/statement-index.js +20 -17
- package/dist/postprocess/plugins/statement-index.js.map +1 -1
- package/dist/postprocess/plugins/statementsJsonLd-compute.d.ts.map +1 -1
- package/dist/postprocess/plugins/statementsJsonLd-compute.js +1 -0
- package/dist/postprocess/plugins/statementsJsonLd-compute.js.map +1 -1
- package/dist/postprocess/walk-ast.d.ts +7 -15
- package/dist/postprocess/walk-ast.d.ts.map +1 -1
- package/dist/postprocess/walk-ast.js +48 -57
- package/dist/postprocess/walk-ast.js.map +1 -1
- package/dist/types/ast.generated.d.ts +33 -4
- package/dist/types/ast.generated.d.ts.map +1 -1
- package/dist/types/ast.generated.js +1 -1
- package/dist/types/ast.generated.js.map +1 -1
- package/package.json +1 -1
- 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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
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(
|
|
57
|
+
level = inferLevel(text);
|
|
30
58
|
}
|
|
31
|
-
|
|
59
|
+
return level;
|
|
60
|
+
}
|
|
61
|
+
function getId(element, text, ctx) {
|
|
32
62
|
const explicitId = ctx.getAttr(element, 'id');
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
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
|
|
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;
|
|
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
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AAWvC,OAAO,EAEH,eAAe,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;GAEG;AACH,SAAS,eAAe,CAAC,IAAgB,EAAE,IAAsB;IAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,MAAM,EAAE,CAAC;SACZ,CAAC;IACN,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1B,MAAM,MAAM,GAAc;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;QACzC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;KAC3B,CAAC;IAEF,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QACtC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD;;GAEG;AACH,MAAM,OAAO,cAAc;IACd,MAAM,GAAG,MAAe,CAAC;IAE1B,SAAS,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,QAAQ,CAAuB;IAEvC,YAAY,WAAiC,eAAe;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAgB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAS,CAAC;QAExD,8BAA8B;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,IAAgB;QAClC,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO;YACH,IAAI;YACJ,eAAe,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC;YACxE,uBAAuB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAyB,EAAE,IAAI,CAAC;YACpG,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAwB,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,KAAK,MAAM,KAAK,IAAI,QAAyB,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parse/html/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/parse/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/parse/index.js
CHANGED
|
@@ -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
|
package/dist/parse/index.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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;
|
|
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;
|
|
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
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,SAAS,MAAM,YAAY,CAAC;AAUnC,OAAO,EAEH,eAAe,GAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;
|
|
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,
|
|
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
|
|
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
|
|
138
|
-
const
|
|
139
|
-
|
|
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(...
|
|
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
|
-
|
|
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":"AAAA;;;;;GAKG;
|
|
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"}
|