@openuji/speculator 0.7.4 → 0.8.0
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/README.md +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parse/assembler.d.ts +1 -1
- package/dist/parse/assembler.d.ts.map +1 -1
- package/dist/parse/assembler.js +67 -13
- package/dist/parse/assembler.js.map +1 -1
- package/dist/parse/html/AsideHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/AsideHtmlParser.js +85 -3
- package/dist/parse/html/AsideHtmlParser.js.map +1 -1
- package/dist/parse/html/CodeHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/CodeHtmlParser.js +6 -2
- package/dist/parse/html/CodeHtmlParser.js.map +1 -1
- package/dist/parse/html/HeadingsHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/HeadingsHtmlParser.js +3 -4
- package/dist/parse/html/HeadingsHtmlParser.js.map +1 -1
- package/dist/parse/html/IdlHtmlParser.d.ts +0 -4
- package/dist/parse/html/IdlHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/IdlHtmlParser.js +2 -138
- package/dist/parse/html/IdlHtmlParser.js.map +1 -1
- package/dist/parse/html/MiscHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/MiscHtmlParser.js +2 -42
- package/dist/parse/html/MiscHtmlParser.js.map +1 -1
- package/dist/parse/html/SectionsHtmlParser.d.ts.map +1 -1
- package/dist/parse/html/SectionsHtmlParser.js +17 -26
- package/dist/parse/html/SectionsHtmlParser.js.map +1 -1
- package/dist/parse/html/SpecStatementHtmlParser.js +3 -0
- package/dist/parse/html/SpecStatementHtmlParser.js.map +1 -1
- package/dist/parse/html/VocabHtmlParser.d.ts +12 -0
- package/dist/parse/html/VocabHtmlParser.d.ts.map +1 -0
- package/dist/parse/html/VocabHtmlParser.js +1156 -0
- package/dist/parse/html/VocabHtmlParser.js.map +1 -0
- package/dist/parse/html/parser.d.ts +13 -4
- package/dist/parse/html/parser.d.ts.map +1 -1
- package/dist/parse/html/parser.js +105 -119
- package/dist/parse/html/parser.js.map +1 -1
- package/dist/parse/index.d.ts +1 -2
- package/dist/parse/index.d.ts.map +1 -1
- package/dist/parse/index.js +0 -1
- package/dist/parse/index.js.map +1 -1
- package/dist/parse/markdown/CodeMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/CodeMarkdownParser.js +20 -2
- package/dist/parse/markdown/CodeMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/HeadingsMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/HeadingsMarkdownParser.js +10 -33
- package/dist/parse/markdown/HeadingsMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/MdxJsxMarkdownParser.d.ts +8 -0
- package/dist/parse/markdown/MdxJsxMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/MdxJsxMarkdownParser.js +61 -0
- package/dist/parse/markdown/MdxJsxMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/MdxMarkdownParser.d.ts +13 -0
- package/dist/parse/markdown/MdxMarkdownParser.d.ts.map +1 -0
- package/dist/parse/markdown/MdxMarkdownParser.js +351 -0
- package/dist/parse/markdown/MdxMarkdownParser.js.map +1 -0
- package/dist/parse/markdown/ShorthandsMarkdownParser.d.ts.map +1 -1
- package/dist/parse/markdown/ShorthandsMarkdownParser.js +57 -2
- package/dist/parse/markdown/ShorthandsMarkdownParser.js.map +1 -1
- package/dist/parse/markdown/parser.d.ts +12 -3
- package/dist/parse/markdown/parser.d.ts.map +1 -1
- package/dist/parse/markdown/parser.js +90 -57
- package/dist/parse/markdown/parser.js.map +1 -1
- package/dist/parse/markdown/plugins.d.ts +26 -0
- package/dist/parse/markdown/plugins.d.ts.map +1 -0
- package/dist/parse/markdown/plugins.js +90 -0
- package/dist/parse/markdown/plugins.js.map +1 -0
- package/dist/parse/markdown/remark-mdx-jsx-only.d.ts +10 -0
- package/dist/parse/markdown/remark-mdx-jsx-only.d.ts.map +1 -0
- package/dist/parse/markdown/remark-mdx-jsx-only.js +26 -0
- package/dist/parse/markdown/remark-mdx-jsx-only.js.map +1 -0
- package/dist/parse/parsers.d.ts +2 -2
- package/dist/parse/parsers.d.ts.map +1 -1
- package/dist/parse/parsers.js +6 -6
- package/dist/parse/parsers.js.map +1 -1
- package/dist/parse/pipeline.d.ts.map +1 -1
- package/dist/parse/pipeline.js +41 -14
- package/dist/parse/pipeline.js.map +1 -1
- package/dist/parse/registry.d.ts +5 -5
- package/dist/parse/registry.d.ts.map +1 -1
- package/dist/parse/registry.js +12 -12
- package/dist/parse/registry.js.map +1 -1
- package/dist/parse/source-mapper.d.ts +42 -0
- package/dist/parse/source-mapper.d.ts.map +1 -0
- package/dist/parse/source-mapper.js +117 -0
- package/dist/parse/source-mapper.js.map +1 -0
- package/dist/parse/types.d.ts +20 -9
- package/dist/parse/types.d.ts.map +1 -1
- package/dist/parse/types.js +2 -13
- package/dist/parse/types.js.map +1 -1
- package/dist/parse/utils/hast-utils.d.ts.map +1 -1
- package/dist/parse/utils/hast-utils.js +69 -29
- package/dist/parse/utils/hast-utils.js.map +1 -1
- package/dist/parse/utils/html-element-utils.d.ts +9 -0
- package/dist/parse/utils/html-element-utils.d.ts.map +1 -0
- package/dist/parse/utils/html-element-utils.js +88 -0
- package/dist/parse/utils/html-element-utils.js.map +1 -0
- package/dist/parse/utils/idl-tokenizer.d.ts +7 -0
- package/dist/parse/utils/idl-tokenizer.d.ts.map +1 -0
- package/dist/parse/utils/idl-tokenizer.js +137 -0
- package/dist/parse/utils/idl-tokenizer.js.map +1 -0
- package/dist/parse/utils/markdown-utils.d.ts +16 -10
- package/dist/parse/utils/markdown-utils.d.ts.map +1 -1
- package/dist/parse/utils/markdown-utils.js +39 -75
- package/dist/parse/utils/markdown-utils.js.map +1 -1
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +1 -0
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +10 -4
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/pipeline/types.d.ts +2 -0
- package/dist/pipeline/types.d.ts.map +1 -1
- package/dist/postprocess/index.d.ts +3 -1
- package/dist/postprocess/index.d.ts.map +1 -1
- package/dist/postprocess/index.js +9 -3
- package/dist/postprocess/index.js.map +1 -1
- package/dist/postprocess/plugins/bibliography-generator.d.ts.map +1 -1
- package/dist/postprocess/plugins/bibliography-generator.js +20 -3
- package/dist/postprocess/plugins/bibliography-generator.js.map +1 -1
- package/dist/postprocess/plugins/citation-resolve.d.ts.map +1 -1
- package/dist/postprocess/plugins/citation-resolve.js +255 -11
- package/dist/postprocess/plugins/citation-resolve.js.map +1 -1
- package/dist/postprocess/plugins/example-index.d.ts +16 -0
- package/dist/postprocess/plugins/example-index.d.ts.map +1 -0
- package/dist/postprocess/plugins/example-index.js +131 -0
- package/dist/postprocess/plugins/example-index.js.map +1 -0
- package/dist/postprocess/plugins/note-index.d.ts +14 -0
- package/dist/postprocess/plugins/note-index.d.ts.map +1 -0
- package/dist/postprocess/plugins/note-index.js +103 -0
- package/dist/postprocess/plugins/note-index.js.map +1 -0
- package/dist/postprocess/plugins/note-shorthands.d.ts +11 -0
- package/dist/postprocess/plugins/note-shorthands.d.ts.map +1 -0
- package/dist/postprocess/plugins/note-shorthands.js +298 -0
- package/dist/postprocess/plugins/note-shorthands.js.map +1 -0
- package/dist/postprocess/plugins/reference-resolve.d.ts.map +1 -1
- package/dist/postprocess/plugins/reference-resolve.js +46 -1
- package/dist/postprocess/plugins/reference-resolve.js.map +1 -1
- package/dist/postprocess/plugins/statement-distribute.d.ts.map +1 -1
- package/dist/postprocess/plugins/statement-distribute.js +46 -8
- package/dist/postprocess/plugins/statement-distribute.js.map +1 -1
- package/dist/postprocess/plugins/toc.d.ts.map +1 -1
- package/dist/postprocess/plugins/toc.js +20 -16
- package/dist/postprocess/plugins/toc.js.map +1 -1
- package/dist/postprocess/walk-ast.d.ts +5 -1
- package/dist/postprocess/walk-ast.d.ts.map +1 -1
- package/dist/postprocess/walk-ast.js +9 -0
- package/dist/postprocess/walk-ast.js.map +1 -1
- package/dist/preprocess/config/doc-config.d.ts +4 -1
- package/dist/preprocess/config/doc-config.d.ts.map +1 -1
- package/dist/preprocess/config/doc-config.js +6 -3
- package/dist/preprocess/config/doc-config.js.map +1 -1
- package/dist/preprocess/config/normalize.d.ts.map +1 -1
- package/dist/preprocess/config/normalize.js +34 -11
- package/dist/preprocess/config/normalize.js.map +1 -1
- package/dist/preprocess/config/types.d.ts +7 -3
- package/dist/preprocess/config/types.d.ts.map +1 -1
- package/dist/preprocess/include/resolver.d.ts.map +1 -1
- package/dist/preprocess/include/resolver.js +137 -33
- package/dist/preprocess/include/resolver.js.map +1 -1
- package/dist/preprocess/include/scan-html.js +1 -1
- package/dist/preprocess/include/scan-html.js.map +1 -1
- package/dist/preprocess/index.d.ts +1 -1
- package/dist/preprocess/index.d.ts.map +1 -1
- package/dist/preprocess/index.js.map +1 -1
- package/dist/preprocess/pipeline.d.ts.map +1 -1
- package/dist/preprocess/pipeline.js +1 -1
- package/dist/preprocess/pipeline.js.map +1 -1
- package/dist/preprocess/types.d.ts +32 -12
- package/dist/preprocess/types.d.ts.map +1 -1
- package/dist/types/ast.generated.d.ts +69 -13
- package/dist/types/ast.generated.d.ts.map +1 -1
- package/dist/types/ast.generated.js +4 -4
- package/dist/types/ast.generated.js.map +1 -1
- package/dist/workspace/sort.js +1 -1
- package/dist/workspace/sort.js.map +1 -1
- package/package.json +11 -2
- package/schema/spec-ast.schema.json +143 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdlHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/IdlHtmlParser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"IdlHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/IdlHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC3C,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,KAAK,EAAE,CAAC,EAAE,yCAAyC;IAEnD,WAAW,CAAC,OAAgB,EAAE,GAAiB;QAC3C,6BAA6B;QAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACrF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,0DAA0D;YAC1D,OAAO,cAAc,CAAC,WAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAExD,OAAO;YACH,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,OAAO;YACd,SAAS;YACT,QAAQ;SACY,CAAC,CAAC,oDAAoD;IAClF,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/MiscHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"MiscHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/MiscHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAG9F;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAuC5B,CAAC"}
|
|
@@ -4,33 +4,12 @@
|
|
|
4
4
|
* Handles miscellaneous elements: thematic break (hr), containers, raw HTML.
|
|
5
5
|
* Also handles div elements with note/warning/example classes as informative blocks.
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Note type classifications
|
|
9
|
-
*/
|
|
10
|
-
const NOTE_CLASSES = ['note', 'warning', 'example', 'issue', 'advisement'];
|
|
11
|
-
/**
|
|
12
|
-
* Check if element has a note-like class
|
|
13
|
-
*/
|
|
14
|
-
function getNoteTypeFromDiv(element, ctx) {
|
|
15
|
-
// hast converts 'class' to 'className'
|
|
16
|
-
const className = ctx.getAttr(element, 'className') ?? '';
|
|
17
|
-
const classes = className.toLowerCase().split(/\s+/);
|
|
18
|
-
for (const noteClass of NOTE_CLASSES) {
|
|
19
|
-
if (classes.includes(noteClass)) {
|
|
20
|
-
// Map advisement to warning
|
|
21
|
-
if (noteClass === 'advisement')
|
|
22
|
-
return 'warning';
|
|
23
|
-
return noteClass;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
7
|
/**
|
|
29
8
|
* HTML parser module for miscellaneous elements.
|
|
30
9
|
*/
|
|
31
10
|
export const MiscHtmlParser = {
|
|
32
11
|
name: 'MiscHtmlParser',
|
|
33
|
-
handles: ['hr', 'div', 'article', 'main', 'body', 'html', 'head', 'script', 'style', 'meta', 'link', 'title'],
|
|
12
|
+
handles: ['hr', 'div', 'article', 'main', 'body', 'html', 'head', 'script', 'style', 'meta', 'link', 'title', 'figure'],
|
|
34
13
|
order: 20, // Lower priority than content parsers
|
|
35
14
|
handleBlock(element, ctx) {
|
|
36
15
|
const tagName = element.tagName.toLowerCase();
|
|
@@ -50,30 +29,11 @@ export const MiscHtmlParser = {
|
|
|
50
29
|
}
|
|
51
30
|
// Container elements
|
|
52
31
|
if (tagName === 'div') {
|
|
53
|
-
// Check for note/warning/example class
|
|
54
|
-
const noteType = getNoteTypeFromDiv(element, ctx);
|
|
55
|
-
if (noteType) {
|
|
56
|
-
const id = ctx.getAttr(element, 'id');
|
|
57
|
-
const childBlocks = ctx.transformBlockChildren(element.children);
|
|
58
|
-
// Filter out sections - notes only contain blocks
|
|
59
|
-
const children = childBlocks.filter((c) => c.type !== 'section');
|
|
60
|
-
const result = {
|
|
61
|
-
type: 'note',
|
|
62
|
-
noteType,
|
|
63
|
-
informative: true,
|
|
64
|
-
children,
|
|
65
|
-
};
|
|
66
|
-
if (id)
|
|
67
|
-
result.id = id;
|
|
68
|
-
if (sourcePos)
|
|
69
|
-
result.sourcePos = sourcePos;
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
32
|
// Regular div - pass through children
|
|
73
33
|
return ctx.transformBlockChildren(element.children);
|
|
74
34
|
}
|
|
75
35
|
// Other container elements - pass through children
|
|
76
|
-
if (tagName === 'article' || tagName === 'main' || tagName === 'body') {
|
|
36
|
+
if (tagName === 'article' || tagName === 'main' || tagName === 'body' || tagName === 'figure') {
|
|
77
37
|
return ctx.transformBlockChildren(element.children);
|
|
78
38
|
}
|
|
79
39
|
// Skip elements (don't render)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiscHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/MiscHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"MiscHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/MiscHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC5C,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IACvH,KAAK,EAAE,EAAE,EAAE,sCAAsC;IAEjD,WAAW,CAAC,OAAgB,EAAE,GAAiB;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,sBAAsB;QACtB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAuB;gBAC/B,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,EAAE;aACf,CAAC;YACF,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,EAAE;gBAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;YACvB,IAAI,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5C,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACpB,sCAAsC;YACtC,OAAO,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAwB,CAAC;QAC/E,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5F,OAAO,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAwB,CAAC;QAC/E,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/SectionsHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAG9F;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"SectionsHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/SectionsHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAG9F;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBA+ChC,CAAC"}
|
|
@@ -14,36 +14,27 @@ export const SectionsHtmlParser = {
|
|
|
14
14
|
handleBlock(element, ctx) {
|
|
15
15
|
const sourcePos = ctx.createSourcePos(element);
|
|
16
16
|
const id = ctx.getAttr(element, 'id');
|
|
17
|
-
const
|
|
18
|
-
const unnumbered = className.split(/\s+/).some(c => ['unnumbered', 'informative', 'introductory'].includes(c));
|
|
17
|
+
const noToc = ctx.getAttr(element, 'data-no-toc') !== undefined;
|
|
19
18
|
const dataCopConcept = ctx.getAttr(element, 'data-cop-concept');
|
|
20
|
-
// Find heading and other children
|
|
19
|
+
// Find heading and other children.
|
|
20
|
+
//
|
|
21
|
+
// In mixed HTML+Markdown parsing we can receive MDX virtual nodes
|
|
22
|
+
// inside <section>, not only hast `element` nodes. Parsing each child
|
|
23
|
+
// through transformBlockChildren keeps both code paths consistent.
|
|
21
24
|
let heading;
|
|
22
25
|
const children = [];
|
|
23
26
|
for (const child of element.children) {
|
|
24
|
-
|
|
27
|
+
const blocks = ctx.transformBlockChildren([child]);
|
|
28
|
+
if (blocks.length === 0)
|
|
29
|
+
continue;
|
|
30
|
+
if (!heading && blocks[0]?.type === 'heading') {
|
|
31
|
+
heading = blocks[0];
|
|
32
|
+
if (blocks.length > 1) {
|
|
33
|
+
children.push(...blocks.slice(1));
|
|
34
|
+
}
|
|
25
35
|
continue;
|
|
26
|
-
const childEl = child;
|
|
27
|
-
const tagName = childEl.tagName.toLowerCase();
|
|
28
|
-
if (!heading && /^h[1-6]$/i.test(tagName)) {
|
|
29
|
-
// First heading becomes section heading
|
|
30
|
-
const depth = parseInt(tagName.match(/^h([1-6])$/i)?.[1] ?? '1', 10);
|
|
31
|
-
heading = {
|
|
32
|
-
type: 'heading',
|
|
33
|
-
depth,
|
|
34
|
-
children: ctx.transformInlineChildren(childEl.children),
|
|
35
|
-
};
|
|
36
|
-
const headingId = ctx.getAttr(childEl, 'id');
|
|
37
|
-
if (headingId)
|
|
38
|
-
heading.id = headingId;
|
|
39
|
-
const headingPos = ctx.createSourcePos(childEl);
|
|
40
|
-
if (headingPos)
|
|
41
|
-
heading.sourcePos = headingPos;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
const blocks = ctx.transformBlockChildren([child]);
|
|
45
|
-
children.push(...blocks);
|
|
46
36
|
}
|
|
37
|
+
children.push(...blocks);
|
|
47
38
|
}
|
|
48
39
|
const result = {
|
|
49
40
|
type: 'section',
|
|
@@ -53,8 +44,8 @@ export const SectionsHtmlParser = {
|
|
|
53
44
|
result.id = id;
|
|
54
45
|
if (heading)
|
|
55
46
|
result.heading = heading;
|
|
56
|
-
if (
|
|
57
|
-
result.
|
|
47
|
+
if (noToc)
|
|
48
|
+
result.noToc = true;
|
|
58
49
|
if (dataCopConcept)
|
|
59
50
|
result.dataCopConcept = dataCopConcept;
|
|
60
51
|
if (sourcePos)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionsHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/SectionsHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAChD,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,KAAK,EAAE,EAAE;IAET,WAAW,CAAC,OAAgB,EAAE,GAAiB;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,
|
|
1
|
+
{"version":3,"file":"SectionsHtmlParser.js","sourceRoot":"","sources":["../../../src/parse/html/SectionsHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAChD,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,KAAK,EAAE,EAAE;IAET,WAAW,CAAC,OAAgB,EAAE,GAAiB;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,SAAS,CAAC;QAChE,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAEhE,mCAAmC;QACnC,EAAE;QACF,kEAAkE;QAClE,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,OAAiC,CAAC;QACtC,MAAM,QAAQ,GAAwB,EAAE,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAoB,CAAC,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAElC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5C,OAAO,GAAG,MAAM,CAAC,CAAC,CAAiB,CAAC;gBACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,CAAC;gBACD,SAAS;YACb,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,MAAM,GAAY;YACpB,IAAI,EAAE,SAAS;YACf,QAAQ;SACX,CAAC;QAEF,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QAC/B,IAAI,cAAc;YAAE,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAC3D,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAE5C,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAC"}
|
|
@@ -27,6 +27,7 @@ function parseNode(element, ctx) {
|
|
|
27
27
|
const level = getLevel(element, rawText, ctx);
|
|
28
28
|
const { id, tempId } = getId(element, rawText, ctx);
|
|
29
29
|
const dataCopConcept = ctx.getAttr(element, 'data-cop-concept');
|
|
30
|
+
const dataIdPattern = ctx.getAttr(element, 'data-id-pattern');
|
|
30
31
|
const isInline = allChildren.length === 1 && allChildren[0].type === 'paragraph';
|
|
31
32
|
if (isInline) {
|
|
32
33
|
return {
|
|
@@ -35,6 +36,7 @@ function parseNode(element, ctx) {
|
|
|
35
36
|
tempId,
|
|
36
37
|
level: level,
|
|
37
38
|
dataCopConcept,
|
|
39
|
+
dataIdPattern,
|
|
38
40
|
contentText: rawText,
|
|
39
41
|
children: allChildren[0].children,
|
|
40
42
|
sourcePos,
|
|
@@ -46,6 +48,7 @@ function parseNode(element, ctx) {
|
|
|
46
48
|
id,
|
|
47
49
|
level: level,
|
|
48
50
|
dataCopConcept,
|
|
51
|
+
dataIdPattern,
|
|
49
52
|
children: allChildren,
|
|
50
53
|
sourcePos,
|
|
51
54
|
};
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IAChE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAE9D,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,aAAa;YACb,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,aAAa;YACb,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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vocab HTML Parser
|
|
3
|
+
*
|
|
4
|
+
* Handles <spec-vocab> custom elements.
|
|
5
|
+
* Reads pre-loaded sibling metadata from `unit.sideFiles` (populated at preprocess time)
|
|
6
|
+
* to generate normative prose (Tables, Statements) from vocabulary files.
|
|
7
|
+
*
|
|
8
|
+
* This parser is fully isomorphic — it does NOT access the filesystem directly.
|
|
9
|
+
*/
|
|
10
|
+
import type { HtmlParserModule } from '#src/parse/registry';
|
|
11
|
+
export declare const VocabHtmlParser: HtmlParserModule;
|
|
12
|
+
//# sourceMappingURL=VocabHtmlParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VocabHtmlParser.d.ts","sourceRoot":"","sources":["../../../src/parse/html/VocabHtmlParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AA+D9F,eAAO,MAAM,eAAe,EAAE,gBAgC7B,CAAC"}
|