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.
@@ -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
@@ -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;IAoC9C,GAAG;IAQH,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IAqOhD,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB;CAkE1D;AAcD,wBAAgB,QAAQ,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,KAAK,GAAG,SAiBpC"}
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 = this.getJsxAttrs(node);
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, { className: `language-${language}`, children: 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
- getJsxAttrs(node) {
347
- let attrsList = node.attributes
348
- .map((attr) => {
349
- if (attr.type === 'mdxJsxExpressionAttribute') {
350
- this.errors.push({
351
- message: `Expressions in jsx props are not supported (${attr.value.replace(/\n+/g, ' ')})`,
352
- });
353
- return;
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 (attr.type !== 'mdxJsxAttribute') {
356
- throw new Error(`non mdxJsxAttribute is not supported: ${attr}`);
373
+ if (v.value === 'false') {
374
+ return [attr.name, false];
357
375
  }
358
- const v = attr.value;
359
- if (typeof v === 'string' || typeof v === 'number') {
360
- return [attr.name, v];
376
+ if (v.value === 'null') {
377
+ return [attr.name, null];
361
378
  }
362
- if (v === null) {
363
- return [attr.name, true];
379
+ if (v.value === 'undefined') {
380
+ return [attr.name, undefined];
364
381
  }
365
- if ((v === null || v === void 0 ? void 0 : v.type) === 'mdxJsxAttributeValueExpression') {
366
- if (v.value === 'true') {
367
- return [attr.name, true];
368
- }
369
- if (v.value === 'false') {
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
- let quote = ['"', "'", '`'].find((q) => v.value.startsWith(q) && v.value.endsWith(q));
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
- else {
395
- console.log('unhandled attr', { attr }, attr.type);
390
+ const number = Number(v.value);
391
+ if (!isNaN(number)) {
392
+ return [attr.name, number];
396
393
  }
397
- return;
398
- })
399
- .filter(isTruthy);
400
- return attrsList;
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.MdastToJsx = MdastToJsx;
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
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,iEAAiD;AAEjD,4EAAkD;AAIlD,mCAA+B;AAC/B,4DAAkC;AAClC,4DAAkC;AAElC,iCAA2C;AAI3C,MAAM,SAAS,GAAG,IAAA,eAAM,GAAE;KACrB,GAAG,CAAC,4BAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACxC,GAAG,CAAC,oBAAS,CAAC;KACd,GAAG,CAAC,oBAAS,CAAQ,CAAA;AAE1B,KAAK,eAAK,CAAA;AAEV,SAAgB,eAAe,CAAC,EAC5B,UAAU,EACV,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,IAAW,GACtB;IACG,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC5B,OAAO,MAAM,CAAA;AACjB,CAAC;AARD,0CAQC;AAED,MAAM,UAAU,GAAG;IACf,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,GAAG;IACH,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,GAAG;IACH,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,MAAM;IACN,KAAK;CACC,CAAA;AAIV,MAAa,UAAU;IAMnB,YAAY,EACR,IAAI,GAAG,EAAE,EACT,KAAK,GAAG,SAAgB,EACxB,UAAU,GAAG,EAAmB,GACnC;QAPD,WAAM,GAAW,EAAE,CAAA;QAEnB,WAAM,GAA0B,EAAE,CAAA;QAM9B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,CAAC,mCACC,MAAM,CAAC,WAAW,CACjB,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACrB,CAAC,CAAC,CACL,GACE,UAAU,CAChB,CAAA;IACL,CAAC;IACD,gBAAgB,CAAC,IAAS;;QACtB,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,QAAQ,0CACnB,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAChD,MAAM,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;aAChB;iBAAM;gBACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpB,eAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAA;aACJ;SACJ;QACD,OAAO,GAAG,IAAI,IAAI,CAAA;IACtB,CAAC;IACD,cAAc,CAAC,IAAS;;QACpB,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,QAAQ,0CACnB,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EACjD,MAAM,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;aAChB;iBAAM;gBACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpB,eAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAA;aACJ;SACJ;QACD,OAAO,GAAG,IAAI,IAAI,CAAA;IACtB,CAAC;IACD,cAAc,CAAC,IAAmB;QAC9B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAA;SACZ;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,mBAAmB,CAAC;YACzB,KAAK,mBAAmB,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACZ,OAAO,EAAE,CAAA;iBACZ;gBAED,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBAElD,IAAI,CAAC,SAAS,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,6BAA6B,IAAI,CAAC,IAAI,EAAE;qBACpD,CAAC,CAAA;oBACF,OAAO,IAAI,CAAA;iBACd;gBAED,IAAI,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACzB,CAAC,CAAC,CAAA;gBAEF,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;gBACzC,OAAO,CACH,uBAAC,SAAS,oBAAK,KAAK,cACf,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAClB,CACf,CAAA;aACJ;YACD,OAAO,CAAC,CAAC;gBACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;aACrC;SACJ;IACL,CAAC;IAED,GAAG;QACC,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAc,CAAA;QAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;SAChB;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAED,gBAAgB,CAAC,IAAmB;;QAChC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAA;SACZ;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,UAAU,CAAC,CAAC;gBACb,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,0CAAE,MAAM,CAAA;gBAC1C,MAAM,GAAG,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,GAAG,0CAAE,MAAM,CAAA;gBACtC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAErC,OAAO,EAAE,CAAA;aACZ;YACD,KAAK,mBAAmB,CAAC;YACzB,KAAK,mBAAmB,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,0CAAE,MAAM,CAAA;gBAC1C,MAAM,GAAG,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,GAAG,0CAAE,MAAM,CAAA;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACvC,IAAI;oBACA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;oBAClB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;oBACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;qBACzC;yBAAM,IAAI,MAAM,EAAE;wBACf,OAAO,MAAM,CAAA;qBAChB;iBACJ;wBAAS;oBACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;iBACnB;gBACD,OAAO,EAAE,CAAA;aACZ;YAED,KAAK,mBAAmB,CAAC;YACzB,KAAK,mBAAmB,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,EAAE,CAAA;iBACZ;gBACD,OAAO,EAAE,CAAA;aACZ;YACD,KAAK,MAAM,CAAC,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,EAAE,CAAA;iBACZ;gBACD,OAAO,EAAE,CAAA;aACZ;YACD,KAAK,SAAS,CAAC,CAAC;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBAExB,MAAM,GAAG,GAAQ,IAAI,KAAK,EAAE,CAAA;gBAC5B,OAAO,uBAAC,GAAG,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAO,CAAA;aAClD;YACD,KAAK,WAAW,CAAC,CAAC;gBACd,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAY,CAAA;aAC5D;YACD,KAAK,YAAY,CAAC,CAAC;gBACf,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,UAAU,cACb,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACZ,CACvB,CAAA;aACJ;YACD,KAAK,eAAe,CAAC,CAAC;gBAClB,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAG,CAAA;aACvB;YACD,KAAK,MAAM,CAAC,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,EAAE,CAAA;iBACZ;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;gBAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;gBACvB,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,GAAG,cACP,uBAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAE,IAAI,GAAe,GACxB,CAChB,CAAA;aACJ;YAED,KAAK,MAAM,CAAC,CAAC;gBACT,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAC,KAAK,EAAE,IAAI,CAAC,KAAM,YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACpB,CACf,CAAA;iBACJ;gBACD,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAa,CAAA;aAC9D;YACD,KAAK,UAAU,CAAC,CAAC;gBACb,2EAA2E;gBAC3E,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,IAAI,EAAE;oBACvB,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,oBAAe,IAAI,CAAC,OAAO,YAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACpB,CACf,CAAA;iBACJ;gBACD,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAa,CAAA;aAC9D;YACD,KAAK,MAAM,CAAC,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,EAAE,CAAA;iBACZ;gBACD,OAAO,IAAI,CAAC,KAAK,CAAA;aACpB;YACD,KAAK,OAAO,CAAC,CAAC;gBACV,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;gBAC9B,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,CAAA;aAC1D;YACD,KAAK,MAAM,CAAC,CAAC;gBACT,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAA;gBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;gBAC9B,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAO,IAAI,EAAE,KAAK,YACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACrB,CACd,CAAA;aACJ;YACD,KAAK,QAAQ,CAAC,CAAC;gBACX,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,MAAM,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAiB,CAC/D,CAAA;aACJ;YACD,KAAK,UAAU,CAAC,CAAC;gBACb,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAa,CAAA;aAC9D;YACD,KAAK,QAAQ,CAAC,CAAC;gBACX,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,GAAG,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAc,CAAA;aAChE;YACD,KAAK,YAAY,CAAC,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,EAAE,CAAA;iBACZ;gBACD,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,IAAI,cAAE,IAAI,CAAC,KAAK,GAAe,CAAA;aACjD;YACD,KAAK,OAAO,CAAC,CAAC;gBACV,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAG,CAAA;aACvB;YACD,KAAK,MAAM,CAAC,CAAC;gBACT,OAAO,uBAAC,gBAAQ,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAY,CAAA;aAC5D;YACD,KAAK,OAAO,CAAC,CAAC;gBACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACxB,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAgB,CAC7D,CAAA;aACJ;YACD,KAAK,UAAU,CAAC,CAAC;gBACb,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAC,SAAS,EAAC,EAAE,YAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACpB,CACf,CAAA;aACJ;YACD,KAAK,WAAW,CAAC,CAAC;gBACd,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAEzC,OAAO,uBAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAC,SAAS,EAAC,EAAE,YAAE,OAAO,GAAa,CAAA;aACvD;YACD,KAAK,YAAY,CAAC,CAAC;gBACf,OAAO,EAAE,CAAA;aACZ;YACD,KAAK,eAAe,CAAC,CAAC;gBAClB,IAAI,IAAI,GAAG,EAAE,CAAA;gBACb,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAU,EAAE,EAAE;oBAChC,IACI,KAAK,CAAC,IAAI,KAAK,YAAY;wBAC3B,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EACtC;wBACE,IAAI,GAAG,KAAK,CAAC,GAAG,CAAA;qBACnB;gBACL,CAAC,CAAC,CAAA;gBAEF,OAAO,CACH,uBAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAC,IAAI,EAAE,IAAI,YACf,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GACrB,CACd,CAAA;aACJ;YACD,KAAK,mBAAmB,CAAC,CAAC;gBACtB,OAAO,EAAE,CAAA;aACZ;YAED,KAAK,oBAAoB,CAAC,CAAC;gBACvB,OAAO,EAAE,CAAA;aACZ;YACD,KAAK,MAAM,CAAC,CAAC;gBACT,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,0CAAE,MAAM,CAAA;gBAC1C,MAAM,GAAG,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,GAAG,0CAAE,MAAM,CAAA;gBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACvC,IAAI,CAAC,IAAI,EAAE;oBACP,OAAO,EAAE,CAAA;iBACZ;gBAED,MAAM,GAAG,GAAG,IAAA,iCAAS,EAAC,IAAI,CAAC,CAAA;gBAC3B,IAAI;oBACA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;oBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;oBACxC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;wBACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;qBACzC;yBAAM,IAAI,MAAM,EAAE;wBACf,OAAO,MAAM,CAAA;qBAChB;iBACJ;wBAAS;oBACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;iBACnB;gBAED,OAAO,EAAE,CAAA;aACZ;YACD,KAAK,gBAAgB,CAAC,CAAC;gBACnB,OAAO,EAAE,CAAA;aACZ;YAED,OAAO,CAAC,CAAC;gBACL,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBACpB,OAAO,IAAI,CAAC,QAAQ,CAAA;gBACxB,CAAC,CAAC,CAAA;gBAEF,MAAM,IAAI,KAAK,CACX,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CACxD,CAAA;gBAED,OAAO,EAAE,CAAA;aACZ;SACJ;IACL,CAAC;CACJ;AArUD,gCAqUC;AAED,SAAgB,WAAW,CACvB,IAA2C,EAC3C,UAA8C,OAAO,CAAC,KAAK;IAE3D,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU;SAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,2BAA2B,EAAE;YAC3C,OAAO,CAAC;gBACJ,OAAO,EAAE,+CAA+C,IAAI,CAAC,KAAK,CAAC,OAAO,CACtE,MAAM,EACN,GAAG,CACN,GAAG;aACP,CAAC,CAAA;YACF,OAAM;SACT;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAA;SACnE;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;QACpB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YAChD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;SACxB;QACD,IAAI,CAAC,KAAK,IAAI,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SAC3B;QACD,IAAI,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,MAAK,gCAAgC,EAAE;YAC9C,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE;gBACpB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;aAC3B;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;aAC5B;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,EAAE;gBACpB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;aAC3B;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,EAAE;gBACzB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;aAChC;YACD,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CACtD,CAAA;YACD,IAAI,KAAK,EAAE;gBACP,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;gBACnB,IAAI,KAAK,KAAK,GAAG,EAAE;oBACf,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;iBACvD;gBACD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;aACxC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aAC7B;YACD,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YACzC,IAAI,UAAU,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;aACjC;YAED,OAAO,CAAC;gBACJ,OAAO,EAAE,+CAA+C,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI;aACpF,CAAC,CAAA;SACL;aAAM;YACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACrD;QAED,OAAM;IACV,CAAC,CAAC;SACD,MAAM,CAAC,QAAQ,CAAoB,CAAA;IACxC,OAAO,SAAS,CAAA;AACpB,CAAC;AAtED,kCAsEC;AAED,SAAS,QAAQ,CAAI,GAAiC;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,GAAG,EAAE,IAAY;IACpC,OAAO,IAAI;SACN,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AACpC,CAAC;AAED,SAAgB,QAAQ,CACpB,IAAmB,EACnB,EAAiC;IAEjC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,EAAE;QACjB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;SACnB;aAAM,IAAI,CAAC,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACjB;QACD,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7C,KAAK,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC,QAAgB,CAAC,CAAA;SACxC;KACJ;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAnBD,4BAmBC;AAED,SAAS,aAAa,CAAC,GAAW;IAC9B,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACzB;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,IAAI,CAAA;KACd;AACL,CAAC"}
@@ -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 &lt;b&gt;tag&lt;/b&gt;.
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 &lt;b&gt;tag&lt;/b&gt;.
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
  &gt; Blockquotes are very handy in email to emulate reply text.
1378
1356
  &gt; 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
  &lt;dl&gt;
1421
1397
  &lt;dt&gt;Definition list&lt;/dt&gt;
1422
1398
  &lt;dd&gt;Is something people use sometimes.&lt;/dd&gt;
@@ -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
  &lt;a href="http://www.youtube.com/watch?feature=player_embedded&v=YOUTUBE_VIDEO_ID_HERE
1533
1503
  " target="_blank"&gt;&lt;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" /&gt;&lt;/a&gt;
@@ -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
  [![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](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":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAu8BvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
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;;;;;;;;;;;;;;;SAe/B,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AACF,IAAA,aAAI,EAAC,QAAQ,EAAE,GAAG,EAAE;IAChB,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;;;SAIZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;KAavB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA;AAEF,kFAAkF;AAClF,IAAA,aAAI,EAAC,cAAc,EAAE,GAAG,EAAE;IACtB,IAAA,eAAM,EACF,MAAM,CAAC,IAAA,gBAAM,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2ZZ,CAAC,CACL,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAi6BvB,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safe-mdx",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "private": false,
5
5
  "description": "Render MDX in React without eval",
6
6
  "repository": "https://github.com/holocron-hq/safe-mdx",
@@ -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 &lt;b&gt;tag&lt;/b&gt;.
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 &lt;b&gt;tag&lt;/b&gt;.
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
  &gt; Blockquotes are very handy in email to emulate reply text.
1394
1372
  &gt; 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
  &lt;dl&gt;
1437
1413
  &lt;dt&gt;Definition list&lt;/dt&gt;
1438
1414
  &lt;dd&gt;Is something people use sometimes.&lt;/dd&gt;
@@ -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
  &lt;a href="http://www.youtube.com/watch?feature=player_embedded&v=YOUTUBE_VIDEO_ID_HERE
1549
1519
  " target="_blank"&gt;&lt;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" /&gt;&lt;/a&gt;
@@ -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
  [![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/YOUTUBE_VIDEO_ID_HERE/0.jpg)](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 = this.getJsxAttrs(node)
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 className={`language-${language}`}>
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
- getJsxAttrs(node: MdxJsxFlowElement | MdxJsxTextElement) {
407
- let attrsList = node.attributes
408
- .map((attr) => {
409
- if (attr.type === 'mdxJsxExpressionAttribute') {
410
- this.errors.push({
411
- message: `Expressions in jsx props are not supported (${attr.value.replace(
412
- /\n+/g,
413
- ' ',
414
- )})`,
415
- })
416
- return
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 (attr.type !== 'mdxJsxAttribute') {
419
- throw new Error(
420
- `non mdxJsxAttribute is not supported: ${attr}`,
421
- )
438
+ if (v.value === 'false') {
439
+ return [attr.name, false]
422
440
  }
423
-
424
- const v = attr.value
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 === null) {
429
- return [attr.name, true]
444
+ if (v.value === 'undefined') {
445
+ return [attr.name, undefined]
430
446
  }
431
- if (v?.type === 'mdxJsxAttributeValueExpression') {
432
- if (v.value === 'true') {
433
- return [attr.name, true]
434
- }
435
- if (v.value === 'false') {
436
- return [attr.name, false]
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
- this.errors.push({
461
- message: `Expressions in jsx props are not supported (${attr.name}={${v.value}})`,
462
- })
463
- } else {
464
- console.log('unhandled attr', { attr }, attr.type)
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
- return
468
- })
469
- .filter(isTruthy) as [string, any][]
470
- return attrsList
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
+ }