{"_id":"@m2d/react-markdown","_rev":"7-135d103382b2fb6f046cb4fd6ed3ce60","name":"@m2d/react-markdown","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.0":{"name":"@m2d/react-markdown","version":"0.0.0","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"author":{"url":"https://mayank-chaudhari.vercel.app","name":"Mayank Kumar Chaudhari"},"license":"MPL-2.0","_id":"@m2d/react-markdown@0.0.0","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"homepage":"https://github.com/md2docx/react-markdown/#readme","bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"dist":{"shasum":"43769a6d96fc9423db0411ad21bcd81f2fc6adb5","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-0.0.0.tgz","fileCount":34,"integrity":"sha512-Y4S2Nk+UuPcTUxMnU3L3isGG+IGRAzuIbto66eEjzDwM938KX1CRu/v+wjUXd9Q7y/HvTojic60cl/KO/a6YKQ==","signatures":[{"sig":"MEQCIBQBR+LtIFIxFCwJb6QzbuuhJjkzySnQzJdTB99XF6qAAiAAvn/zEqcYEWIbuus06RuZ7ZWxgzQkcnYwKdUQSJZHPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@0.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30600},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"}},"funding":[{"url":"https://github.com/sponsors/md2docx","type":"github"},{"url":"https://github.com/sponsors/mayank1513","type":"github"}],"gitHead":"069492ba6f4df38f635cff7fd6e73e2b2bcd2ddf","private":false,"scripts":{"dev":"tsup --watch && tsc -p tsconfig-build.json -w","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mayank1513","actor":{"name":"mayank1513","type":"user","email":"mayank.srmu@gmail.com"},"email":"mayank.srmu@gmail.com"},"repository":{"url":"git+https://github.com/md2docx/react-markdown.git","type":"git"},"_npmVersion":"10.8.2","description":"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.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"unified":"^11.0.5","remark-parse":"^11.0.0","remark-rehype":"^11.1.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.1.4","react-dom":"^19.1.0","typescript":"^5.8.3","@types/hast":"^3.0.4","@types/node":"^22.15.19","@types/mdast":"^4.0.4","@types/react":"^19.1.4","@types/react-dom":"^19.1.5","esbuild-plugin-rdi":"^0.0.0","@repo/eslint-config":"workspace:*","@vitest/coverage-v8":"^3.1.4","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","esbuild-plugin-react18":"0.2.6","@repo/typescript-config":"workspace:*","esbuild-plugin-react18-css":"^0.0.4"},"peerDependencies":{"next":">=10","react":">=16.8","@types/react":">=16.8"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-markdown_0.0.0_1750519721636_0.7046242149826238","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@m2d/react-markdown","version":"0.1.0","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"author":{"url":"https://mayank-chaudhari.vercel.app","name":"Mayank Kumar Chaudhari"},"license":"MPL-2.0","_id":"@m2d/react-markdown@0.1.0","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"homepage":"https://github.com/md2docx/react-markdown/#readme","bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"dist":{"shasum":"acc4e6be3ae2d4e64961c224196b6896fff6c608","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-0.1.0.tgz","fileCount":37,"integrity":"sha512-/TCuXdWaILDwe2Oojp4BdTPzqQFbyEZOfG1xuruv7UR4fTvt4E0+HMKMBNbO0ANJd7cgH4ZSv94yOYv7/onNZw==","signatures":[{"sig":"MEQCIA4CDVEqJCCkUb1j+rbe5vZ/aZV7uICydEkyH4OZ5fHLAiAfExY1VXU+i6U+rUEEYWJb5Nuy4XlTn5eV86Q+y6I9QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33091},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"}},"funding":[{"url":"https://github.com/sponsors/md2docx","type":"github"},{"url":"https://github.com/sponsors/mayank1513","type":"github"}],"gitHead":"62f7976558acb09b5bbc693d8dee72a32a79dff1","private":false,"scripts":{"dev":"tsup --watch && tsc -p tsconfig-build.json -w","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mayank1513","actor":{"name":"mayank1513","type":"user","email":"mayank.srmu@gmail.com"},"email":"mayank.srmu@gmail.com"},"repository":{"url":"git+https://github.com/md2docx/react-markdown.git","type":"git"},"_npmVersion":"10.8.2","description":"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.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"unified":"^11.0.5","remark-parse":"^11.0.0","remark-rehype":"^11.1.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.1.4","react-dom":"^19.1.0","typescript":"^5.8.3","@types/hast":"^3.0.4","@types/node":"^22.15.19","@types/mdast":"^4.0.4","@types/react":"^19.1.4","@types/react-dom":"^19.1.5","esbuild-plugin-rdi":"^0.0.0","@repo/eslint-config":"workspace:*","@vitest/coverage-v8":"^3.1.4","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","esbuild-plugin-react18":"0.2.6","@repo/typescript-config":"workspace:*","esbuild-plugin-react18-css":"^0.0.4"},"peerDependencies":{"next":">=10","react":">=16.8","@types/react":">=16.8"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-markdown_0.1.0_1750520873188_0.2020933767547357","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@m2d/react-markdown","version":"0.1.1","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"author":{"url":"https://mayank-chaudhari.vercel.app","name":"Mayank Kumar Chaudhari"},"license":"MPL-2.0","_id":"@m2d/react-markdown@0.1.1","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"homepage":"https://github.com/md2docx/react-markdown/#readme","bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"dist":{"shasum":"dcf8cc8da9178cb4d073c4e01e28375e646562cf","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-0.1.1.tgz","fileCount":37,"integrity":"sha512-9HZu3u0O3BuNXpduareL9bMFlIwWPbDC86tcDjNFI4IiLXkueTq/jTesfYWZ5s8qcQqlAYx6BRmKO3GRAF6xEg==","signatures":[{"sig":"MEYCIQD9f50GWfTHbI+xZzEp/FiEiHZIOGcDo5BlzdWryTkdnQIhANHM849qZIXUdtg3KI0RiCHzb5Y2Kj1BLEWt2pW6V/Jl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33091},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"}},"funding":[{"url":"https://github.com/sponsors/md2docx","type":"github"},{"url":"https://github.com/sponsors/mayank1513","type":"github"}],"gitHead":"9a863962fb52766874d462b1278dc68533af224d","private":false,"scripts":{"dev":"tsup --watch && tsc -p tsconfig-build.json -w","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mayank1513","actor":{"name":"mayank1513","type":"user","email":"mayank.srmu@gmail.com"},"email":"mayank.srmu@gmail.com"},"repository":{"url":"git+https://github.com/md2docx/react-markdown.git","type":"git"},"_npmVersion":"10.8.2","description":"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.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"unified":"^11.0.5","remark-parse":"^11.0.0","remark-rehype":"^11.1.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.1.4","react-dom":"^19.1.0","typescript":"^5.8.3","@types/hast":"^3.0.4","@types/node":"^22.15.19","@types/mdast":"^4.0.4","@types/react":"^19.1.4","@types/react-dom":"^19.1.5","esbuild-plugin-rdi":"^0.0.0","@repo/eslint-config":"workspace:*","@vitest/coverage-v8":"^3.1.4","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","esbuild-plugin-react18":"0.2.6","@repo/typescript-config":"workspace:*","esbuild-plugin-react18-css":"^0.0.4"},"peerDependencies":{"next":">=10","react":">=16.8","@types/react":">=16.8"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-markdown_0.1.1_1750522464842_0.923252278155716","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@m2d/react-markdown","version":"0.2.0","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"author":{"url":"https://mayank-chaudhari.vercel.app","name":"Mayank Kumar Chaudhari"},"license":"MPL-2.0","_id":"@m2d/react-markdown@0.2.0","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"homepage":"https://github.com/md2docx/react-markdown/#readme","bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"dist":{"shasum":"ef0a83e5e3eddcf2e5387042385d9e674cdf5a21","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-0.2.0.tgz","fileCount":48,"integrity":"sha512-ggeg7fWKS7qAtsNpPwGFZ2BjN/Ci/CtSwsWkIIKsinfXs1GMgPP3OAiYtcM8RYDUWT3zRYzmjcSubBKHTlvi8w==","signatures":[{"sig":"MEYCIQCnyWq3UszipC7+Ca5dZVvQV5jbvCcBQvV87q7LWxk4QgIhAOOtTiycow1bBsURJPOpxm8i4cXk5mhvfZ9+vsFZTqJe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50529},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"}},"funding":[{"url":"https://github.com/sponsors/md2docx","type":"github"},{"url":"https://github.com/sponsors/mayank1513","type":"github"}],"gitHead":"e465592968ac000ed615201a629a4523a974774c","private":false,"scripts":{"dev":"tsup --watch && tsc -p tsconfig-build.json -w","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mayank1513","actor":{"name":"mayank1513","type":"user","email":"mayank.srmu@gmail.com"},"email":"mayank.srmu@gmail.com"},"repository":{"url":"git+https://github.com/md2docx/react-markdown.git","type":"git"},"_npmVersion":"10.8.2","description":"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.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"unified":"^11.0.5","remark-parse":"^11.0.0","remark-rehype":"^11.1.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.1.4","react-dom":"^19.1.0","typescript":"^5.8.3","@types/hast":"^3.0.4","@types/node":"^22.15.19","@types/mdast":"^4.0.4","@types/react":"^19.1.4","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","fast-deep-equal":"^3.1.3","@types/react-dom":"^19.1.5","esbuild-plugin-rdi":"^0.0.0","@repo/eslint-config":"workspace:*","@vitest/coverage-v8":"^3.1.4","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","esbuild-plugin-react18":"0.2.6","@repo/typescript-config":"workspace:*","esbuild-plugin-react18-css":"^0.0.4"},"peerDependencies":{"next":">=10","react":">=16.8","@types/react":">=16.8"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-markdown_0.2.0_1750568341768_0.5049419001348285","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@m2d/react-markdown","version":"0.2.1","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"author":{"url":"https://mayank-chaudhari.vercel.app","name":"Mayank Kumar Chaudhari"},"license":"MPL-2.0","_id":"@m2d/react-markdown@0.2.1","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"homepage":"https://github.com/md2docx/react-markdown/#readme","bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"dist":{"shasum":"068d488189ab44f2e1082dfb12f91daf981e56da","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-0.2.1.tgz","fileCount":48,"integrity":"sha512-5l+dBOy+rHoXMpulZxNya/PtsFNsdyOqDmaFhk8FrCPzadCf1bYSkGRppohVjbfaw1mVD1aV4atln4/+gDSpfw==","signatures":[{"sig":"MEUCIDEKe5tj26Sb7/q7mAzL6e/guEabX0tPeqBOCZzYnSj4AiEAtG3O+0F4//KU6MHDy6kKh9vXj+L2UhDenM86IOU8374=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50694},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./dist/utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"}},"funding":[{"url":"https://github.com/sponsors/md2docx","type":"github"},{"url":"https://github.com/sponsors/mayank1513","type":"github"}],"gitHead":"de19a1a047d767d5fd4e454077e99f0d9e83fdde","private":false,"scripts":{"dev":"tsup --watch && tsc -p tsconfig-build.json -w","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mayank1513","actor":{"name":"mayank1513","type":"user","email":"mayank.srmu@gmail.com"},"email":"mayank.srmu@gmail.com"},"repository":{"url":"git+https://github.com/md2docx/react-markdown.git","type":"git"},"_npmVersion":"10.8.2","description":"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.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"unified":"^11.0.5","remark-parse":"^11.0.0","remark-rehype":"^11.1.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.1.4","react-dom":"^19.1.0","typescript":"^5.8.3","@types/hast":"^3.0.4","@types/node":"^22.15.19","@types/mdast":"^4.0.4","@types/react":"^19.1.4","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","fast-deep-equal":"^3.1.3","@types/react-dom":"^19.1.5","esbuild-plugin-rdi":"^0.0.0","@repo/eslint-config":"workspace:*","@vitest/coverage-v8":"^3.1.4","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","esbuild-plugin-react18":"0.2.6","@repo/typescript-config":"workspace:*","esbuild-plugin-react18-css":"^0.0.4"},"peerDependencies":{"next":">=10","react":">=16.8","@types/react":">=16.8"},"peerDependenciesMeta":{"next":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/react-markdown_0.2.1_1751259560269_0.8532981625350609","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@m2d/react-markdown","version":"0.3.0","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"author":{"url":"https://mayank-chaudhari.vercel.app","name":"Mayank Kumar Chaudhari"},"license":"MPL-2.0","_id":"@m2d/react-markdown@0.3.0","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"homepage":"https://github.com/md2docx/react-markdown/#readme","bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"dist":{"shasum":"152b0403f661251cb6c8346c0931975ce9f793ca","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-0.3.0.tgz","fileCount":48,"integrity":"sha512-0kkOdZFH9RMpRZeVEnk7I84g8WPenLuvSwD1N9L4/0p43G0HjtPOEaDIAH6TbEeSRuOYfVFCCIfGVxCc4mf9Fw==","signatures":[{"sig":"MEUCIAr5BSxML5PfGSLZh+3vj34SKb36gY7uXhWvNRplRZq/AiEAuVtab+NKpHi1nJurXF1t/uRKmw+IGOXFg/f23ZFRh7E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49166},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./dist/utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"}},"funding":[{"url":"https://github.com/sponsors/md2docx","type":"github"},{"url":"https://github.com/sponsors/mayank1513","type":"github"}],"gitHead":"150b01e64337f6c836f0fcad9d7027f2e7bf7d28","private":false,"scripts":{"dev":"tsup --watch && tsc -p tsconfig-build.json -w","lint":"eslint src/","test":"vitest run --coverage","build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","bench:w":"tsx benchmarks/index.ts","lint:fix":"eslint src/ --fix","benchmark":"tsx benchmarks/perf.bench.tsx","typecheck":"tsc --noEmit"},"_npmUser":{"name":"mayank1513","email":"mayank.srmu@gmail.com"},"repository":{"url":"git+https://github.com/md2docx/react-markdown.git","type":"git"},"_npmVersion":"10.8.2","description":"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.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.3","dependencies":{"unified":"^11.0.5","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","unist-util-visit":"^5.0.0","hast-util-to-jsx-runtime":"^2.3.6"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.3","tsup":"^8.5.0","chalk":"^5.4.1","jsdom":"^26.1.0","react":"^19.1.0","vitest":"^3.1.4","benchmark":"^2.1.4","react-dom":"^19.1.0","cli-table3":"^0.6.5","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","typescript":"^5.8.3","@types/hast":"^3.0.4","@types/node":"^22.15.19","remark-math":"^6.0.0","@types/mdast":"^4.0.4","@types/react":"^19.1.4","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","react-markdown":"^10.1.0","fast-deep-equal":"^3.1.3","@types/benchmark":"^2.1.5","@types/react-dom":"^19.1.5","esbuild-plugin-rdi":"^0.0.0","remark-frontmatter":"^5.0.0","@repo/eslint-config":"workspace:*","@vitest/coverage-v8":"^3.1.4","vite-tsconfig-paths":"^5.1.4","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","esbuild-plugin-react18":"0.2.6","@repo/typescript-config":"workspace:*","esbuild-plugin-react18-css":"^0.0.4"},"peerDependencies":{"react":">=16.8","@types/react":">=16.8"},"_npmOperationalInternal":{"tmp":"tmp/react-markdown_0.3.0_1752264867155_0.4184379026702756","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@m2d/react-markdown","author":{"name":"Mayank Kumar Chaudhari","url":"https://mayank-chaudhari.vercel.app"},"private":false,"version":"1.0.0","description":"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.","license":"MPL-2.0","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+https://github.com/md2docx/react-markdown.git"},"bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"homepage":"https://github.com/md2docx/react-markdown/#readme","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./dist/client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./dist/server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.mjs","require":"./dist/server/index.js"},"./unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./dist/server/unwrap":{"types":"./dist/server/unwrap/index.d.ts","import":"./dist/server/unwrap/index.mjs","require":"./dist/server/unwrap/index.js"},"./omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./dist/server/omit":{"types":"./dist/server/omit/index.d.ts","import":"./dist/server/omit/index.mjs","require":"./dist/server/omit/index.js"},"./test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./dist/test-utils":{"types":"./dist/test-utils.d.ts","import":"./dist/test-utils.mjs","require":"./dist/test-utils.js"},"./utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"},"./dist/utils":{"types":"./dist/utils.d.ts","import":"./dist/utils.mjs","require":"./dist/utils.js"}},"scripts":{"build":"tsup && tsc -p tsconfig-build.json && gzip -c dist/index.js | wc -c","clean":"rm -rf dist","dev":"tsup --watch && tsc -p tsconfig-build.json -w","typecheck":"tsc --noEmit","lint":"eslint src/","lint:fix":"eslint src/ --fix","test":"vitest run --coverage","benchmark":"tsx benchmarks/perf.bench.tsx","bench:w":"tsx benchmarks/index.ts"},"devDependencies":{"@repo/eslint-config":"workspace:*","@repo/typescript-config":"workspace:*","@testing-library/react":"^16.3.0","@types/benchmark":"^2.1.5","@types/hast":"^3.0.4","@types/mdast":"^4.0.4","@types/node":"^22.15.19","@types/react":"^19.1.4","@types/react-dom":"^19.1.5","@vitejs/plugin-react":"^4.4.1","@vitest/coverage-v8":"^3.1.4","benchmark":"^2.1.4","chalk":"^5.4.1","cli-table3":"^0.6.5","esbuild-plugin-rdi":"^0.0.0","esbuild-plugin-react18":"0.2.6","esbuild-plugin-react18-css":"^0.0.4","fast-deep-equal":"^3.1.3","jsdom":"^26.1.0","react":"^19.1.0","react-dom":"^19.1.0","react-markdown":"^10.1.0","rehype-raw":"^7.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1","remark-math":"^6.0.0","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","tsup":"^8.5.0","tsx":"^4.20.3","typescript":"^5.8.3","vite-tsconfig-paths":"^5.1.4","vitest":"^3.1.4"},"dependencies":{"hast-util-to-jsx-runtime":"^2.3.6","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","unified":"^11.0.5","unist-util-visit":"^5.0.0"},"peerDependencies":{"@types/react":">=16.8","react":">=16.8"},"funding":[{"type":"github","url":"https://github.com/sponsors/md2docx"},{"type":"github","url":"https://github.com/sponsors/mayank1513"}],"keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"_id":"@m2d/react-markdown@1.0.0","gitHead":"aa65fc61c4fa374a0f32d28373768d34530b3fff","_nodeVersion":"20.19.3","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CqbJTHi+SOLwF3JA4xVgMLSL2ZlSg1VIohaMwt/lHs1Wu+jzZ3eu6JZvDFtHSioSiEGYdlcrwbrpugutDSvL+Q==","shasum":"c897fec12c3164314f5f076db23f940cc84186e2","tarball":"https://registry.npmjs.org/@m2d/react-markdown/-/react-markdown-1.0.0.tgz","fileCount":55,"unpackedSize":54172,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@m2d%2freact-markdown@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFPX9121VZZc14Xi0N5XLT38xOWemeyDBm0gw+B7vjKzAiBvIarEnObqge9RGLlo60NgQfWPCwW5q9tQwueuY6wLRg=="}]},"_npmUser":{"name":"mayank1513","email":"mayank.srmu@gmail.com"},"directories":{},"maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-markdown_1.0.0_1752753149250_0.7477560711949172"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-21T15:28:41.568Z","modified":"2025-07-17T11:52:29.865Z","0.0.0":"2025-06-21T15:28:41.822Z","0.1.0":"2025-06-21T15:47:53.358Z","0.1.1":"2025-06-21T16:14:25.019Z","0.2.0":"2025-06-22T04:59:01.962Z","0.2.1":"2025-06-30T04:59:20.431Z","0.3.0":"2025-07-11T20:14:27.336Z","1.0.0":"2025-07-17T11:52:29.441Z"},"bugs":{"url":"https://github.com/md2docx/react-markdown/issues"},"author":{"name":"Mayank Kumar Chaudhari","url":"https://mayank-chaudhari.vercel.app"},"license":"MPL-2.0","homepage":"https://github.com/md2docx/react-markdown/#readme","keywords":["react","react-markdown","mdx-renderer","markdown","jsx","ssr","mdast","mdast2docx","hast","remark","rehype","unified","docx","custom-components","lightweight","renderer","react 18","react 19","next.js","next.js 14","next.js 15","react server components","frontend development","web development","ui components","customizable","modern","progressive","cutting-edge","compatibility","seamless integration"],"repository":{"type":"git","url":"git+https://github.com/md2docx/react-markdown.git"},"description":"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.","maintainers":[{"name":"mayank1513","email":"mayank.srmu@gmail.com"}],"readme":"# MDX Renderer [`@m2d/react-markdown`] <img src=\"https://raw.githubusercontent.com/mayank1513/mayank1513/main/popper.png\" style=\"height: 40px\"/>\n\n[![test](https://github.com/md2docx/react-markdown/actions/workflows/test.yml/badge.svg)](https://github.com/md2docx/react-markdown/actions/workflows/test.yml)\n[![Maintainability](https://api.codeclimate.com/v1/badges/aa896ec14c570f3bb274/maintainability)](https://codeclimate.com/github/md2docx/react-markdown/maintainability)\n[![codecov](https://codecov.io/gh/md2docx/react-markdown/graph/badge.svg)](https://codecov.io/gh/md2docx/react-markdown)\n[![Version](https://img.shields.io/npm/v/@m2d/react-markdown.svg?colorB=green)](https://www.npmjs.com/package/@m2d/react-markdown)\n[![Downloads](https://img.jsdelivr.com/img.shields.io/npm/d18m/@m2d/react-markdown.svg)](https://www.npmjs.com/package/@m2d/react-markdown)\n![npm bundle size](https://img.shields.io/bundlephobia/minzip/@m2d/react-markdown)\n\n> ✨ A modern, SSR-compatible Markdown renderer for React with full MDAST/HAST access — built for **customization**, **performance**, and **document generation** - **docx/pdf**.\n\n---\n\n## 🔥 Why `@m2d/react-markdown`?\n\n`@m2d/react-markdown` goes beyond traditional React Markdown libraries by focusing on:\n\n- ✅ **Server-side rendering (SSR)** without hooks\n- ✅ **Full JSX children support** (not just strings)\n- ✅ **Access to raw MDAST & HAST trees**\n- ✅ **Drop-in plugin support** via Unified (`remark`, `rehype`, etc.)\n- ✅ **Custom component overrides** per tag\n- ✅ **Integration with tools like [`mdast2docx`](https://github.com/md2docx/mdast2docx)**\n\nCompared to `react-markdown`, this library offers:\n\n| Feature                                | `@m2d/react-markdown` ✅ | `react-markdown` ❌ |\n| -------------------------------------- | ------------------------ | ------------------- |\n| Full JSX support (not just strings)    | ✅                       | ❌                  |\n| SSR-safe (no hooks)                    | ✅                       | ✅                  |\n| Client Side component with memoization | ✅                       | ❌                  |\n| MDAST + HAST access via `astRef`       | ✅                       | ❌                  |\n| Component-level overrides              | ✅                       | ✅                  |\n| Unified plugin support                 | ✅                       | ✅                  |\n| Tiny bundle (minzipped)                | **~35 kB**               | ~45 kB              |\n| Built-in DOCX-friendly AST output      | ✅                       | ❌                  |\n\n---\n\n## 📦 Installation\n\n```bash\npnpm add @m2d/react-markdown\n```\n\n**_or_**\n\n```bash\nnpm install @m2d/react-markdown\n```\n\n**_or_**\n\n```bash\nyarn add @m2d/react-markdown\n```\n\n---\n\n## 🚀 Server vs Client\n\nBy default, this package is SSR-safe and has **no client-specific hooks**.\n\n### ✅ Server (default):\n\n```tsx\nimport { Md } from \"@m2d/react-markdown\";\n```\n\n### 🔁 Client (for dynamic reactivity/memoization):\n\n```tsx\nimport { Md } from \"@m2d/react-markdown/client\";\n```\n\nThis version supports client-side behavior with memoization and dynamic JSX rendering.\n\n---\n\n## ⚡ Example: Rendering + Exporting DOCX\n\n```tsx\nimport { Md } from \"@m2d/react-markdown/client\";\nimport { toDocx } from \"mdast2docx\";\nimport { useRef } from \"react\";\n\nconst astRef = useRef([]);\n\nexport default function Page() {\n  return (\n    <>\n      <Md astRef={astRef}>{`# Hello\\n\\nThis is **Markdown**.`}</Md>\n      <button\n        onClick={() => {\n          const doc = toDocx(astRef.current[0].mdast);\n          // Save or download doc\n        }}>\n        Export to DOCX\n      </button>\n    </>\n  );\n}\n```\n\n> Note for Server Component use you can replace useRef with custom ref object `const astRef = {current: undefined} as AstRef`\n\n---\n\n## 🧠 JSX-Aware Parsing\n\nUnlike most markdown renderers, `@m2d/react-markdown` supports **arbitrary JSX as children**:\n\n```tsx\nimport { Mdx } from \"@m2d/react-markdown/server\";\n// ...\n<Mdx>\n  <article>{\"# Markdown Heading\\n\\nSome **rich** content.\"}</article>\n</Mdx>;\n```\n\n> `astRef.current` is an array — one per Markdown string — each with `{ mdast, hast }`.\n> The default `<Md>` export accepts only string children for better optimization.\n\n---\n\n## 🎨 Component Overrides\n\n```tsx\nimport { Md } from \"@m2d/react-markdown\";\nimport { Unwrap, Omit } from \"@m2d/react-markdown/server\";\n\n<Md\n  components={{\n    em: Unwrap,\n    blockquote: Omit,\n    code: props => <CodeBlock {...props} />,\n  }}>\n  {`*em is unwrapped*\\n\\n> blockquote is removed`}\n</Md>;\n```\n\nUse the built-in helpers:\n\n- `Unwrap` – renders only children\n- `Omit` – removes element and content entirely\n- `CodeBlock` - it is your custom component\n\n---\n\n## 🔌 Plugin Support (Unified)\n\nUse any `remark` or `rehype` plugin:\n\n```tsx\n<Md remarkPlugins={[remarkGfm]} rehypePlugins={[rehypeSlug, rehypeAutolinkHeadings]}>\n  {markdown}\n</Md>\n```\n\n---\n\n## 📂 Accessing MDAST + HAST\n\n```ts\ntype astRef = {\n  current: { mdast: Root; hast: HastRoot }[];\n};\n```\n\nUseful for:\n\n- 📄 DOCX export (`mdast2docx`)\n- 🧪 AST testing or analysis\n- 🛠️ Custom tree manipulation\n\n---\n\n## 📊 Performance\n\n> **TL;DR:** `@m2d/react-markdown` performs competitively with `react-markdown`, especially on medium and large documents.\n>\n> 👉 [See full benchmarks →](./benchmark.md)\n\nBenchmarks include:\n\n- Multiple markdown fixture types (short, long, complex, deeply nested)\n- Plugin configurations like `remark-gfm`, `remark-math`, `rehype-raw`\n- Visual comparisons using interactive Mermaid `xychart-beta` charts\n- Ops/sec, ±%, and future memory profiling\n\n---\n\n## 💬 Upcoming Changes – Seeking Feedback\n\nWe're proposing a **major change** to the internal `astRef` structure to better support MDX-style custom components and rendering flexibility:\n\n👉 [Join the discussion →](https://github.com/md2docx/react-markdown/discussions/3)\n\nKey goals:\n\n- Allow `<Md>` to embed child components like JSX/MDX\n- Simplify recursive rendering model\n- Improve performance and reduce abstraction overhead\n\n## 🧭 Roadmap\n\n- [ ] 🔄 Merge JSX + `<Md>` segments into unified AST\n- [x] 🧪 Structural test utilities\n- [x] 🧑‍🏫 Next.js + DOCX example\n\n---\n\n## 🌍 Related Projects\n\n- [`mdast2docx`](https://github.com/md2docx/mdast2docx) – Convert MDAST → `.docx`\n- [`unified`](https://unifiedjs.com/) – Syntax tree ecosystem\n- [`react-markdown`](https://github.com/remarkjs/react-markdown) – Popular alternative (less customizable)\n\n---\n\n## 🙏 Acknowledgements\n\nWe are deeply grateful to the open-source community whose work made this project possible.\n\n- 🌱 **[react-markdown](https://github.com/remarkjs/react-markdown)** – For pioneering a React-based Markdown renderer. This library builds on its ideas while extending flexibility and SSR-readiness.\n- 🛠 **[unified](https://github.com/unifiedjs/unified)** – The brilliant engine powering our markdown-to-AST transformations.\n- ✨ **[remark](https://github.com/remarkjs/remark)** and **[rehype](https://github.com/rehypejs/rehype)** – For their modular ecosystems that make parsing and rendering delightful.\n- 🧾 **[mdast2docx](https://github.com/md2docx/mdast2docx)** – Our sister project that inspired the MDAST-first architecture of this library.\n\n> 💖 To the maintainers, contributors, and communities behind these projects — thank you for your generosity, vision, and dedication to making the web better for everyone.\n\n---\n\n## 📘 License\n\nLicensed under the [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/).\n\n> 💡 Want to support this project? [Sponsor](https://github.com/sponsors/mayank1513) or check out our [courses](https://mayank-chaudhari.vercel.app/courses)!\n\n---\n\n<p align=\"center\" style=\"text-align:center\">Built with ❤️ by <a href=\"https://mayank-chaudhari.vercel.app\" target=\"_blank\">Mayank Kumar Chaudhari</a></p>\n","readmeFilename":"README.md"}