safe-mdx 1.3.3 → 1.3.6
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/html/html-to-mdx-ast.d.ts +4 -2
- package/dist/html/html-to-mdx-ast.d.ts.map +1 -1
- package/dist/html/html-to-mdx-ast.js +64 -44
- package/dist/html/html-to-mdx-ast.js.map +1 -1
- package/dist/html/html-to-mdx-ast.test.js +88 -1
- package/dist/html/html-to-mdx-ast.test.js.map +1 -1
- package/dist/html/remark-mdx-jsx-normalize.d.ts +1 -1
- package/dist/html/remark-mdx-jsx-normalize.d.ts.map +1 -1
- package/dist/html/remark-mdx-jsx-normalize.js +92 -15
- package/dist/html/remark-mdx-jsx-normalize.js.map +1 -1
- package/dist/parse.d.ts +2 -2
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +2 -2
- package/dist/parse.js.map +1 -1
- package/dist/safe-mdx.d.ts +1 -1
- package/dist/safe-mdx.d.ts.map +1 -1
- package/dist/safe-mdx.js +8 -12
- package/dist/safe-mdx.js.map +1 -1
- package/package.json +2 -1
- package/src/html/html-to-mdx-ast.test.ts +94 -0
- package/src/html/html-to-mdx-ast.ts +69 -46
- package/src/html/remark-mdx-jsx-normalize.ts +98 -17
- package/src/parse.ts +2 -2
- package/src/safe-mdx.tsx +8 -11
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RootContent } from 'mdast';
|
|
2
|
-
|
|
2
|
+
import { remarkMdxJsxNormalize } from './remark-mdx-jsx-normalize.js';
|
|
3
|
+
export { remarkMdxJsxNormalize };
|
|
3
4
|
export type ConvertTagName = (args: {
|
|
4
5
|
tagName: string;
|
|
5
6
|
}) => string;
|
|
@@ -13,11 +14,12 @@ export type ConvertAttributeValue = (args: {
|
|
|
13
14
|
}) => string;
|
|
14
15
|
export interface ParseHtmlToMdxAstOptions {
|
|
15
16
|
html: string;
|
|
17
|
+
parentType?: string;
|
|
16
18
|
onError?: (error: unknown, text: string) => void;
|
|
17
19
|
convertTagName?: ConvertTagName;
|
|
18
20
|
textToMdast?: TextToMdast;
|
|
19
21
|
convertAttributeValue?: ConvertAttributeValue;
|
|
20
22
|
}
|
|
21
|
-
export declare function htmlToMdxAst(options: ParseHtmlToMdxAstOptions): RootContent
|
|
23
|
+
export declare function htmlToMdxAst(options: ParseHtmlToMdxAstOptions): RootContent[];
|
|
22
24
|
export declare function parseHtmlToMdxAst(options: ParseHtmlToMdxAstOptions): RootContent[];
|
|
23
25
|
//# sourceMappingURL=html-to-mdx-ast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-to-mdx-ast.d.ts","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAqB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"html-to-mdx-ast.d.ts","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAqB,MAAM,OAAO,CAAA;AAUjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAGrE,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAGhC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAAA;AAGlE,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE;IAC7B,IAAI,EAAE,MAAM,CAAA;CACf,KAAK,WAAW,GAAG,WAAW,EAAE,CAAA;AAGjC,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAClB,KAAK,MAAM,CAAA;AAGZ,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAChD;AAkND,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,EAAE,CAsE7E;AAID,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,wBAAwB,GAClC,WAAW,EAAE,CAEf"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { unified } from 'unified';
|
|
1
2
|
import { convertAttributeNameToJSX } from './convert-attributes.js';
|
|
2
3
|
import { parseHTML } from './domparser.js';
|
|
4
|
+
import { remarkMdxJsxNormalize } from './remark-mdx-jsx-normalize.js';
|
|
3
5
|
// Re-export the normalize plugin
|
|
4
|
-
export {
|
|
6
|
+
export { remarkMdxJsxNormalize };
|
|
5
7
|
// Type guard functions for DOM nodes
|
|
6
8
|
function isCommentNode(node) {
|
|
7
9
|
return node.nodeType === 8; // Node.COMMENT_NODE
|
|
@@ -96,15 +98,15 @@ function convertAttribute(attr, tagName, options) {
|
|
|
96
98
|
value: value,
|
|
97
99
|
};
|
|
98
100
|
}
|
|
99
|
-
// Convert DOM node to MDX AST nodes
|
|
101
|
+
// Convert DOM node to MDX AST nodes - always returns an array
|
|
100
102
|
function htmlNodeToMdxAst(node, options) {
|
|
101
103
|
if (isCommentNode(node)) {
|
|
102
104
|
// Convert comments to MDX JSX expression with comment
|
|
103
|
-
// For now, return
|
|
104
|
-
// return {
|
|
105
|
+
// For now, return empty array
|
|
106
|
+
// return [{
|
|
105
107
|
// type: 'html',
|
|
106
108
|
// value: `<!-- ${node.data} -->`
|
|
107
|
-
// } as Html
|
|
109
|
+
// }] as Html[]
|
|
108
110
|
return [];
|
|
109
111
|
}
|
|
110
112
|
if (isTextNode(node)) {
|
|
@@ -113,7 +115,7 @@ function htmlNodeToMdxAst(node, options) {
|
|
|
113
115
|
if (options?.textToMdast) {
|
|
114
116
|
try {
|
|
115
117
|
const result = options.textToMdast({ text: textValue });
|
|
116
|
-
return result;
|
|
118
|
+
return Array.isArray(result) ? result : [result];
|
|
117
119
|
}
|
|
118
120
|
catch (error) {
|
|
119
121
|
// Call onError callback if provided, otherwise log
|
|
@@ -125,17 +127,21 @@ function htmlNodeToMdxAst(node, options) {
|
|
|
125
127
|
console.error('Text content:', textValue);
|
|
126
128
|
}
|
|
127
129
|
// Fallback to simple text node
|
|
128
|
-
return
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
return [
|
|
131
|
+
{
|
|
132
|
+
type: 'text',
|
|
133
|
+
value: textValue,
|
|
134
|
+
},
|
|
135
|
+
];
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
138
|
// Default: return simple text node
|
|
135
|
-
return
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
+
return [
|
|
140
|
+
{
|
|
141
|
+
type: 'text',
|
|
142
|
+
value: textValue,
|
|
143
|
+
},
|
|
144
|
+
];
|
|
139
145
|
}
|
|
140
146
|
if (!isElementNode(node)) {
|
|
141
147
|
return [];
|
|
@@ -148,13 +154,7 @@ function htmlNodeToMdxAst(node, options) {
|
|
|
148
154
|
// Process children but skip the element wrapper
|
|
149
155
|
const children = [];
|
|
150
156
|
for (const child of Array.from(node.childNodes)) {
|
|
151
|
-
|
|
152
|
-
if (Array.isArray(result)) {
|
|
153
|
-
children.push(...result);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
children.push(result);
|
|
157
|
-
}
|
|
157
|
+
children.push(...htmlNodeToMdxAst(child, options));
|
|
158
158
|
}
|
|
159
159
|
return children;
|
|
160
160
|
}
|
|
@@ -166,13 +166,7 @@ function htmlNodeToMdxAst(node, options) {
|
|
|
166
166
|
// Process children
|
|
167
167
|
const children = [];
|
|
168
168
|
for (const child of Array.from(node.childNodes)) {
|
|
169
|
-
|
|
170
|
-
if (Array.isArray(result)) {
|
|
171
|
-
children.push(...result);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
children.push(result);
|
|
175
|
-
}
|
|
169
|
+
children.push(...htmlNodeToMdxAst(child, options));
|
|
176
170
|
}
|
|
177
171
|
// Always create MdxJsxTextElement initially
|
|
178
172
|
// The conversion to MdxJsxFlowElement will be handled by a separate plugin
|
|
@@ -182,9 +176,9 @@ function htmlNodeToMdxAst(node, options) {
|
|
|
182
176
|
attributes,
|
|
183
177
|
children: children,
|
|
184
178
|
};
|
|
185
|
-
return element;
|
|
179
|
+
return [element];
|
|
186
180
|
}
|
|
187
|
-
// Main function to parse HTML and return MDX AST
|
|
181
|
+
// Main function to parse HTML and return MDX AST - always returns an array
|
|
188
182
|
export function htmlToMdxAst(options) {
|
|
189
183
|
// Parse HTML with linkedom
|
|
190
184
|
const { document } = parseHTML(options.html.trim());
|
|
@@ -200,28 +194,54 @@ export function htmlToMdxAst(options) {
|
|
|
200
194
|
const childNodes = Array.from(document.childNodes).filter((node) => node.nodeType === 1 || // Element nodes
|
|
201
195
|
node.nodeType === 3 || // Text nodes
|
|
202
196
|
node.nodeType === 8);
|
|
203
|
-
|
|
204
|
-
return [];
|
|
205
|
-
}
|
|
206
|
-
if (childNodes.length === 1) {
|
|
207
|
-
return htmlNodeToMdxAst(childNodes[0], options);
|
|
208
|
-
}
|
|
209
|
-
// Multiple nodes - return as array
|
|
210
|
-
const results = [];
|
|
197
|
+
let results = [];
|
|
211
198
|
for (const node of childNodes) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
199
|
+
results.push(...htmlNodeToMdxAst(node, options));
|
|
200
|
+
}
|
|
201
|
+
// Apply the normalize plugin if we have a parentType
|
|
202
|
+
if (options.parentType && results.length > 0) {
|
|
203
|
+
// Create a temporary AST node with the same parent type
|
|
204
|
+
const parentType = options.parentType;
|
|
205
|
+
const tempRoot = {
|
|
206
|
+
type: 'root',
|
|
207
|
+
children: results,
|
|
208
|
+
};
|
|
209
|
+
// If we have a specific parent type, wrap the content in that parent
|
|
210
|
+
// to provide proper context for the normalize plugin
|
|
211
|
+
let astToProcess;
|
|
212
|
+
if (parentType !== 'root') {
|
|
213
|
+
// Create a parent node of the specified type with our content as children
|
|
214
|
+
const parentNode = {
|
|
215
|
+
type: parentType,
|
|
216
|
+
children: tempRoot.children,
|
|
217
|
+
};
|
|
218
|
+
astToProcess = {
|
|
219
|
+
type: 'root',
|
|
220
|
+
children: [parentNode],
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
astToProcess = tempRoot;
|
|
225
|
+
}
|
|
226
|
+
// Create a simple processor and run the normalize plugin
|
|
227
|
+
const processor = unified().use(remarkMdxJsxNormalize);
|
|
228
|
+
processor.runSync(astToProcess);
|
|
229
|
+
// Extract the result back
|
|
230
|
+
if (parentType !== 'root') {
|
|
231
|
+
// Get the children from the parent node we created
|
|
232
|
+
const processedParent = astToProcess.children[0];
|
|
233
|
+
results = processedParent.children;
|
|
215
234
|
}
|
|
216
235
|
else {
|
|
217
|
-
|
|
236
|
+
// Get children directly from root
|
|
237
|
+
results = astToProcess.children;
|
|
218
238
|
}
|
|
219
239
|
}
|
|
220
240
|
return results;
|
|
221
241
|
}
|
|
222
242
|
// Export a wrapper that always returns an array for consistency
|
|
243
|
+
// Note: htmlToMdxAst now already returns an array, so this is just an alias
|
|
223
244
|
export function parseHtmlToMdxAst(options) {
|
|
224
|
-
|
|
225
|
-
return Array.isArray(result) ? result : [result];
|
|
245
|
+
return htmlToMdxAst(options);
|
|
226
246
|
}
|
|
227
247
|
//# sourceMappingURL=html-to-mdx-ast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-to-mdx-ast.js","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"html-to-mdx-ast.js","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { test, expect, describe } from 'vitest';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { renderToStaticMarkup } from 'react-dom/server';
|
|
4
|
-
import { parseHtmlToMdxAst, } from './html-to-mdx-ast.js';
|
|
4
|
+
import { parseHtmlToMdxAst, htmlToMdxAst, } from './html-to-mdx-ast.js';
|
|
5
5
|
import { unified } from 'unified';
|
|
6
6
|
import remarkMdx from 'remark-mdx';
|
|
7
7
|
import remarkStringify from 'remark-stringify';
|
|
@@ -320,5 +320,92 @@ describe('parseHtmlToMdxAst with markdown processor', () => {
|
|
|
320
320
|
}
|
|
321
321
|
`);
|
|
322
322
|
});
|
|
323
|
+
test('normalize plugin without parentType does not apply', () => {
|
|
324
|
+
// Without parentType, normalization should not happen
|
|
325
|
+
const withoutParent = htmlToMdxAst({
|
|
326
|
+
html: '<span>Text</span>'
|
|
327
|
+
});
|
|
328
|
+
// Without normalization, elements remain as initially created (text elements)
|
|
329
|
+
expect(withoutParent).toHaveLength(1);
|
|
330
|
+
expect(withoutParent[0]).toMatchObject({
|
|
331
|
+
type: 'mdxJsxTextElement',
|
|
332
|
+
name: 'span'
|
|
333
|
+
});
|
|
334
|
+
});
|
|
335
|
+
test('applies normalize plugin with parentType', () => {
|
|
336
|
+
// Test with a block element inside a paragraph (phrasing context)
|
|
337
|
+
const blockInParagraph = htmlToMdxAst({
|
|
338
|
+
html: '<div>Block in paragraph</div>',
|
|
339
|
+
parentType: 'paragraph'
|
|
340
|
+
});
|
|
341
|
+
// Even though div is a block element, it should remain mdxJsxFlowElement
|
|
342
|
+
// because block-level tags have priority
|
|
343
|
+
expect(blockInParagraph).toHaveLength(1);
|
|
344
|
+
expect(blockInParagraph[0]).toMatchObject({
|
|
345
|
+
type: 'mdxJsxFlowElement',
|
|
346
|
+
name: 'div'
|
|
347
|
+
});
|
|
348
|
+
// Test with inline element in paragraph (should be text element)
|
|
349
|
+
const inlineInParagraph = htmlToMdxAst({
|
|
350
|
+
html: '<span>Inline in paragraph</span>',
|
|
351
|
+
parentType: 'paragraph'
|
|
352
|
+
});
|
|
353
|
+
expect(inlineInParagraph).toHaveLength(1);
|
|
354
|
+
expect(inlineInParagraph[0]).toMatchObject({
|
|
355
|
+
type: 'mdxJsxTextElement',
|
|
356
|
+
name: 'span'
|
|
357
|
+
});
|
|
358
|
+
// Test with inline element in root (should be flow element)
|
|
359
|
+
const inlineInRoot = htmlToMdxAst({
|
|
360
|
+
html: '<span>Inline in root</span>',
|
|
361
|
+
parentType: 'root'
|
|
362
|
+
});
|
|
363
|
+
expect(inlineInRoot).toHaveLength(1);
|
|
364
|
+
expect(inlineInRoot[0]).toMatchObject({
|
|
365
|
+
type: 'mdxJsxFlowElement',
|
|
366
|
+
name: 'span'
|
|
367
|
+
});
|
|
368
|
+
// Test with multiple elements
|
|
369
|
+
const multipleElements = htmlToMdxAst({
|
|
370
|
+
html: '<span>First</span><div>Second</div>',
|
|
371
|
+
parentType: 'paragraph'
|
|
372
|
+
});
|
|
373
|
+
expect(multipleElements).toHaveLength(2);
|
|
374
|
+
expect(multipleElements[0]).toMatchObject({
|
|
375
|
+
type: 'mdxJsxTextElement',
|
|
376
|
+
name: 'span'
|
|
377
|
+
});
|
|
378
|
+
expect(multipleElements[1]).toMatchObject({
|
|
379
|
+
type: 'mdxJsxFlowElement',
|
|
380
|
+
name: 'div'
|
|
381
|
+
});
|
|
382
|
+
// Test with nested elements - the normalize plugin should handle nested context correctly
|
|
383
|
+
const nestedElements = htmlToMdxAst({
|
|
384
|
+
html: '<div><span>Nested span</span><p><em>Emphasis</em></p></div>',
|
|
385
|
+
parentType: 'root'
|
|
386
|
+
});
|
|
387
|
+
// The plugin normalizes based on the entire tree structure
|
|
388
|
+
expect(nestedElements).toHaveLength(1);
|
|
389
|
+
expect(nestedElements[0]).toMatchObject({
|
|
390
|
+
type: 'mdxJsxFlowElement',
|
|
391
|
+
name: 'div',
|
|
392
|
+
children: expect.arrayContaining([
|
|
393
|
+
expect.objectContaining({
|
|
394
|
+
type: 'mdxJsxFlowElement',
|
|
395
|
+
name: 'span'
|
|
396
|
+
}),
|
|
397
|
+
expect.objectContaining({
|
|
398
|
+
type: 'mdxJsxFlowElement',
|
|
399
|
+
name: 'p',
|
|
400
|
+
children: expect.arrayContaining([
|
|
401
|
+
expect.objectContaining({
|
|
402
|
+
type: 'mdxJsxTextElement',
|
|
403
|
+
name: 'em'
|
|
404
|
+
})
|
|
405
|
+
])
|
|
406
|
+
})
|
|
407
|
+
])
|
|
408
|
+
});
|
|
409
|
+
});
|
|
323
410
|
});
|
|
324
411
|
//# sourceMappingURL=html-to-mdx-ast.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-to-mdx-ast.test.js","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EACH,iBAAiB,
|
|
1
|
+
{"version":3,"file":"html-to-mdx-ast.test.js","sourceRoot":"","sources":["../../src/html/html-to-mdx-ast.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,5 @@ import type { Root } from 'mdast';
|
|
|
6
6
|
* - Elements with block-level tag names → mdxJsxFlowElement
|
|
7
7
|
* - Elements containing non-phrasing children → mdxJsxFlowElement
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare function remarkMdxJsxNormalize(): (tree: Root) => void;
|
|
10
10
|
//# sourceMappingURL=remark-mdx-jsx-normalize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remark-mdx-jsx-normalize.d.ts","sourceRoot":"","sources":["../../src/html/remark-mdx-jsx-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAgC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"remark-mdx-jsx-normalize.d.ts","sourceRoot":"","sources":["../../src/html/remark-mdx-jsx-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAgC,MAAM,OAAO,CAAA;AA6I/D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,WACD,IAAI,UAoDvC"}
|
|
@@ -16,6 +16,39 @@ const PHRASE_CONTAINERS = new Set([
|
|
|
16
16
|
'tableCell',
|
|
17
17
|
'mdxJsxTextElement', // MDX JSX text elements should contain phrasing
|
|
18
18
|
]);
|
|
19
|
+
/** HTML tags that require phrasing/inline children */
|
|
20
|
+
const PHRASE_HTML_CONTAINERS = new Set([
|
|
21
|
+
'p',
|
|
22
|
+
'h1',
|
|
23
|
+
'h2',
|
|
24
|
+
'h3',
|
|
25
|
+
'h4',
|
|
26
|
+
'h5',
|
|
27
|
+
'h6',
|
|
28
|
+
'em',
|
|
29
|
+
'strong',
|
|
30
|
+
'b',
|
|
31
|
+
'i',
|
|
32
|
+
'u',
|
|
33
|
+
's',
|
|
34
|
+
'del',
|
|
35
|
+
'ins',
|
|
36
|
+
'mark',
|
|
37
|
+
'small',
|
|
38
|
+
'sub',
|
|
39
|
+
'sup',
|
|
40
|
+
'a',
|
|
41
|
+
'abbr',
|
|
42
|
+
'cite',
|
|
43
|
+
'code',
|
|
44
|
+
'dfn',
|
|
45
|
+
'kbd',
|
|
46
|
+
'q',
|
|
47
|
+
'samp',
|
|
48
|
+
'span',
|
|
49
|
+
'time',
|
|
50
|
+
'var',
|
|
51
|
+
]);
|
|
19
52
|
/** Parents that accept/expect flow (block) content */
|
|
20
53
|
const FLOW_CONTAINERS = new Set([
|
|
21
54
|
'root',
|
|
@@ -47,22 +80,51 @@ const blockLevelTags = new Set([
|
|
|
47
80
|
'div',
|
|
48
81
|
'p',
|
|
49
82
|
'blockquote',
|
|
50
|
-
'h1',
|
|
51
|
-
'
|
|
83
|
+
'h1',
|
|
84
|
+
'h2',
|
|
85
|
+
'h3',
|
|
86
|
+
'h4',
|
|
87
|
+
'h5',
|
|
88
|
+
'h6',
|
|
89
|
+
'ul',
|
|
90
|
+
'ol',
|
|
91
|
+
'li',
|
|
52
92
|
'pre',
|
|
53
93
|
'hr',
|
|
54
|
-
'table',
|
|
55
|
-
'
|
|
56
|
-
'
|
|
94
|
+
'table',
|
|
95
|
+
'thead',
|
|
96
|
+
'tbody',
|
|
97
|
+
'tfoot',
|
|
98
|
+
'tr',
|
|
99
|
+
'th',
|
|
100
|
+
'td',
|
|
101
|
+
'section',
|
|
102
|
+
'article',
|
|
103
|
+
'aside',
|
|
104
|
+
'nav',
|
|
105
|
+
'header',
|
|
106
|
+
'footer',
|
|
107
|
+
'main',
|
|
108
|
+
'figure',
|
|
109
|
+
'figcaption',
|
|
57
110
|
// Notion-specific block elements
|
|
58
111
|
'callout',
|
|
59
|
-
'columns',
|
|
112
|
+
'columns',
|
|
113
|
+
'column',
|
|
60
114
|
'page',
|
|
61
115
|
'database',
|
|
62
116
|
'data-source',
|
|
63
|
-
'audio',
|
|
64
|
-
'
|
|
65
|
-
'
|
|
117
|
+
'audio',
|
|
118
|
+
'video',
|
|
119
|
+
'file',
|
|
120
|
+
'pdf',
|
|
121
|
+
'embed',
|
|
122
|
+
'synced_block',
|
|
123
|
+
'synced_block_reference',
|
|
124
|
+
'meeting-notes',
|
|
125
|
+
'summary',
|
|
126
|
+
'notes',
|
|
127
|
+
'transcript',
|
|
66
128
|
'table_of_contents',
|
|
67
129
|
'unknown',
|
|
68
130
|
'image', // Images can be block-level in Notion
|
|
@@ -74,18 +136,33 @@ const blockLevelTags = new Set([
|
|
|
74
136
|
* - Elements with block-level tag names → mdxJsxFlowElement
|
|
75
137
|
* - Elements containing non-phrasing children → mdxJsxFlowElement
|
|
76
138
|
*/
|
|
77
|
-
export
|
|
139
|
+
export function remarkMdxJsxNormalize() {
|
|
78
140
|
return function transform(tree) {
|
|
79
141
|
visitParents(tree, isMdxJsx, (node, ancestors) => {
|
|
80
142
|
const element = node;
|
|
81
143
|
const parent = ancestors[ancestors.length - 1];
|
|
82
144
|
if (!parent)
|
|
83
145
|
return;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
146
|
+
// Check if parent expects phrasing or flow content
|
|
147
|
+
let parentExpectsPhrasing = false;
|
|
148
|
+
let parentExpectsFlow = false;
|
|
149
|
+
if ((parent.type === 'mdxJsxFlowElement' || parent.type === 'mdxJsxTextElement') &&
|
|
150
|
+
parent.name) {
|
|
151
|
+
// For MDX JSX elements, check the tag name
|
|
152
|
+
const parentTagName = parent.name.toLowerCase();
|
|
153
|
+
parentExpectsPhrasing = PHRASE_HTML_CONTAINERS.has(parentTagName);
|
|
154
|
+
// If not phrasing and is a block-level tag, it expects flow
|
|
155
|
+
parentExpectsFlow = !parentExpectsPhrasing && blockLevelTags.has(parentTagName);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
// For mdast nodes, check the type
|
|
159
|
+
parentExpectsPhrasing = PHRASE_CONTAINERS.has(parent.type);
|
|
160
|
+
parentExpectsFlow = FLOW_CONTAINERS.has(parent.type);
|
|
161
|
+
}
|
|
87
162
|
// Check element properties
|
|
88
|
-
const hasBlockTag = element.name
|
|
163
|
+
const hasBlockTag = element.name
|
|
164
|
+
? blockLevelTags.has(element.name.toLowerCase())
|
|
165
|
+
: false;
|
|
89
166
|
const children = (element.children || []);
|
|
90
167
|
const containsNonPhrasing = children.some((c) => !isPhrasing(c));
|
|
91
168
|
// Determine desired type
|
|
@@ -112,6 +189,6 @@ export default function remarkMdxJsxNormalize() {
|
|
|
112
189
|
}
|
|
113
190
|
/** Check if a node is an MDX JSX element */
|
|
114
191
|
function isMdxJsx(node) {
|
|
115
|
-
return node.type === 'mdxJsxTextElement' || node.type === 'mdxJsxFlowElement';
|
|
192
|
+
return (node.type === 'mdxJsxTextElement' || node.type === 'mdxJsxFlowElement');
|
|
116
193
|
}
|
|
117
194
|
//# sourceMappingURL=remark-mdx-jsx-normalize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remark-mdx-jsx-normalize.js","sourceRoot":"","sources":["../../src/html/remark-mdx-jsx-normalize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGvD,mDAAmD;AACnD,yFAAyF;AACzF,8HAA8H;AAC9H,2DAA2D;AAC3D,mEAAmE;AAEnE,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAC9B,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,eAAe;IACf,WAAW;IACX,mBAAmB,EAAE,gDAAgD;CACxE,CAAC,CAAA;AAEF,sDAAsD;AACtD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,MAAM;IACN,UAAU;IACV,YAAY;IACZ,oBAAoB;IACpB,mBAAmB,EAAE,4CAA4C;CACpE,CAAC,CAAA;AAEF,kDAAkD;AAClD,SAAS,UAAU,CAAC,IAAU;IAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC1B,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,MAAM;QACN,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,MAAM;QACN,eAAe;QACf,OAAO;QACP,mBAAmB;KACtB,CAAC,CAAA;IACF,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,mDAAmD;AACnD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC3B,KAAK;IACL,GAAG;IACH,YAAY;IACZ,IAAI,
|
|
1
|
+
{"version":3,"file":"remark-mdx-jsx-normalize.js","sourceRoot":"","sources":["../../src/html/remark-mdx-jsx-normalize.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Root } from 'mdast';
|
|
2
|
-
import { parseHtmlToMdxAst } from './html/html-to-mdx-ast.js';
|
|
3
|
-
export { parseHtmlToMdxAst };
|
|
2
|
+
import { parseHtmlToMdxAst, remarkMdxJsxNormalize } from './html/html-to-mdx-ast.js';
|
|
3
|
+
export { parseHtmlToMdxAst, remarkMdxJsxNormalize };
|
|
4
4
|
export declare function mdxParse(code: string): Root;
|
|
5
5
|
/**
|
|
6
6
|
* https://github.com/mdx-js/mdx/blob/b3351fadcb6f78833a72757b7135dcfb8ab646fe/packages/mdx/lib/plugin/remark-mark-and-unravel.js
|
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAe,MAAM,OAAO,CAAA;AAIzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAe,MAAM,OAAO,CAAA;AAIzC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEpF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAA;AAEnD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,QAGpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,WACT,IAAI,UAqE9B"}
|
package/dist/parse.js
CHANGED
|
@@ -4,8 +4,8 @@ import { visit } from 'unist-util-visit';
|
|
|
4
4
|
import { remark } from 'remark';
|
|
5
5
|
import remarkGfm from 'remark-gfm';
|
|
6
6
|
import remarkMdx from 'remark-mdx';
|
|
7
|
-
import { parseHtmlToMdxAst } from './html/html-to-mdx-ast.js';
|
|
8
|
-
export { parseHtmlToMdxAst };
|
|
7
|
+
import { parseHtmlToMdxAst, remarkMdxJsxNormalize } from './html/html-to-mdx-ast.js';
|
|
8
|
+
export { parseHtmlToMdxAst, remarkMdxJsxNormalize };
|
|
9
9
|
export function mdxParse(code) {
|
|
10
10
|
const file = mdxProcessor.processSync(code);
|
|
11
11
|
return file.data.ast;
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEpF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,CAAA;AAEnD,MAAM,UAAU,QAAQ,CAAC,IAAY;IACjC,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAW,CAAA;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB;IAChC,OAAO,UAAU,IAAU;QACvB,KAAK,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,KAAK,EAAE,MAAM;YACrC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;YACf,IAAI,GAAG,GAAG,IAAI,CAAA;YACd,IAAI,SAAS,GAAG,KAAK,CAAA;YAErB,IACI,MAAM;gBACN,OAAO,KAAK,KAAK,QAAQ;gBACzB,IAAI,CAAC,IAAI,KAAK,WAAW,EAC3B;gBACE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAE9B,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;oBAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;oBAE9B,IACI,KAAK,CAAC,IAAI,KAAK,mBAAmB;wBAClC,KAAK,CAAC,IAAI,KAAK,mBAAmB,EACpC;wBACE,SAAS,GAAG,IAAI,CAAA;qBACnB;yBAAM,IACH,KAAK,CAAC,IAAI,KAAK,MAAM;wBACrB,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE;4BAC5B,KAAK,EAAE,MAAM;4BACb,IAAI,EAAE,IAAI;yBACb,CAAC,KAAK,EAAE,EACX;wBACE,SAAS;qBACZ;yBAAM;wBACH,GAAG,GAAG,KAAK,CAAA;wBACX,MAAK;qBACR;iBACJ;gBAED,IAAI,GAAG,IAAI,SAAS,EAAE;oBAClB,MAAM,GAAG,CAAC,CAAC,CAAA;oBAEX,MAAM,WAAW,GAAkB,EAAE,CAAA;oBAErC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE;wBAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;wBAE9B,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;4BACpC,wEAAwE;4BACxE,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAA;yBACnC;wBAED,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE;4BACpC,wEAAwE;4BACxE,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAA;yBACnC;wBAED,IACI,KAAK,CAAC,IAAI,KAAK,MAAM;4BACrB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAC1C;4BACE,SAAS;yBACZ;6BAAM;4BACH,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;yBAC1B;qBACJ;oBAED,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAA;oBAChD,OAAO,KAAK,CAAA;iBACf;aACJ;QACL,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;AACL,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,EAAE;KACxB,GAAG,CAAC,SAAS,CAAC;KACd,GAAG,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,GAAG,CAAC,SAAS,CAAC;KACd,GAAG,CAAC,oBAAoB,CAAC;KACzB,GAAG,CAAC,GAAG,EAAE;IACN,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;IACxB,CAAC,CAAA;AACL,CAAC,CAAC,CAAA"}
|
package/dist/safe-mdx.d.ts
CHANGED
|
@@ -62,7 +62,7 @@ export declare class MdastToJsx {
|
|
|
62
62
|
transformJsxElement(jsxElement: JSXElement, onError?: (err: SafeMdxError) => void, line?: number): ReactNode;
|
|
63
63
|
getJsxAttrs(node: MdxJsxFlowElement | MdxJsxTextElement, onError?: (err: SafeMdxError) => void): [string, any][];
|
|
64
64
|
run(): any;
|
|
65
|
-
mdastTransformer(node: MyRootContent): ReactNode;
|
|
65
|
+
mdastTransformer(node: MyRootContent, parentType?: string): ReactNode;
|
|
66
66
|
}
|
|
67
67
|
export declare function mdastBfs(node: Parent | Node, cb?: (node: Node | Parent) => any): any[];
|
|
68
68
|
type ComponentsMap = {
|
package/dist/safe-mdx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
|