safe-mdx 0.0.1 → 0.0.2
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/safe-mdx.d.ts +3 -1
- package/dist/safe-mdx.d.ts.map +1 -1
- package/dist/safe-mdx.js +68 -53
- package/dist/safe-mdx.js.map +1 -1
- package/dist/safe-mdx.test.js +25 -57
- package/dist/safe-mdx.test.js.map +1 -1
- package/package.json +1 -1
- package/src/safe-mdx.test.tsx +25 -57
- package/src/safe-mdx.tsx +76 -62
package/dist/safe-mdx.d.ts
CHANGED
|
@@ -30,8 +30,10 @@ export declare class MdastToJsx {
|
|
|
30
30
|
jsxTransformer(node: MyRootContent): ReactNode;
|
|
31
31
|
run(): any;
|
|
32
32
|
mdastTransformer(node: MyRootContent): ReactNode;
|
|
33
|
-
getJsxAttrs(node: MdxJsxFlowElement | MdxJsxTextElement): [string, any][];
|
|
34
33
|
}
|
|
34
|
+
export declare function getJsxAttrs(node: MdxJsxFlowElement | MdxJsxTextElement, onError?: (err: {
|
|
35
|
+
message: string;
|
|
36
|
+
}) => void): [string, any][];
|
|
35
37
|
export declare function mdastBfs(node: Parent | Node, cb?: (node: Node | Parent) => any): any[];
|
|
36
38
|
export {};
|
|
37
39
|
//# sourceMappingURL=safe-mdx.d.ts.map
|
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":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGpC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKzE,OAAO,EAAY,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,KAAK,aAAa,GAAG,WAAW,GAAG,IAAI,CAAA;AASvC,wBAAgB,eAAe,CAAC,EAC5B,UAAU,EACV,IAAS,EACT,KAAmB,GACtB;;;;CAAA,OAIA;AAED,QAAA,MAAM,UAAU,qVA4CN,CAAA;AAEV,KAAK,aAAa,GAAG;KAAG,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;CAAE,CAAA;AAEjE,qBAAa,UAAU;IACnB,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAK;IACnB,CAAC,EAAE,aAAa,CAAA;IAChB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAK;gBACtB,EACR,IAAS,EACT,KAAwB,EACxB,UAAgC,GACnC;;;;KAAA;IAYD,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAe1B,cAAc,CAAC,IAAI,EAAE,GAAG;IAexB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"safe-mdx.d.ts","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGpC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKzE,OAAO,EAAY,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,KAAK,aAAa,GAAG,WAAW,GAAG,IAAI,CAAA;AASvC,wBAAgB,eAAe,CAAC,EAC5B,UAAU,EACV,IAAS,EACT,KAAmB,GACtB;;;;CAAA,OAIA;AAED,QAAA,MAAM,UAAU,qVA4CN,CAAA;AAEV,KAAK,aAAa,GAAG;KAAG,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;CAAE,CAAA;AAEjE,qBAAa,UAAU;IACnB,KAAK,EAAE,aAAa,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAK;IACnB,CAAC,EAAE,aAAa,CAAA;IAChB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAK;gBACtB,EACR,IAAS,EACT,KAAwB,EACxB,UAAgC,GACnC;;;;KAAA;IAYD,gBAAgB,CAAC,IAAI,EAAE,GAAG;IAe1B,cAAc,CAAC,IAAI,EAAE,GAAG;IAexB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IAsC9C,GAAG;IAQH,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;CAmOnD;AAED,wBAAgB,WAAW,CACvB,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,EAC3C,OAAO,GAAE,CAAC,GAAG,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAoB,mBAoE9D;AAcD,wBAAgB,QAAQ,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,KAAK,GAAG,SAiBpC"}
|
package/dist/safe-mdx.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.mdastBfs = exports.MdastToJsx = exports.SafeMdxRenderer = void 0;
|
|
29
|
+
exports.mdastBfs = exports.getJsxAttrs = exports.MdastToJsx = exports.SafeMdxRenderer = void 0;
|
|
30
30
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
31
31
|
const react_1 = __importStar(require("react"));
|
|
32
32
|
const html_to_jsx_transform_1 = require("html-to-jsx-transform");
|
|
@@ -144,7 +144,9 @@ class MdastToJsx {
|
|
|
144
144
|
});
|
|
145
145
|
return null;
|
|
146
146
|
}
|
|
147
|
-
let attrsList =
|
|
147
|
+
let attrsList = getJsxAttrs(node, (err) => {
|
|
148
|
+
this.errors.push(err);
|
|
149
|
+
});
|
|
148
150
|
let attrs = Object.fromEntries(attrsList);
|
|
149
151
|
return ((0, jsx_runtime_1.jsx)(Component, Object.assign({}, attrs, { children: this.mapJsxChildren(node) })));
|
|
150
152
|
}
|
|
@@ -225,7 +227,7 @@ class MdastToJsx {
|
|
|
225
227
|
}
|
|
226
228
|
const language = node.lang || '';
|
|
227
229
|
const code = node.value;
|
|
228
|
-
return ((0, jsx_runtime_1.jsx)(this.c.pre, { children: (0, jsx_runtime_1.jsx)(this.c.code, {
|
|
230
|
+
return ((0, jsx_runtime_1.jsx)(this.c.pre, { children: (0, jsx_runtime_1.jsx)(this.c.code, { children: code }) }));
|
|
229
231
|
}
|
|
230
232
|
case 'list': {
|
|
231
233
|
if (node.ordered) {
|
|
@@ -343,64 +345,69 @@ class MdastToJsx {
|
|
|
343
345
|
}
|
|
344
346
|
}
|
|
345
347
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
348
|
+
}
|
|
349
|
+
exports.MdastToJsx = MdastToJsx;
|
|
350
|
+
function getJsxAttrs(node, onError = console.error) {
|
|
351
|
+
let attrsList = node.attributes
|
|
352
|
+
.map((attr) => {
|
|
353
|
+
if (attr.type === 'mdxJsxExpressionAttribute') {
|
|
354
|
+
onError({
|
|
355
|
+
message: `Expressions in jsx props are not supported (${attr.value.replace(/\n+/g, ' ')})`,
|
|
356
|
+
});
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
if (attr.type !== 'mdxJsxAttribute') {
|
|
360
|
+
throw new Error(`non mdxJsxAttribute is not supported: ${attr}`);
|
|
361
|
+
}
|
|
362
|
+
const v = attr.value;
|
|
363
|
+
if (typeof v === 'string' || typeof v === 'number') {
|
|
364
|
+
return [attr.name, v];
|
|
365
|
+
}
|
|
366
|
+
if (v === null) {
|
|
367
|
+
return [attr.name, true];
|
|
368
|
+
}
|
|
369
|
+
if ((v === null || v === void 0 ? void 0 : v.type) === 'mdxJsxAttributeValueExpression') {
|
|
370
|
+
if (v.value === 'true') {
|
|
371
|
+
return [attr.name, true];
|
|
354
372
|
}
|
|
355
|
-
if (
|
|
356
|
-
|
|
373
|
+
if (v.value === 'false') {
|
|
374
|
+
return [attr.name, false];
|
|
357
375
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
return [attr.name, v];
|
|
376
|
+
if (v.value === 'null') {
|
|
377
|
+
return [attr.name, null];
|
|
361
378
|
}
|
|
362
|
-
if (v ===
|
|
363
|
-
return [attr.name,
|
|
379
|
+
if (v.value === 'undefined') {
|
|
380
|
+
return [attr.name, undefined];
|
|
364
381
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
return [attr.name, false];
|
|
371
|
-
}
|
|
372
|
-
if (v.value === 'null') {
|
|
373
|
-
return [attr.name, null];
|
|
374
|
-
}
|
|
375
|
-
if (v.value === 'undefined') {
|
|
376
|
-
return [attr.name, undefined];
|
|
382
|
+
let quote = ['"', "'", '`'].find((q) => v.value.startsWith(q) && v.value.endsWith(q));
|
|
383
|
+
if (quote) {
|
|
384
|
+
let value = v.value;
|
|
385
|
+
if (quote !== '"') {
|
|
386
|
+
value = v.value.replace(new RegExp(quote, 'g'), '"');
|
|
377
387
|
}
|
|
378
|
-
|
|
379
|
-
if (quote) {
|
|
380
|
-
let value = v.value;
|
|
381
|
-
if (quote !== '"') {
|
|
382
|
-
value = v.value.replace(new RegExp(quote, 'g'), '"');
|
|
383
|
-
}
|
|
384
|
-
return [attr.name, JSON.parse(value)];
|
|
385
|
-
}
|
|
386
|
-
const number = Number(v.value);
|
|
387
|
-
if (!isNaN(number)) {
|
|
388
|
-
return [attr.name, number];
|
|
389
|
-
}
|
|
390
|
-
this.errors.push({
|
|
391
|
-
message: `Expressions in jsx props are not supported (${attr.name}={${v.value}})`,
|
|
392
|
-
});
|
|
388
|
+
return [attr.name, JSON.parse(value)];
|
|
393
389
|
}
|
|
394
|
-
|
|
395
|
-
|
|
390
|
+
const number = Number(v.value);
|
|
391
|
+
if (!isNaN(number)) {
|
|
392
|
+
return [attr.name, number];
|
|
396
393
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
394
|
+
const parsedJson = safeJsonParse(v.value);
|
|
395
|
+
if (parsedJson) {
|
|
396
|
+
return [attr.name, parsedJson];
|
|
397
|
+
}
|
|
398
|
+
onError({
|
|
399
|
+
message: `Expressions in jsx props are not supported (${attr.name}={${v.value}})`,
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
403
|
+
console.log('unhandled attr', { attr }, attr.type);
|
|
404
|
+
}
|
|
405
|
+
return;
|
|
406
|
+
})
|
|
407
|
+
.filter(isTruthy);
|
|
408
|
+
return attrsList;
|
|
402
409
|
}
|
|
403
|
-
exports.
|
|
410
|
+
exports.getJsxAttrs = getJsxAttrs;
|
|
404
411
|
function isTruthy(val) {
|
|
405
412
|
return Boolean(val);
|
|
406
413
|
}
|
|
@@ -430,4 +437,12 @@ function mdastBfs(node, cb) {
|
|
|
430
437
|
return result;
|
|
431
438
|
}
|
|
432
439
|
exports.mdastBfs = mdastBfs;
|
|
440
|
+
function safeJsonParse(str) {
|
|
441
|
+
try {
|
|
442
|
+
return JSON.parse(str);
|
|
443
|
+
}
|
|
444
|
+
catch (err) {
|
|
445
|
+
return null;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
433
448
|
//# sourceMappingURL=safe-mdx.js.map
|
package/dist/safe-mdx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-mdx.js","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"safe-mdx.js","sourceRoot":"","sources":["../src/safe-mdx.tsx"],"names":[],"mappings":"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"}
|
package/dist/safe-mdx.test.js
CHANGED
|
@@ -106,6 +106,7 @@ function render(code) {
|
|
|
106
106
|
jsx={<SomeComponent />}
|
|
107
107
|
undef={undefined}
|
|
108
108
|
null={null}
|
|
109
|
+
someJson={{"a": 1}}
|
|
109
110
|
{...{
|
|
110
111
|
spread: true
|
|
111
112
|
}}
|
|
@@ -137,6 +138,11 @@ function render(code) {
|
|
|
137
138
|
null={null}
|
|
138
139
|
num={2}
|
|
139
140
|
quote="a \\" string"
|
|
141
|
+
someJson={
|
|
142
|
+
{
|
|
143
|
+
"a": 1,
|
|
144
|
+
}
|
|
145
|
+
}
|
|
140
146
|
>
|
|
141
147
|
<p>
|
|
142
148
|
hi
|
|
@@ -743,9 +749,7 @@ function render(code) {
|
|
|
743
749
|
Headers
|
|
744
750
|
</h2>
|
|
745
751
|
<pre>
|
|
746
|
-
<code
|
|
747
|
-
className="language-no-highlight"
|
|
748
|
-
>
|
|
752
|
+
<code>
|
|
749
753
|
# H1
|
|
750
754
|
## H2
|
|
751
755
|
### H3
|
|
@@ -796,9 +800,7 @@ function render(code) {
|
|
|
796
800
|
Emphasis
|
|
797
801
|
</h2>
|
|
798
802
|
<pre>
|
|
799
|
-
<code
|
|
800
|
-
className="language-no-highlight"
|
|
801
|
-
>
|
|
803
|
+
<code>
|
|
802
804
|
Emphasis, aka italics, with *asterisks* or _underscores_.
|
|
803
805
|
|
|
804
806
|
Strong emphasis, aka bold, with **asterisks** or __underscores__.
|
|
@@ -856,9 +858,7 @@ function render(code) {
|
|
|
856
858
|
(In this example, leading and trailing spaces are shown with with dots: ⋅)
|
|
857
859
|
</p>
|
|
858
860
|
<pre>
|
|
859
|
-
<code
|
|
860
|
-
className="language-no-highlight"
|
|
861
|
-
>
|
|
861
|
+
<code>
|
|
862
862
|
1. First ordered list item
|
|
863
863
|
2. Another item
|
|
864
864
|
⋅⋅* Unordered sub-list.
|
|
@@ -958,9 +958,7 @@ function render(code) {
|
|
|
958
958
|
There are two ways to create links.
|
|
959
959
|
</p>
|
|
960
960
|
<pre>
|
|
961
|
-
<code
|
|
962
|
-
className="language-no-highlight"
|
|
963
|
-
>
|
|
961
|
+
<code>
|
|
964
962
|
[I'm an inline-style link](https://www.google.com)
|
|
965
963
|
|
|
966
964
|
[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
|
|
@@ -1053,9 +1051,7 @@ function render(code) {
|
|
|
1053
1051
|
Images
|
|
1054
1052
|
</h2>
|
|
1055
1053
|
<pre>
|
|
1056
|
-
<code
|
|
1057
|
-
className="language-no-highlight"
|
|
1058
|
-
>
|
|
1054
|
+
<code>
|
|
1059
1055
|
Here's our logo (hover to see the title text):
|
|
1060
1056
|
|
|
1061
1057
|
Inline-style:
|
|
@@ -1108,9 +1104,7 @@ function render(code) {
|
|
|
1108
1104
|
.
|
|
1109
1105
|
</p>
|
|
1110
1106
|
<pre>
|
|
1111
|
-
<code
|
|
1112
|
-
className="language-no-highlight"
|
|
1113
|
-
>
|
|
1107
|
+
<code>
|
|
1114
1108
|
Inline \`code\` has \`back-ticks around\` it.
|
|
1115
1109
|
</code>
|
|
1116
1110
|
</pre>
|
|
@@ -1133,49 +1127,37 @@ function render(code) {
|
|
|
1133
1127
|
, or are indented with four spaces. I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting.
|
|
1134
1128
|
</p>
|
|
1135
1129
|
<pre>
|
|
1136
|
-
<code
|
|
1137
|
-
className="language-javascript"
|
|
1138
|
-
>
|
|
1130
|
+
<code>
|
|
1139
1131
|
var s = "JavaScript syntax highlighting";
|
|
1140
1132
|
alert(s);
|
|
1141
1133
|
</code>
|
|
1142
1134
|
</pre>
|
|
1143
1135
|
<pre>
|
|
1144
|
-
<code
|
|
1145
|
-
className="language-python"
|
|
1146
|
-
>
|
|
1136
|
+
<code>
|
|
1147
1137
|
s = "Python syntax highlighting"
|
|
1148
1138
|
print s
|
|
1149
1139
|
</code>
|
|
1150
1140
|
</pre>
|
|
1151
1141
|
<pre>
|
|
1152
|
-
<code
|
|
1153
|
-
className="language-"
|
|
1154
|
-
>
|
|
1142
|
+
<code>
|
|
1155
1143
|
No language indicated, so no syntax highlighting.
|
|
1156
1144
|
But let's throw in a <b>tag</b>.
|
|
1157
1145
|
</code>
|
|
1158
1146
|
</pre>
|
|
1159
1147
|
<pre>
|
|
1160
|
-
<code
|
|
1161
|
-
className="language-javascript"
|
|
1162
|
-
>
|
|
1148
|
+
<code>
|
|
1163
1149
|
var s = "JavaScript syntax highlighting";
|
|
1164
1150
|
alert(s);
|
|
1165
1151
|
</code>
|
|
1166
1152
|
</pre>
|
|
1167
1153
|
<pre>
|
|
1168
|
-
<code
|
|
1169
|
-
className="language-python"
|
|
1170
|
-
>
|
|
1154
|
+
<code>
|
|
1171
1155
|
s = "Python syntax highlighting"
|
|
1172
1156
|
print s
|
|
1173
1157
|
</code>
|
|
1174
1158
|
</pre>
|
|
1175
1159
|
<pre>
|
|
1176
|
-
<code
|
|
1177
|
-
className="language-"
|
|
1178
|
-
>
|
|
1160
|
+
<code>
|
|
1179
1161
|
No language indicated, so no syntax highlighting in Markdown Here (varies on Github).
|
|
1180
1162
|
But let's throw in a <b>tag</b>.
|
|
1181
1163
|
</code>
|
|
@@ -1194,9 +1176,7 @@ function render(code) {
|
|
|
1194
1176
|
supports them. They are an easy way of adding tables to your email -- a task that would otherwise require copy-pasting from another application.
|
|
1195
1177
|
</p>
|
|
1196
1178
|
<pre>
|
|
1197
|
-
<code
|
|
1198
|
-
className="language-no-highlight"
|
|
1199
|
-
>
|
|
1179
|
+
<code>
|
|
1200
1180
|
Colons can be used to align columns.
|
|
1201
1181
|
|
|
1202
1182
|
| Tables | Are | Cool |
|
|
@@ -1371,9 +1351,7 @@ function render(code) {
|
|
|
1371
1351
|
Blockquotes
|
|
1372
1352
|
</h2>
|
|
1373
1353
|
<pre>
|
|
1374
|
-
<code
|
|
1375
|
-
className="language-no-highlight"
|
|
1376
|
-
>
|
|
1354
|
+
<code>
|
|
1377
1355
|
> Blockquotes are very handy in email to emulate reply text.
|
|
1378
1356
|
> This line is part of the same quote.
|
|
1379
1357
|
|
|
@@ -1414,9 +1392,7 @@ function render(code) {
|
|
|
1414
1392
|
You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
|
|
1415
1393
|
</p>
|
|
1416
1394
|
<pre>
|
|
1417
|
-
<code
|
|
1418
|
-
className="language-no-highlight"
|
|
1419
|
-
>
|
|
1395
|
+
<code>
|
|
1420
1396
|
<dl>
|
|
1421
1397
|
<dt>Definition list</dt>
|
|
1422
1398
|
<dd>Is something people use sometimes.</dd>
|
|
@@ -1433,9 +1409,7 @@ function render(code) {
|
|
|
1433
1409
|
Horizontal Rule
|
|
1434
1410
|
</h2>
|
|
1435
1411
|
<pre>
|
|
1436
|
-
<code
|
|
1437
|
-
className="language-"
|
|
1438
|
-
>
|
|
1412
|
+
<code>
|
|
1439
1413
|
Three or more...
|
|
1440
1414
|
|
|
1441
1415
|
---
|
|
@@ -1479,9 +1453,7 @@ function render(code) {
|
|
|
1479
1453
|
Here are some things to try out:
|
|
1480
1454
|
</p>
|
|
1481
1455
|
<pre>
|
|
1482
|
-
<code
|
|
1483
|
-
className="language-"
|
|
1484
|
-
>
|
|
1456
|
+
<code>
|
|
1485
1457
|
Here's a line for us to start with.
|
|
1486
1458
|
|
|
1487
1459
|
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
|
|
@@ -1526,9 +1498,7 @@ function render(code) {
|
|
|
1526
1498
|
They can't be added directly but you can add an image with a link to the video like this:
|
|
1527
1499
|
</p>
|
|
1528
1500
|
<pre>
|
|
1529
|
-
<code
|
|
1530
|
-
className="language-no-highlight"
|
|
1531
|
-
>
|
|
1501
|
+
<code>
|
|
1532
1502
|
<a href="http://www.youtube.com/watch?feature=player_embedded&v=YOUTUBE_VIDEO_ID_HERE
|
|
1533
1503
|
" target="_blank"><img src="http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg"
|
|
1534
1504
|
alt="IMAGE ALT TEXT HERE" width="240" height="180" border="10" /></a>
|
|
@@ -1538,9 +1508,7 @@ function render(code) {
|
|
|
1538
1508
|
Or, in pure Markdown, but losing the image sizing and border:
|
|
1539
1509
|
</p>
|
|
1540
1510
|
<pre>
|
|
1541
|
-
<code
|
|
1542
|
-
className="language-no-highlight"
|
|
1543
|
-
>
|
|
1511
|
+
<code>
|
|
1544
1512
|
[](http://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE)
|
|
1545
1513
|
</code>
|
|
1546
1514
|
</pre>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,oDAA2B;AAC3B,mCAAqC;AACrC,yCAAuC;AACvC,KAAK,eAAK,CAAA;AAEV,MAAM,UAAU,GAAG;IACf,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;QACvB,OAAO,yCAAK,QAAQ,GAAM,CAAA;IAC9B,CAAC;CACG,CAAA;AAER,SAAS,MAAM,CAAC,IAAI;IAChB,MAAM,OAAO,GAAG,IAAI,qBAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAA;AACnD,CAAC;AAED,IAAA,aAAI,EAAC,OAAO,EAAE,GAAG,EAAE;IACf,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;;;SAIZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;KAYvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,YAAY,EAAE,GAAG,EAAE;IACpB,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;SAEZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;KAavB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,WAAW,EAAE,GAAG,EAAE;IACnB,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;;;SAIZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;KAevB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;SAEZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;KASvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,eAAe,EAAE,GAAG,EAAE;IACvB,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;;;;+BAKU,SAAS
|
|
1
|
+
{"version":3,"file":"safe-mdx.test.js","sourceRoot":"","sources":["../src/safe-mdx.test.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAi6BvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
package/src/safe-mdx.test.tsx
CHANGED
|
@@ -116,6 +116,7 @@ test('props parsing', () => {
|
|
|
116
116
|
jsx={<SomeComponent />}
|
|
117
117
|
undef={undefined}
|
|
118
118
|
null={null}
|
|
119
|
+
someJson={{"a": 1}}
|
|
119
120
|
{...{
|
|
120
121
|
spread: true
|
|
121
122
|
}}
|
|
@@ -148,6 +149,11 @@ test('props parsing', () => {
|
|
|
148
149
|
null={null}
|
|
149
150
|
num={2}
|
|
150
151
|
quote="a \\" string"
|
|
152
|
+
someJson={
|
|
153
|
+
{
|
|
154
|
+
"a": 1,
|
|
155
|
+
}
|
|
156
|
+
}
|
|
151
157
|
>
|
|
152
158
|
<p>
|
|
153
159
|
hi
|
|
@@ -759,9 +765,7 @@ test('kitchen sink', () => {
|
|
|
759
765
|
Headers
|
|
760
766
|
</h2>
|
|
761
767
|
<pre>
|
|
762
|
-
<code
|
|
763
|
-
className="language-no-highlight"
|
|
764
|
-
>
|
|
768
|
+
<code>
|
|
765
769
|
# H1
|
|
766
770
|
## H2
|
|
767
771
|
### H3
|
|
@@ -812,9 +816,7 @@ test('kitchen sink', () => {
|
|
|
812
816
|
Emphasis
|
|
813
817
|
</h2>
|
|
814
818
|
<pre>
|
|
815
|
-
<code
|
|
816
|
-
className="language-no-highlight"
|
|
817
|
-
>
|
|
819
|
+
<code>
|
|
818
820
|
Emphasis, aka italics, with *asterisks* or _underscores_.
|
|
819
821
|
|
|
820
822
|
Strong emphasis, aka bold, with **asterisks** or __underscores__.
|
|
@@ -872,9 +874,7 @@ test('kitchen sink', () => {
|
|
|
872
874
|
(In this example, leading and trailing spaces are shown with with dots: ⋅)
|
|
873
875
|
</p>
|
|
874
876
|
<pre>
|
|
875
|
-
<code
|
|
876
|
-
className="language-no-highlight"
|
|
877
|
-
>
|
|
877
|
+
<code>
|
|
878
878
|
1. First ordered list item
|
|
879
879
|
2. Another item
|
|
880
880
|
⋅⋅* Unordered sub-list.
|
|
@@ -974,9 +974,7 @@ test('kitchen sink', () => {
|
|
|
974
974
|
There are two ways to create links.
|
|
975
975
|
</p>
|
|
976
976
|
<pre>
|
|
977
|
-
<code
|
|
978
|
-
className="language-no-highlight"
|
|
979
|
-
>
|
|
977
|
+
<code>
|
|
980
978
|
[I'm an inline-style link](https://www.google.com)
|
|
981
979
|
|
|
982
980
|
[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
|
|
@@ -1069,9 +1067,7 @@ test('kitchen sink', () => {
|
|
|
1069
1067
|
Images
|
|
1070
1068
|
</h2>
|
|
1071
1069
|
<pre>
|
|
1072
|
-
<code
|
|
1073
|
-
className="language-no-highlight"
|
|
1074
|
-
>
|
|
1070
|
+
<code>
|
|
1075
1071
|
Here's our logo (hover to see the title text):
|
|
1076
1072
|
|
|
1077
1073
|
Inline-style:
|
|
@@ -1124,9 +1120,7 @@ test('kitchen sink', () => {
|
|
|
1124
1120
|
.
|
|
1125
1121
|
</p>
|
|
1126
1122
|
<pre>
|
|
1127
|
-
<code
|
|
1128
|
-
className="language-no-highlight"
|
|
1129
|
-
>
|
|
1123
|
+
<code>
|
|
1130
1124
|
Inline \`code\` has \`back-ticks around\` it.
|
|
1131
1125
|
</code>
|
|
1132
1126
|
</pre>
|
|
@@ -1149,49 +1143,37 @@ test('kitchen sink', () => {
|
|
|
1149
1143
|
, or are indented with four spaces. I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting.
|
|
1150
1144
|
</p>
|
|
1151
1145
|
<pre>
|
|
1152
|
-
<code
|
|
1153
|
-
className="language-javascript"
|
|
1154
|
-
>
|
|
1146
|
+
<code>
|
|
1155
1147
|
var s = "JavaScript syntax highlighting";
|
|
1156
1148
|
alert(s);
|
|
1157
1149
|
</code>
|
|
1158
1150
|
</pre>
|
|
1159
1151
|
<pre>
|
|
1160
|
-
<code
|
|
1161
|
-
className="language-python"
|
|
1162
|
-
>
|
|
1152
|
+
<code>
|
|
1163
1153
|
s = "Python syntax highlighting"
|
|
1164
1154
|
print s
|
|
1165
1155
|
</code>
|
|
1166
1156
|
</pre>
|
|
1167
1157
|
<pre>
|
|
1168
|
-
<code
|
|
1169
|
-
className="language-"
|
|
1170
|
-
>
|
|
1158
|
+
<code>
|
|
1171
1159
|
No language indicated, so no syntax highlighting.
|
|
1172
1160
|
But let's throw in a <b>tag</b>.
|
|
1173
1161
|
</code>
|
|
1174
1162
|
</pre>
|
|
1175
1163
|
<pre>
|
|
1176
|
-
<code
|
|
1177
|
-
className="language-javascript"
|
|
1178
|
-
>
|
|
1164
|
+
<code>
|
|
1179
1165
|
var s = "JavaScript syntax highlighting";
|
|
1180
1166
|
alert(s);
|
|
1181
1167
|
</code>
|
|
1182
1168
|
</pre>
|
|
1183
1169
|
<pre>
|
|
1184
|
-
<code
|
|
1185
|
-
className="language-python"
|
|
1186
|
-
>
|
|
1170
|
+
<code>
|
|
1187
1171
|
s = "Python syntax highlighting"
|
|
1188
1172
|
print s
|
|
1189
1173
|
</code>
|
|
1190
1174
|
</pre>
|
|
1191
1175
|
<pre>
|
|
1192
|
-
<code
|
|
1193
|
-
className="language-"
|
|
1194
|
-
>
|
|
1176
|
+
<code>
|
|
1195
1177
|
No language indicated, so no syntax highlighting in Markdown Here (varies on Github).
|
|
1196
1178
|
But let's throw in a <b>tag</b>.
|
|
1197
1179
|
</code>
|
|
@@ -1210,9 +1192,7 @@ test('kitchen sink', () => {
|
|
|
1210
1192
|
supports them. They are an easy way of adding tables to your email -- a task that would otherwise require copy-pasting from another application.
|
|
1211
1193
|
</p>
|
|
1212
1194
|
<pre>
|
|
1213
|
-
<code
|
|
1214
|
-
className="language-no-highlight"
|
|
1215
|
-
>
|
|
1195
|
+
<code>
|
|
1216
1196
|
Colons can be used to align columns.
|
|
1217
1197
|
|
|
1218
1198
|
| Tables | Are | Cool |
|
|
@@ -1387,9 +1367,7 @@ test('kitchen sink', () => {
|
|
|
1387
1367
|
Blockquotes
|
|
1388
1368
|
</h2>
|
|
1389
1369
|
<pre>
|
|
1390
|
-
<code
|
|
1391
|
-
className="language-no-highlight"
|
|
1392
|
-
>
|
|
1370
|
+
<code>
|
|
1393
1371
|
> Blockquotes are very handy in email to emulate reply text.
|
|
1394
1372
|
> This line is part of the same quote.
|
|
1395
1373
|
|
|
@@ -1430,9 +1408,7 @@ test('kitchen sink', () => {
|
|
|
1430
1408
|
You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
|
|
1431
1409
|
</p>
|
|
1432
1410
|
<pre>
|
|
1433
|
-
<code
|
|
1434
|
-
className="language-no-highlight"
|
|
1435
|
-
>
|
|
1411
|
+
<code>
|
|
1436
1412
|
<dl>
|
|
1437
1413
|
<dt>Definition list</dt>
|
|
1438
1414
|
<dd>Is something people use sometimes.</dd>
|
|
@@ -1449,9 +1425,7 @@ test('kitchen sink', () => {
|
|
|
1449
1425
|
Horizontal Rule
|
|
1450
1426
|
</h2>
|
|
1451
1427
|
<pre>
|
|
1452
|
-
<code
|
|
1453
|
-
className="language-"
|
|
1454
|
-
>
|
|
1428
|
+
<code>
|
|
1455
1429
|
Three or more...
|
|
1456
1430
|
|
|
1457
1431
|
---
|
|
@@ -1495,9 +1469,7 @@ test('kitchen sink', () => {
|
|
|
1495
1469
|
Here are some things to try out:
|
|
1496
1470
|
</p>
|
|
1497
1471
|
<pre>
|
|
1498
|
-
<code
|
|
1499
|
-
className="language-"
|
|
1500
|
-
>
|
|
1472
|
+
<code>
|
|
1501
1473
|
Here's a line for us to start with.
|
|
1502
1474
|
|
|
1503
1475
|
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
|
|
@@ -1542,9 +1514,7 @@ test('kitchen sink', () => {
|
|
|
1542
1514
|
They can't be added directly but you can add an image with a link to the video like this:
|
|
1543
1515
|
</p>
|
|
1544
1516
|
<pre>
|
|
1545
|
-
<code
|
|
1546
|
-
className="language-no-highlight"
|
|
1547
|
-
>
|
|
1517
|
+
<code>
|
|
1548
1518
|
<a href="http://www.youtube.com/watch?feature=player_embedded&v=YOUTUBE_VIDEO_ID_HERE
|
|
1549
1519
|
" target="_blank"><img src="http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg"
|
|
1550
1520
|
alt="IMAGE ALT TEXT HERE" width="240" height="180" border="10" /></a>
|
|
@@ -1554,9 +1524,7 @@ test('kitchen sink', () => {
|
|
|
1554
1524
|
Or, in pure Markdown, but losing the image sizing and border:
|
|
1555
1525
|
</p>
|
|
1556
1526
|
<pre>
|
|
1557
|
-
<code
|
|
1558
|
-
className="language-no-highlight"
|
|
1559
|
-
>
|
|
1527
|
+
<code>
|
|
1560
1528
|
[](http://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID_HERE)
|
|
1561
1529
|
</code>
|
|
1562
1530
|
</pre>
|
package/src/safe-mdx.tsx
CHANGED
|
@@ -151,7 +151,9 @@ export class MdastToJsx {
|
|
|
151
151
|
return null
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
let attrsList =
|
|
154
|
+
let attrsList = getJsxAttrs(node, (err) => {
|
|
155
|
+
this.errors.push(err)
|
|
156
|
+
})
|
|
155
157
|
|
|
156
158
|
let attrs = Object.fromEntries(attrsList)
|
|
157
159
|
return (
|
|
@@ -246,9 +248,7 @@ export class MdastToJsx {
|
|
|
246
248
|
const code = node.value
|
|
247
249
|
return (
|
|
248
250
|
<this.c.pre>
|
|
249
|
-
<this.c.code
|
|
250
|
-
{code}
|
|
251
|
-
</this.c.code>
|
|
251
|
+
<this.c.code>{code}</this.c.code>
|
|
252
252
|
</this.c.pre>
|
|
253
253
|
)
|
|
254
254
|
}
|
|
@@ -403,72 +403,78 @@ export class MdastToJsx {
|
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
export function getJsxAttrs(
|
|
409
|
+
node: MdxJsxFlowElement | MdxJsxTextElement,
|
|
410
|
+
onError: (err: { message: string }) => void = console.error,
|
|
411
|
+
) {
|
|
412
|
+
let attrsList = node.attributes
|
|
413
|
+
.map((attr) => {
|
|
414
|
+
if (attr.type === 'mdxJsxExpressionAttribute') {
|
|
415
|
+
onError({
|
|
416
|
+
message: `Expressions in jsx props are not supported (${attr.value.replace(
|
|
417
|
+
/\n+/g,
|
|
418
|
+
' ',
|
|
419
|
+
)})`,
|
|
420
|
+
})
|
|
421
|
+
return
|
|
422
|
+
}
|
|
423
|
+
if (attr.type !== 'mdxJsxAttribute') {
|
|
424
|
+
throw new Error(`non mdxJsxAttribute is not supported: ${attr}`)
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
const v = attr.value
|
|
428
|
+
if (typeof v === 'string' || typeof v === 'number') {
|
|
429
|
+
return [attr.name, v]
|
|
430
|
+
}
|
|
431
|
+
if (v === null) {
|
|
432
|
+
return [attr.name, true]
|
|
433
|
+
}
|
|
434
|
+
if (v?.type === 'mdxJsxAttributeValueExpression') {
|
|
435
|
+
if (v.value === 'true') {
|
|
436
|
+
return [attr.name, true]
|
|
417
437
|
}
|
|
418
|
-
if (
|
|
419
|
-
|
|
420
|
-
`non mdxJsxAttribute is not supported: ${attr}`,
|
|
421
|
-
)
|
|
438
|
+
if (v.value === 'false') {
|
|
439
|
+
return [attr.name, false]
|
|
422
440
|
}
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
if (typeof v === 'string' || typeof v === 'number') {
|
|
426
|
-
return [attr.name, v]
|
|
441
|
+
if (v.value === 'null') {
|
|
442
|
+
return [attr.name, null]
|
|
427
443
|
}
|
|
428
|
-
if (v ===
|
|
429
|
-
return [attr.name,
|
|
444
|
+
if (v.value === 'undefined') {
|
|
445
|
+
return [attr.name, undefined]
|
|
430
446
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
if (v.value === 'null') {
|
|
439
|
-
return [attr.name, null]
|
|
440
|
-
}
|
|
441
|
-
if (v.value === 'undefined') {
|
|
442
|
-
return [attr.name, undefined]
|
|
443
|
-
}
|
|
444
|
-
let quote = ['"', "'", '`'].find(
|
|
445
|
-
(q) => v.value.startsWith(q) && v.value.endsWith(q),
|
|
446
|
-
)
|
|
447
|
-
if (quote) {
|
|
448
|
-
let value = v.value
|
|
449
|
-
if (quote !== '"') {
|
|
450
|
-
value = v.value.replace(new RegExp(quote, 'g'), '"')
|
|
451
|
-
}
|
|
452
|
-
return [attr.name, JSON.parse(value)]
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
const number = Number(v.value)
|
|
456
|
-
if (!isNaN(number)) {
|
|
457
|
-
return [attr.name, number]
|
|
447
|
+
let quote = ['"', "'", '`'].find(
|
|
448
|
+
(q) => v.value.startsWith(q) && v.value.endsWith(q),
|
|
449
|
+
)
|
|
450
|
+
if (quote) {
|
|
451
|
+
let value = v.value
|
|
452
|
+
if (quote !== '"') {
|
|
453
|
+
value = v.value.replace(new RegExp(quote, 'g'), '"')
|
|
458
454
|
}
|
|
455
|
+
return [attr.name, JSON.parse(value)]
|
|
456
|
+
}
|
|
459
457
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
}
|
|
464
|
-
|
|
458
|
+
const number = Number(v.value)
|
|
459
|
+
if (!isNaN(number)) {
|
|
460
|
+
return [attr.name, number]
|
|
461
|
+
}
|
|
462
|
+
const parsedJson = safeJsonParse(v.value)
|
|
463
|
+
if (parsedJson) {
|
|
464
|
+
return [attr.name, parsedJson]
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
467
|
+
onError({
|
|
468
|
+
message: `Expressions in jsx props are not supported (${attr.name}={${v.value}})`,
|
|
469
|
+
})
|
|
470
|
+
} else {
|
|
471
|
+
console.log('unhandled attr', { attr }, attr.type)
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
return
|
|
475
|
+
})
|
|
476
|
+
.filter(isTruthy) as [string, any][]
|
|
477
|
+
return attrsList
|
|
472
478
|
}
|
|
473
479
|
|
|
474
480
|
function isTruthy<T>(val: T | undefined | null | false): val is T {
|
|
@@ -503,3 +509,11 @@ export function mdastBfs(
|
|
|
503
509
|
}
|
|
504
510
|
return result
|
|
505
511
|
}
|
|
512
|
+
|
|
513
|
+
function safeJsonParse(str: string) {
|
|
514
|
+
try {
|
|
515
|
+
return JSON.parse(str)
|
|
516
|
+
} catch (err) {
|
|
517
|
+
return null
|
|
518
|
+
}
|
|
519
|
+
}
|