UNPKG

mdx-render

Version:

A modern, SSR-friendly React Markdown renderer that preserves the MDAST tree for reuse (e.g., mdast2docx), supports full JSX children, unified plugins, and component overrides.

3 lines (2 loc) 2.92 kB
"use client"; "use strict";var h=Object.create;var l=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var J=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var X=(t,r)=>()=>(r||t((r={exports:{}}).exports,r),r.exports),D=(t,r)=>{for(var e in r)l(t,e,{get:r[e],enumerable:!0})},O=(t,r,e,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of C(r))!T.call(t,o)&&o!==e&&l(t,o,{get:()=>r[o],enumerable:!(s=H(r,o))||s.enumerable});return t};var g=(t,r,e)=>(e=t!=null?h(J(t)):{},O(r||!t||!t.__esModule?l(e,"default",{value:t,enumerable:!0}):e,t)),F=t=>O(l({},"__esModule",{value:!0}),t);var j=X((Z,E)=>{"use strict";E.exports=function t(r,e){if(r===e)return!0;if(r&&e&&typeof r=="object"&&typeof e=="object"){if(r.constructor!==e.constructor)return!1;var s,o,n;if(Array.isArray(r)){if(s=r.length,s!=e.length)return!1;for(o=s;o--!==0;)if(!t(r[o],e[o]))return!1;return!0}if(r.constructor===RegExp)return r.source===e.source&&r.flags===e.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===e.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===e.toString();if(n=Object.keys(r),s=n.length,s!==Object.keys(e).length)return!1;for(o=s;o--!==0;)if(!Object.prototype.hasOwnProperty.call(e,n[o]))return!1;for(o=s;o--!==0;){var i=n[o];if(!t(r[i],e[i]))return!1}return!0}return r!==r&&e!==e}});var N={};D(N,{Md:()=>z});module.exports=F(N);var I=require("react/jsx-runtime");var x=g(require("remark-parse")),v=g(require("remark-rehype")),R=require("unified"),w=require("hast-util-to-jsx-runtime"),k=require("unist-util-visit");var A=({children:t,remarkPlugins:r=[],rehypePlugins:e=[],remarkRehypeOptions:s,astRef:o,components:n,skipHtml:i})=>{let c=(0,R.unified)().use(x.default).use(r).use(v.default,{...s,allowDangerousHtml:!i}).use(e),u=c.parse(t!=null?t:""),m=c.runSync(u);return o&&(o.current||(o.current=[]),o.current.push({mdast:u,hast:m})),(0,k.visit)(m,(f,d,y)=>{var M;f.type==="raw"&&y&&typeof d=="number"&&(i?y.children.splice(d,1):y.children[d]={type:"text",value:f.value}),f.type==="element"&&((M=f.properties).src||(M.src=null))}),(0,w.toJsxRuntime)(m,{Fragment:I.Fragment,components:n,ignoreInvalidStyle:!0,jsx:I.jsx,jsxs:I.jsxs,passKeys:!0,passNode:!0})};var P=require("react"),S=g(j()),W=(0,P.memo)(A,S.default),L=({children:t,markdownProps:r})=>{if(typeof t=="string")return(0,I.jsx)(W,{...r,children:t});if((0,P.isValidElement)(t)){let{type:e,props:s}=t;return(0,I.jsx)(e,{...s,children:(0,I.jsx)(L,{markdownProps:r,children:s.children})})}return t},z=({children:t,wrapper:r,remarkPlugins:e,rehypePlugins:s,remarkRehypeOptions:o,astRef:n,components:i,skipHtml:c,...u})=>{let m=r!=null?r:Object.keys(u).length?"div":I.Fragment;return(0,I.jsx)(m,{...u,children:(0,I.jsx)(L,{markdownProps:{remarkPlugins:e,rehypePlugins:s,remarkRehypeOptions:o,astRef:n,components:i,skipHtml:c},children:t})})};0&&(module.exports={Md});