@@ -79,10 +79,27 @@ function MessageDetail({ chat, renderMarkdown }: MessageDetailProps) {
7979 chat . hide ? (
8080 mdt . text ?. trim ( ) . slice ( 0 , 16 ) + " ..."
8181 ) : renderMarkdown ? (
82- < Markdown
82+ < Markdown
8383 remarkPlugins = { [ remarkMath , remarkGfm ] }
8484 rehypePlugins = { [ rehypeKatex , rehypeHighlight ] }
85- className = { "prose max-w-none" }
85+ className = { "prose max-w-none break-words overflow-wrap-anywhere" }
86+ components = { {
87+ p : ( { children } : any ) => (
88+ < p className = "break-words whitespace-pre-wrap overflow-wrap-anywhere" >
89+ { children }
90+ </ p >
91+ ) ,
92+ code : ( { children } : any ) => (
93+ < code className = "break-all whitespace-pre-wrap" >
94+ { children }
95+ </ code >
96+ ) ,
97+ pre : ( { children } : any ) => (
98+ < pre className = "break-words whitespace-pre-wrap overflow-x-auto" >
99+ { children }
100+ </ pre >
101+ ) ,
102+ } }
86103 >
87104 { mdt . text }
88105 </ Markdown >
@@ -356,22 +373,35 @@ export default function Message(props: { messageIndex: number }) {
356373 "embed" ,
357374 "hr" ,
358375 ] }
359- // allowElement={(element) => {
360- // return [
361- // "p",
362- // "em",
363- // "strong",
364- // "del",
365- // "code",
366- // "inlineCode",
367- // "blockquote",
368- // "ul",
369- // "ol",
370- // "li",
371- // "pre",
372- // ].includes(element.tagName);
373- // }}
374- className = { "prose max-w-none" }
376+ className = {
377+ "prose max-w-none break-words overflow-wrap-anywhere"
378+ }
379+ components = { {
380+ p : ( { children, node } : any ) => {
381+ if ( node ?. parent ?. type === "listItem" ) {
382+ return (
383+ < span className = "break-words whitespace-pre-wrap overflow-wrap-anywhere" >
384+ { children }
385+ </ span >
386+ ) ;
387+ }
388+ return (
389+ < p className = "break-words whitespace-pre-wrap overflow-wrap-anywhere" >
390+ { children }
391+ </ p >
392+ ) ;
393+ } ,
394+ code : ( { children } : any ) => (
395+ < code className = "break-all whitespace-pre-wrap" >
396+ { children }
397+ </ code >
398+ ) ,
399+ pre : ( { children } : any ) => (
400+ < pre className = "break-words whitespace-pre-wrap overflow-x-auto" >
401+ { children }
402+ </ pre >
403+ ) ,
404+ } }
375405 >
376406 { getMessageText ( chat ) }
377407 </ Markdown >
@@ -446,13 +476,32 @@ export default function Message(props: { messageIndex: number }) {
446476 < Markdown
447477 remarkPlugins = { [ remarkMath , remarkGfm ] }
448478 rehypePlugins = { [ rehypeKatex , rehypeHighlight ] }
479+ className = { "max-w-none break-words overflow-wrap-anywhere" }
449480 components = { {
450481 p : ( { children, node } : any ) => {
451482 if ( node ?. parent ?. type === "listItem" ) {
452- return < > { children } </ > ;
483+ return (
484+ < span className = "break-words whitespace-pre-wrap overflow-wrap-anywhere" >
485+ { children }
486+ </ span >
487+ ) ;
453488 }
454- return < p > { children } </ p > ;
489+ return (
490+ < p className = "break-words whitespace-pre-wrap overflow-wrap-anywhere" >
491+ { children }
492+ </ p >
493+ ) ;
455494 } ,
495+ code : ( { children } : any ) => (
496+ < code className = "break-all whitespace-pre-wrap" >
497+ { children }
498+ </ code >
499+ ) ,
500+ pre : ( { children } : any ) => (
501+ < pre className = "break-words whitespace-pre-wrap overflow-x-auto" >
502+ { children }
503+ </ pre >
504+ ) ,
456505 } }
457506 >
458507 { getMessageText ( chat ) }
0 commit comments