|  | @@ -1,4 +1,5 @@
 | 
	
		
			
				|  |  |  import ReactMarkdown from 'react-markdown'
 | 
	
		
			
				|  |  | +import ReactEcharts from 'echarts-for-react'
 | 
	
		
			
				|  |  |  import 'katex/dist/katex.min.css'
 | 
	
		
			
				|  |  |  import RemarkMath from 'remark-math'
 | 
	
		
			
				|  |  |  import RemarkBreaks from 'remark-breaks'
 | 
	
	
		
			
				|  | @@ -30,6 +31,7 @@ const capitalizationLanguageNameMap: Record<string, string> = {
 | 
	
		
			
				|  |  |    mermaid: 'Mermaid',
 | 
	
		
			
				|  |  |    markdown: 'MarkDown',
 | 
	
		
			
				|  |  |    makefile: 'MakeFile',
 | 
	
		
			
				|  |  | +  echarts: 'ECharts',
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  const getCorrectCapitalizationLanguageName = (language: string) => {
 | 
	
		
			
				|  |  |    if (!language)
 | 
	
	
		
			
				|  | @@ -107,6 +109,14 @@ const CodeBlock: CodeComponent = memo(({ inline, className, children, ...props }
 | 
	
		
			
				|  |  |    const match = /language-(\w+)/.exec(className || '')
 | 
	
		
			
				|  |  |    const language = match?.[1]
 | 
	
		
			
				|  |  |    const languageShowName = getCorrectCapitalizationLanguageName(language || '')
 | 
	
		
			
				|  |  | +  let chartData = JSON.parse(String('{"title":{"text":"Something went wrong."}}').replace(/\n$/, ''))
 | 
	
		
			
				|  |  | +  if (language === 'echarts') {
 | 
	
		
			
				|  |  | +    try {
 | 
	
		
			
				|  |  | +      chartData = JSON.parse(String(children).replace(/\n$/, ''))
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    catch (error) {
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Use `useMemo` to ensure that `SyntaxHighlighter` only re-renders when necessary
 | 
	
		
			
				|  |  |    return useMemo(() => {
 | 
	
	
		
			
				|  | @@ -136,19 +146,25 @@ const CodeBlock: CodeComponent = memo(({ inline, className, children, ...props }
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            {(language === 'mermaid' && isSVG)
 | 
	
		
			
				|  |  |              ? (<Flowchart PrimitiveCode={String(children).replace(/\n$/, '')} />)
 | 
	
		
			
				|  |  | -            : (<SyntaxHighlighter
 | 
	
		
			
				|  |  | -              {...props}
 | 
	
		
			
				|  |  | -              style={atelierHeathLight}
 | 
	
		
			
				|  |  | -              customStyle={{
 | 
	
		
			
				|  |  | -                paddingLeft: 12,
 | 
	
		
			
				|  |  | -                backgroundColor: '#fff',
 | 
	
		
			
				|  |  | -              }}
 | 
	
		
			
				|  |  | -              language={match[1]}
 | 
	
		
			
				|  |  | -              showLineNumbers
 | 
	
		
			
				|  |  | -              PreTag="div"
 | 
	
		
			
				|  |  | -            >
 | 
	
		
			
				|  |  | -              {String(children).replace(/\n$/, '')}
 | 
	
		
			
				|  |  | -            </SyntaxHighlighter>)}
 | 
	
		
			
				|  |  | +            : (
 | 
	
		
			
				|  |  | +              (language === 'echarts')
 | 
	
		
			
				|  |  | +                ? (<div style={{ minHeight: '250px', minWidth: '250px' }}><ReactEcharts
 | 
	
		
			
				|  |  | +                  option={chartData}
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                </ReactEcharts></div>)
 | 
	
		
			
				|  |  | +                : (<SyntaxHighlighter
 | 
	
		
			
				|  |  | +                  {...props}
 | 
	
		
			
				|  |  | +                  style={atelierHeathLight}
 | 
	
		
			
				|  |  | +                  customStyle={{
 | 
	
		
			
				|  |  | +                    paddingLeft: 12,
 | 
	
		
			
				|  |  | +                    backgroundColor: '#fff',
 | 
	
		
			
				|  |  | +                  }}
 | 
	
		
			
				|  |  | +                  language={match[1]}
 | 
	
		
			
				|  |  | +                  showLineNumbers
 | 
	
		
			
				|  |  | +                  PreTag="div"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                  {String(children).replace(/\n$/, '')}
 | 
	
		
			
				|  |  | +                </SyntaxHighlighter>))}
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        )
 | 
	
		
			
				|  |  |        : (
 |