import { MarkdownSample } from "@/components/docs/samples/markdown";
Markdown support is already included by default in the `Thread` component.Enabling markdown support#
### Add `markdown-text`<InstallCommand shadcn={["markdown-text"]} />
This adds a /components/assistant-ui/markdown-text.tsx file to your project, which you can adjust as needed.
Use it in your application#
Pass the MarkdownText component to the MessagePrimitive.Parts component
// @filename: /components/assistant-ui/markdown-text.tsx
import { FC } from "react";
export const MarkdownText: FC = () => null;
// @filename: ./thread.tsx
import { FC } from "react";
import { MessagePrimitive } from "@assistant-ui/react";
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
const AssistantActionBar: FC = () => null;
const BranchPicker: FC<{ className?: string }> = () => null;
// ---cut---
import { MarkdownText } from "@/components/assistant-ui/markdown-text";
const AssistantMessage: FC = () => {
return (
<MessagePrimitive.Root className="...">
<div className="...">
<MessagePrimitive.Parts>
{({ part }) => part.type === "text" ? <MarkdownText /> : null}
</MessagePrimitive.Parts>
</div>
<AssistantActionBar />
<BranchPicker className="..." />
</MessagePrimitive.Root>
);
};
Syntax highlighting#
Syntax Highlighting is not included by default, see Syntax Highlighting to learn how to add it.
Related Components#
- Syntax Highlighting - Add code highlighting to markdown
- Mermaid - Render diagrams in markdown code blocks