mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-12-20 10:38:15 +00:00
feat(message-box): update markdown2jsx overrides to render codeblock
This commit is contained in:
@@ -12,7 +12,7 @@ import {
|
|||||||
Plus,
|
Plus,
|
||||||
CornerDownRight,
|
CornerDownRight,
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import Markdown, { MarkdownToJSX } from 'markdown-to-jsx';
|
import Markdown, { MarkdownToJSX, RuleType } from 'markdown-to-jsx';
|
||||||
import Copy from './MessageActions/Copy';
|
import Copy from './MessageActions/Copy';
|
||||||
import Rewrite from './MessageActions/Rewrite';
|
import Rewrite from './MessageActions/Rewrite';
|
||||||
import MessageSources from './MessageSources';
|
import MessageSources from './MessageSources';
|
||||||
@@ -21,10 +21,11 @@ import SearchVideos from './SearchVideos';
|
|||||||
import { useSpeech } from 'react-text-to-speech';
|
import { useSpeech } from 'react-text-to-speech';
|
||||||
import ThinkBox from './ThinkBox';
|
import ThinkBox from './ThinkBox';
|
||||||
import { useChat, Section } from '@/lib/hooks/useChat';
|
import { useChat, Section } from '@/lib/hooks/useChat';
|
||||||
import Citation from './Citation';
|
import Citation from './MessageRenderer/Citation';
|
||||||
import AssistantSteps from './AssistantSteps';
|
import AssistantSteps from './AssistantSteps';
|
||||||
import { ResearchBlock } from '@/lib/types';
|
import { ResearchBlock } from '@/lib/types';
|
||||||
import Renderer from './Widgets/Renderer';
|
import Renderer from './Widgets/Renderer';
|
||||||
|
import CodeBlock from './MessageRenderer/CodeBlock';
|
||||||
|
|
||||||
const ThinkTagProcessor = ({
|
const ThinkTagProcessor = ({
|
||||||
children,
|
children,
|
||||||
@@ -67,6 +68,21 @@ const MessageBox = ({
|
|||||||
const { speechStatus, start, stop } = useSpeech({ text: speechMessage });
|
const { speechStatus, start, stop } = useSpeech({ text: speechMessage });
|
||||||
|
|
||||||
const markdownOverrides: MarkdownToJSX.Options = {
|
const markdownOverrides: MarkdownToJSX.Options = {
|
||||||
|
renderRule(next, node, renderChildren, state) {
|
||||||
|
if (node.type === RuleType.codeInline) {
|
||||||
|
return `\`${node.text}\``;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node.type === RuleType.codeBlock) {
|
||||||
|
return (
|
||||||
|
<CodeBlock key={state.key} language={node.lang || ''}>
|
||||||
|
{node.text}
|
||||||
|
</CodeBlock>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return next();
|
||||||
|
},
|
||||||
overrides: {
|
overrides: {
|
||||||
think: {
|
think: {
|
||||||
component: ThinkTagProcessor,
|
component: ThinkTagProcessor,
|
||||||
|
|||||||
Reference in New Issue
Block a user