@uiw/react-md-editor 3.10.0 → 3.10.1

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.
@@ -24,14 +24,14 @@ export default function Markdown(props) {
24
24
  }, []);
25
25
 
26
26
  function html2Escape(sHtml) {
27
- return sHtml.replace(/```(.*)\s+([\s\S]*?)(\s.+)?```/g, str => {
28
- return str.replace(/[<>&"]/g, c => ({
27
+ return sHtml.replace(/```(tsx?|jsx?|html|xml)(.*)\s+([\s\S]*?)(\s.+)?```/g, str => {
28
+ return str.replace(/[<&"]/g, c => ({
29
29
  '<': '&lt;',
30
30
  '>': '&gt;',
31
31
  '&': '&amp;',
32
32
  '"': '&quot;'
33
33
  })[c]);
34
- }).replace(/[<>&"]/g, c => ({
34
+ }).replace(/[<&"]/g, c => ({
35
35
  '<': '&lt;',
36
36
  '>': '&gt;',
37
37
  '&': '&amp;',
@@ -37,8 +37,8 @@
37
37
  "__html",
38
38
  "value"
39
39
  ],
40
- "mappings": "AAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,SAA5B,EAAuCC,OAAvC,QAAsD,OAAtD;AACA,SAASC,MAAT,QAAuB,QAAvB,C,CACA;;AACA,OAAOC,WAAP,MAAwB,sBAAxB;AAEA,SAASC,aAAT,QAA8B,eAA9B;;AAIA,eAAe,SAASC,QAAT,CAAkBC,KAAlB,EAAwC;AACrD,MAAM;AAAEC,IAAAA;AAAF,MAAgBD,KAAtB;AACA,MAAM;AAAEE,IAAAA,QAAQ,GAAG,EAAb;AAAiBC,IAAAA,eAAjB;AAAkCC,IAAAA;AAAlC,MAA+CX,UAAU,CAACK,aAAD,CAA/D;AACA,MAAMO,MAAM,gBAAGb,KAAK,CAACc,SAAN,EAAf;AACAZ,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIW,MAAM,CAACE,OAAP,IAAkBH,QAAtB,EAAgC;AAC9BA,MAAAA,QAAQ,CAAC;AAAEI,QAAAA,WAAW,EAAEH,MAAM,CAACE;AAAtB,OAAD,CAAR;AACD,KAHa,CAId;;AACD,GALQ,EAKN,EALM,CAAT;;AAMA,WAASE,WAAT,CAAqBC,KAArB,EAAoC;AAClC,WAAOA,KAAK,CACTC,OADI,CACI,iCADJ,EACwCC,GAAD,IAAiB;AAC3D,aAAOA,GAAG,CAACD,OAAJ,CACL,SADK,EAEJE,CAAD,IAAgB,CAAC;AAAE,aAAK,MAAP;AAAe,aAAK,MAApB;AAA4B,aAAK,OAAjC;AAA0C,aAAK;AAA/C,OAAD,EAAsFA,CAAtF,CAFX,CAAP;AAID,KANI,EAOJF,OAPI,CAQH,SARG,EASFE,CAAD,IAAgB,CAAC;AAAE,WAAK,MAAP;AAAe,WAAK,MAApB;AAA4B,WAAK,OAAjC;AAA0C,WAAK;AAA/C,KAAD,EAAsFA,CAAtF,CATb,CAAP;AAWD;;AAED,SAAOlB,OAAO,CAAC,MAAM;AACnB,QAAI,CAACQ,eAAD,IAAoB,CAACD,QAAzB,EAAmC;AACjC,0BAAO;AAAK,QAAA,QAAQ,EAAEA,QAAQ,IAAI,EAA3B;AAA+B,QAAA,GAAG,EAAEG,MAApC;AAA4C,QAAA,SAAS,EAAKJ,SAAL;AAArD,QAAP;AACD;;AACD,QAAMW,GAAG,GAAGhB,MAAM,GACfkB,IADS,CACJ,UADI,EACQ;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KADR,EAETC,GAFS,CAELnB,WAFK,EAEQ;AAAEoB,MAAAA,aAAa,EAAE;AAAjB,KAFR,EAGTC,WAHS,qCAIyBjB,SAJzB,0EAIoGQ,WAAW,CACrHP,QADqH,CAJ/G,qBAAZ;AAQA,wBAAOV,KAAK,CAAC2B,aAAN,CAAoB,KAApB,EAA2B;AAChCC,MAAAA,SAAS,EAAE,qBADqB;AAEhCC,MAAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEV,GAAG,CAACW;AAAd;AAFO,KAA3B,CAAP;AAID,GAhBa,EAgBX,CAACpB,eAAD,EAAkBD,QAAlB,EAA4BG,MAA5B,EAAoCJ,SAApC,CAhBW,CAAd;AAiBD",
40
+ "mappings": "AAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,SAA5B,EAAuCC,OAAvC,QAAsD,OAAtD;AACA,SAASC,MAAT,QAAuB,QAAvB,C,CACA;;AACA,OAAOC,WAAP,MAAwB,sBAAxB;AAEA,SAASC,aAAT,QAA8B,eAA9B;;AAIA,eAAe,SAASC,QAAT,CAAkBC,KAAlB,EAAwC;AACrD,MAAM;AAAEC,IAAAA;AAAF,MAAgBD,KAAtB;AACA,MAAM;AAAEE,IAAAA,QAAQ,GAAG,EAAb;AAAiBC,IAAAA,eAAjB;AAAkCC,IAAAA;AAAlC,MAA+CX,UAAU,CAACK,aAAD,CAA/D;AACA,MAAMO,MAAM,gBAAGb,KAAK,CAACc,SAAN,EAAf;AACAZ,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIW,MAAM,CAACE,OAAP,IAAkBH,QAAtB,EAAgC;AAC9BA,MAAAA,QAAQ,CAAC;AAAEI,QAAAA,WAAW,EAAEH,MAAM,CAACE;AAAtB,OAAD,CAAR;AACD,KAHa,CAId;;AACD,GALQ,EAKN,EALM,CAAT;;AAMA,WAASE,WAAT,CAAqBC,KAArB,EAAoC;AAClC,WAAOA,KAAK,CACTC,OADI,CACI,qDADJ,EAC4DC,GAAD,IAAiB;AAC/E,aAAOA,GAAG,CAACD,OAAJ,CACL,QADK,EAEJE,CAAD,IAAgB,CAAC;AAAE,aAAK,MAAP;AAAe,aAAK,MAApB;AAA4B,aAAK,OAAjC;AAA0C,aAAK;AAA/C,OAAD,EAAsFA,CAAtF,CAFX,CAAP;AAID,KANI,EAOJF,OAPI,CAQH,QARG,EASFE,CAAD,IAAgB,CAAC;AAAE,WAAK,MAAP;AAAe,WAAK,MAApB;AAA4B,WAAK,OAAjC;AAA0C,WAAK;AAA/C,KAAD,EAAsFA,CAAtF,CATb,CAAP;AAWD;;AAED,SAAOlB,OAAO,CAAC,MAAM;AACnB,QAAI,CAACQ,eAAD,IAAoB,CAACD,QAAzB,EAAmC;AACjC,0BAAO;AAAK,QAAA,QAAQ,EAAEA,QAAQ,IAAI,EAA3B;AAA+B,QAAA,GAAG,EAAEG,MAApC;AAA4C,QAAA,SAAS,EAAKJ,SAAL;AAArD,QAAP;AACD;;AACD,QAAMW,GAAG,GAAGhB,MAAM,GACfkB,IADS,CACJ,UADI,EACQ;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KADR,EAETC,GAFS,CAELnB,WAFK,EAEQ;AAAEoB,MAAAA,aAAa,EAAE;AAAjB,KAFR,EAGTC,WAHS,qCAIyBjB,SAJzB,0EAIoGQ,WAAW,CACrHP,QADqH,CAJ/G,qBAAZ;AAQA,wBAAOV,KAAK,CAAC2B,aAAN,CAAoB,KAApB,EAA2B;AAChCC,MAAAA,SAAS,EAAE,qBADqB;AAEhCC,MAAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEV,GAAG,CAACW;AAAd;AAFO,KAA3B,CAAP;AAID,GAhBa,EAgBX,CAACpB,eAAD,EAAkBD,QAAlB,EAA4BG,MAA5B,EAAoCJ,SAApC,CAhBW,CAAd;AAiBD",
41
41
  "sourcesContent": [
42
- "import React, { useContext, useEffect, useMemo } from 'react';\nimport { rehype } from 'rehype';\n// @ts-ignore\nimport rehypePrism from '@mapbox/rehype-prism';\nimport { IProps } from '../../Editor';\nimport { EditorContext } from '../../Context';\n\nexport interface MarkdownProps extends IProps, React.HTMLAttributes<HTMLPreElement> {}\n\nexport default function Markdown(props: MarkdownProps) {\n const { prefixCls } = props;\n const { markdown = '', highlightEnable, dispatch } = useContext(EditorContext);\n const preRef = React.createRef<HTMLPreElement>();\n useEffect(() => {\n if (preRef.current && dispatch) {\n dispatch({ textareaPre: preRef.current });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function html2Escape(sHtml: string) {\n return sHtml\n .replace(/```(.*)\\s+([\\s\\S]*?)(\\s.+)?```/g, (str: string) => {\n return str.replace(\n /[<>&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n })\n .replace(\n /[<>&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n }\n\n return useMemo(() => {\n if (!highlightEnable || !markdown) {\n return <pre children={markdown || ''} ref={preRef} className={`${prefixCls}-text-pre wmde-markdown-color`} />;\n }\n const str = rehype()\n .data('settings', { fragment: true })\n .use(rehypePrism, { ignoreMissing: true })\n .processSync(\n `<pre class=\"language-markdown ${prefixCls}-text-pre wmde-markdown-color\"><code class=\"language-markdown\">${html2Escape(\n markdown,\n )}\\n</code></pre>`,\n );\n return React.createElement('div', {\n className: 'wmde-markdown-color',\n dangerouslySetInnerHTML: { __html: str.value as string },\n });\n }, [highlightEnable, markdown, preRef, prefixCls]);\n}\n"
42
+ "import React, { useContext, useEffect, useMemo } from 'react';\nimport { rehype } from 'rehype';\n// @ts-ignore\nimport rehypePrism from '@mapbox/rehype-prism';\nimport { IProps } from '../../Editor';\nimport { EditorContext } from '../../Context';\n\nexport interface MarkdownProps extends IProps, React.HTMLAttributes<HTMLPreElement> {}\n\nexport default function Markdown(props: MarkdownProps) {\n const { prefixCls } = props;\n const { markdown = '', highlightEnable, dispatch } = useContext(EditorContext);\n const preRef = React.createRef<HTMLPreElement>();\n useEffect(() => {\n if (preRef.current && dispatch) {\n dispatch({ textareaPre: preRef.current });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function html2Escape(sHtml: string) {\n return sHtml\n .replace(/```(tsx?|jsx?|html|xml)(.*)\\s+([\\s\\S]*?)(\\s.+)?```/g, (str: string) => {\n return str.replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n })\n .replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n }\n\n return useMemo(() => {\n if (!highlightEnable || !markdown) {\n return <pre children={markdown || ''} ref={preRef} className={`${prefixCls}-text-pre wmde-markdown-color`} />;\n }\n const str = rehype()\n .data('settings', { fragment: true })\n .use(rehypePrism, { ignoreMissing: true })\n .processSync(\n `<pre class=\"language-markdown ${prefixCls}-text-pre wmde-markdown-color\"><code class=\"language-markdown\">${html2Escape(\n markdown,\n )}\\n</code></pre>`,\n );\n return React.createElement('div', {\n className: 'wmde-markdown-color',\n dangerouslySetInnerHTML: { __html: str.value as string },\n });\n }, [highlightEnable, markdown, preRef, prefixCls]);\n}\n"
43
43
  ]
44
44
  }
@@ -41,8 +41,8 @@ function Markdown(props) {
41
41
  }, []);
42
42
 
43
43
  function html2Escape(sHtml) {
44
- return sHtml.replace(/```(.*)\s+([\s\S]*?)(\s.+)?```/g, function (str) {
45
- return str.replace(/[<>&"]/g, function (c) {
44
+ return sHtml.replace(/```(tsx?|jsx?|html|xml)(.*)\s+([\s\S]*?)(\s.+)?```/g, function (str) {
45
+ return str.replace(/[<&"]/g, function (c) {
46
46
  return {
47
47
  '<': '&lt;',
48
48
  '>': '&gt;',
@@ -50,7 +50,7 @@ function Markdown(props) {
50
50
  '"': '&quot;'
51
51
  }[c];
52
52
  });
53
- }).replace(/[<>&"]/g, function (c) {
53
+ }).replace(/[<&"]/g, function (c) {
54
54
  return {
55
55
  '<': '&lt;',
56
56
  '>': '&gt;',
@@ -33,8 +33,8 @@
33
33
  "__html",
34
34
  "value"
35
35
  ],
36
- "mappings": ";;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAHA;AAOe,SAASA,QAAT,CAAkBC,KAAlB,EAAwC;AACrD,MAAQC,SAAR,GAAsBD,KAAtB,CAAQC,SAAR;;AACA,oBAAqD,uBAAWC,sBAAX,CAArD;AAAA,yCAAQC,QAAR;AAAA,MAAQA,QAAR,qCAAmB,EAAnB;AAAA,MAAuBC,eAAvB,eAAuBA,eAAvB;AAAA,MAAwCC,QAAxC,eAAwCA,QAAxC;;AACA,MAAMC,MAAM,gBAAGC,eAAMC,SAAN,EAAf;;AACA,wBAAU,YAAM;AACd,QAAIF,MAAM,CAACG,OAAP,IAAkBJ,QAAtB,EAAgC;AAC9BA,MAAAA,QAAQ,CAAC;AAAEK,QAAAA,WAAW,EAAEJ,MAAM,CAACG;AAAtB,OAAD,CAAR;AACD,KAHa,CAId;;AACD,GALD,EAKG,EALH;;AAMA,WAASE,WAAT,CAAqBC,KAArB,EAAoC;AAClC,WAAOA,KAAK,CACTC,OADI,CACI,iCADJ,EACuC,UAACC,GAAD,EAAiB;AAC3D,aAAOA,GAAG,CAACD,OAAJ,CACL,SADK,EAEL,UAACE,CAAD;AAAA,eAAiB;AAAE,eAAK,MAAP;AAAe,eAAK,MAApB;AAA4B,eAAK,OAAjC;AAA0C,eAAK;AAA/C,SAAD,CAAsFA,CAAtF,CAAhB;AAAA,OAFK,CAAP;AAID,KANI,EAOJF,OAPI,CAQH,SARG,EASH,UAACE,CAAD;AAAA,aAAiB;AAAE,aAAK,MAAP;AAAe,aAAK,MAApB;AAA4B,aAAK,OAAjC;AAA0C,aAAK;AAA/C,OAAD,CAAsFA,CAAtF,CAAhB;AAAA,KATG,CAAP;AAWD;;AAED,SAAO,oBAAQ,YAAM;AACnB,QAAI,CAACX,eAAD,IAAoB,CAACD,QAAzB,EAAmC;AACjC,0BAAO;AAAK,QAAA,QAAQ,EAAEA,QAAQ,IAAI,EAA3B;AAA+B,QAAA,GAAG,EAAEG,MAApC;AAA4C,QAAA,SAAS,YAAKL,SAAL;AAArD,QAAP;AACD;;AACD,QAAMa,GAAG,GAAG,sBACTE,IADS,CACJ,UADI,EACQ;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KADR,EAETC,GAFS,CAELC,oBAFK,EAEQ;AAAEC,MAAAA,aAAa,EAAE;AAAjB,KAFR,EAGTC,WAHS,0CAIyBpB,SAJzB,+EAIoGU,WAAW,CACrHR,QADqH,CAJ/G,qBAAZ;AAQA,wBAAOI,eAAMe,aAAN,CAAoB,KAApB,EAA2B;AAChCC,MAAAA,SAAS,EAAE,qBADqB;AAEhCC,MAAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEX,GAAG,CAACY;AAAd;AAFO,KAA3B,CAAP;AAID,GAhBM,EAgBJ,CAACtB,eAAD,EAAkBD,QAAlB,EAA4BG,MAA5B,EAAoCL,SAApC,CAhBI,CAAP;AAiBD",
36
+ "mappings": ";;;;;;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAHA;AAOe,SAASA,QAAT,CAAkBC,KAAlB,EAAwC;AACrD,MAAQC,SAAR,GAAsBD,KAAtB,CAAQC,SAAR;;AACA,oBAAqD,uBAAWC,sBAAX,CAArD;AAAA,yCAAQC,QAAR;AAAA,MAAQA,QAAR,qCAAmB,EAAnB;AAAA,MAAuBC,eAAvB,eAAuBA,eAAvB;AAAA,MAAwCC,QAAxC,eAAwCA,QAAxC;;AACA,MAAMC,MAAM,gBAAGC,eAAMC,SAAN,EAAf;;AACA,wBAAU,YAAM;AACd,QAAIF,MAAM,CAACG,OAAP,IAAkBJ,QAAtB,EAAgC;AAC9BA,MAAAA,QAAQ,CAAC;AAAEK,QAAAA,WAAW,EAAEJ,MAAM,CAACG;AAAtB,OAAD,CAAR;AACD,KAHa,CAId;;AACD,GALD,EAKG,EALH;;AAMA,WAASE,WAAT,CAAqBC,KAArB,EAAoC;AAClC,WAAOA,KAAK,CACTC,OADI,CACI,qDADJ,EAC2D,UAACC,GAAD,EAAiB;AAC/E,aAAOA,GAAG,CAACD,OAAJ,CACL,QADK,EAEL,UAACE,CAAD;AAAA,eAAiB;AAAE,eAAK,MAAP;AAAe,eAAK,MAApB;AAA4B,eAAK,OAAjC;AAA0C,eAAK;AAA/C,SAAD,CAAsFA,CAAtF,CAAhB;AAAA,OAFK,CAAP;AAID,KANI,EAOJF,OAPI,CAQH,QARG,EASH,UAACE,CAAD;AAAA,aAAiB;AAAE,aAAK,MAAP;AAAe,aAAK,MAApB;AAA4B,aAAK,OAAjC;AAA0C,aAAK;AAA/C,OAAD,CAAsFA,CAAtF,CAAhB;AAAA,KATG,CAAP;AAWD;;AAED,SAAO,oBAAQ,YAAM;AACnB,QAAI,CAACX,eAAD,IAAoB,CAACD,QAAzB,EAAmC;AACjC,0BAAO;AAAK,QAAA,QAAQ,EAAEA,QAAQ,IAAI,EAA3B;AAA+B,QAAA,GAAG,EAAEG,MAApC;AAA4C,QAAA,SAAS,YAAKL,SAAL;AAArD,QAAP;AACD;;AACD,QAAMa,GAAG,GAAG,sBACTE,IADS,CACJ,UADI,EACQ;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KADR,EAETC,GAFS,CAELC,oBAFK,EAEQ;AAAEC,MAAAA,aAAa,EAAE;AAAjB,KAFR,EAGTC,WAHS,0CAIyBpB,SAJzB,+EAIoGU,WAAW,CACrHR,QADqH,CAJ/G,qBAAZ;AAQA,wBAAOI,eAAMe,aAAN,CAAoB,KAApB,EAA2B;AAChCC,MAAAA,SAAS,EAAE,qBADqB;AAEhCC,MAAAA,uBAAuB,EAAE;AAAEC,QAAAA,MAAM,EAAEX,GAAG,CAACY;AAAd;AAFO,KAA3B,CAAP;AAID,GAhBM,EAgBJ,CAACtB,eAAD,EAAkBD,QAAlB,EAA4BG,MAA5B,EAAoCL,SAApC,CAhBI,CAAP;AAiBD",
37
37
  "sourcesContent": [
38
- "import React, { useContext, useEffect, useMemo } from 'react';\nimport { rehype } from 'rehype';\n// @ts-ignore\nimport rehypePrism from '@mapbox/rehype-prism';\nimport { IProps } from '../../Editor';\nimport { EditorContext } from '../../Context';\n\nexport interface MarkdownProps extends IProps, React.HTMLAttributes<HTMLPreElement> {}\n\nexport default function Markdown(props: MarkdownProps) {\n const { prefixCls } = props;\n const { markdown = '', highlightEnable, dispatch } = useContext(EditorContext);\n const preRef = React.createRef<HTMLPreElement>();\n useEffect(() => {\n if (preRef.current && dispatch) {\n dispatch({ textareaPre: preRef.current });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function html2Escape(sHtml: string) {\n return sHtml\n .replace(/```(.*)\\s+([\\s\\S]*?)(\\s.+)?```/g, (str: string) => {\n return str.replace(\n /[<>&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n })\n .replace(\n /[<>&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n }\n\n return useMemo(() => {\n if (!highlightEnable || !markdown) {\n return <pre children={markdown || ''} ref={preRef} className={`${prefixCls}-text-pre wmde-markdown-color`} />;\n }\n const str = rehype()\n .data('settings', { fragment: true })\n .use(rehypePrism, { ignoreMissing: true })\n .processSync(\n `<pre class=\"language-markdown ${prefixCls}-text-pre wmde-markdown-color\"><code class=\"language-markdown\">${html2Escape(\n markdown,\n )}\\n</code></pre>`,\n );\n return React.createElement('div', {\n className: 'wmde-markdown-color',\n dangerouslySetInnerHTML: { __html: str.value as string },\n });\n }, [highlightEnable, markdown, preRef, prefixCls]);\n}\n"
38
+ "import React, { useContext, useEffect, useMemo } from 'react';\nimport { rehype } from 'rehype';\n// @ts-ignore\nimport rehypePrism from '@mapbox/rehype-prism';\nimport { IProps } from '../../Editor';\nimport { EditorContext } from '../../Context';\n\nexport interface MarkdownProps extends IProps, React.HTMLAttributes<HTMLPreElement> {}\n\nexport default function Markdown(props: MarkdownProps) {\n const { prefixCls } = props;\n const { markdown = '', highlightEnable, dispatch } = useContext(EditorContext);\n const preRef = React.createRef<HTMLPreElement>();\n useEffect(() => {\n if (preRef.current && dispatch) {\n dispatch({ textareaPre: preRef.current });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n function html2Escape(sHtml: string) {\n return sHtml\n .replace(/```(tsx?|jsx?|html|xml)(.*)\\s+([\\s\\S]*?)(\\s.+)?```/g, (str: string) => {\n return str.replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n })\n .replace(\n /[<&\"]/g,\n (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '\"': '&quot;' } as Record<string, string>)[c]),\n );\n }\n\n return useMemo(() => {\n if (!highlightEnable || !markdown) {\n return <pre children={markdown || ''} ref={preRef} className={`${prefixCls}-text-pre wmde-markdown-color`} />;\n }\n const str = rehype()\n .data('settings', { fragment: true })\n .use(rehypePrism, { ignoreMissing: true })\n .processSync(\n `<pre class=\"language-markdown ${prefixCls}-text-pre wmde-markdown-color\"><code class=\"language-markdown\">${html2Escape(\n markdown,\n )}\\n</code></pre>`,\n );\n return React.createElement('div', {\n className: 'wmde-markdown-color',\n dangerouslySetInnerHTML: { __html: str.value as string },\n });\n }, [highlightEnable, markdown, preRef, prefixCls]);\n}\n"
39
39
  ]
40
40
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uiw/react-md-editor",
3
- "version": "3.10.0",
3
+ "version": "3.10.1",
4
4
  "description": "A markdown editor with preview, implemented with React.js and TypeScript.",
5
5
  "homepage": "https://uiwjs.github.io/react-md-editor/",
6
6
  "author": "kenny wang <wowohoo@qq.com>",
@@ -19,14 +19,14 @@ export default function Markdown(props: MarkdownProps) {
19
19
  }, []);
20
20
  function html2Escape(sHtml: string) {
21
21
  return sHtml
22
- .replace(/```(.*)\s+([\s\S]*?)(\s.+)?```/g, (str: string) => {
22
+ .replace(/```(tsx?|jsx?|html|xml)(.*)\s+([\s\S]*?)(\s.+)?```/g, (str: string) => {
23
23
  return str.replace(
24
- /[<>&"]/g,
24
+ /[<&"]/g,
25
25
  (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '"': '&quot;' } as Record<string, string>)[c]),
26
26
  );
27
27
  })
28
28
  .replace(
29
- /[<>&"]/g,
29
+ /[<&"]/g,
30
30
  (c: string) => (({ '<': '&lt;', '>': '&gt;', '&': '&amp;', '"': '&quot;' } as Record<string, string>)[c]),
31
31
  );
32
32
  }