@@ -6,16 +6,113 @@ import ReactMarkdown from 'react-markdown';
66 * @param  children markdown text to render 
77 */ 
88const  MarkdownWrapper  =  ( {  children } : {  children : React . ReactNode  } )  =>  { 
9- 	// ensures that markdownText  is a string 
9+ 	// Ensure children  is a string 
1010	const  markdownText  =  typeof  children  ===  'string'  ? children  : '' ; 
11+ 
1112	return  ( 
12- 		< ReactMarkdown 
13- 			components = { { 
14- 				p : ( {  ...props  } )  =>  < > { props . children } </ > , 
15- 			} } 
16- 		> 
17- 			{ markdownText } 
18- 		</ ReactMarkdown > 
13+ 		< div  style = { {  whiteSpace : 'normal'  } } > 
14+ 			< ReactMarkdown 
15+ 				components = { { 
16+ 					p : ( {  ...props  } )  =>  ( 
17+ 						< p 
18+ 							style = { { 
19+ 								margin : 0 , 
20+ 								marginBottom : '0.5em' , 
21+ 								lineHeight : 1.4 , 
22+ 								textAlign : 'left' , 
23+ 							} } 
24+ 						> 
25+ 							{ props . children } 
26+ 						</ p > 
27+ 					) , 
28+ 
29+ 					ul : ( {  ...props  } )  =>  ( 
30+ 						< ul 
31+ 							style = { { 
32+ 								paddingLeft : 'clamp(8px, 3.5vw, 16px)' , 
33+ 								margin : 0 , 
34+ 								listStylePosition : 'inside' ,  // KEY CHANGE 
35+ 							} } 
36+ 						> 
37+ 							{ props . children } 
38+ 						</ ul > 
39+ 					) , 
40+ 
41+ 					ol : ( {  ...props  } )  =>  ( 
42+ 						< ol 
43+ 							style = { { 
44+ 								paddingLeft : 'clamp(8px, 3.5vw, 16px)' , 
45+ 								margin : 0 , 
46+ 								listStylePosition : 'inside' ,  // KEY CHANGE 
47+ 							} } 
48+ 						> 
49+ 							{ props . children } 
50+ 						</ ol > 
51+ 					) , 
52+ 
53+ 					// KEY CHANGE: Remove custom bullet rendering, let browser handle bullets & numbers 
54+ 					li : ( {  ...props  } )  =>  ( 
55+ 						< li 
56+ 							style = { { 
57+ 								marginBottom : '1px' , 
58+ 								lineHeight : 1.4 , 
59+ 							} } 
60+ 						> 
61+ 							{ props . children } 
62+ 						</ li > 
63+ 					) , 
64+ 
65+ 					code ( {  inline,  children,  ...props  } : React . HTMLAttributes < HTMLElement >  &  {  inline ?: boolean  } )  { 
66+ 						if  ( inline )  { 
67+ 							return  ( 
68+ 								< code 
69+ 									style = { { 
70+ 										backgroundColor : 'rgba(0, 0, 0, 0.3)' , 
71+ 										padding : '2px 4px' , 
72+ 										borderRadius : '4px' , 
73+ 										fontFamily : 'inherit' , 
74+ 										fontSize : '0.95em' , 
75+ 									} } 
76+ 								> 
77+ 									{ children } 
78+ 								</ code > 
79+ 							) ; 
80+ 						} 
81+ 
82+ 						return  ( 
83+ 							< pre 
84+ 								style = { { 
85+ 									backgroundColor : 'rgba(0, 0, 0, 0.3)' , 
86+ 									padding : '8px' , 
87+ 									borderRadius : '4px' , 
88+ 									overflowX : 'auto' , 
89+ 									margin : '0.5em 0' , 
90+ 									whiteSpace : 'pre-wrap' ,  // preserve line breaks 
91+ 								} } 
92+ 							> 
93+ 								< code > { children } </ code > 
94+ 							</ pre > 
95+ 						) ; 
96+ 					} , 
97+ 
98+ 					blockquote : ( {  ...props  } )  =>  ( 
99+ 						< blockquote 
100+ 							style = { { 
101+ 								margin : 0 , 
102+ 								paddingLeft : '10px' , 
103+ 								borderLeft : '2px solid #ccc' , 
104+ 								color : '#666' , 
105+ 								fontStyle : 'italic' , 
106+ 							} } 
107+ 						> 
108+ 							{ props . children } 
109+ 						</ blockquote > 
110+ 					) , 
111+ 				} } 
112+ 			> 
113+ 				{ markdownText } 
114+ 			</ ReactMarkdown > 
115+ 		</ div > 
19116	) ; 
20117} ; 
21118
0 commit comments