Markdown
shadcn-collections/markdownFreeComponent
Markdown renderer component
Install it
npx shadcn@latest add https://chatcn.me/r/markdown.jsonSource
1import React from "react";2import { default as MarkdownRender } from "react-markdown";3import remarkGfm from "remark-gfm";4import { cn } from "@/lib/utils";5import { CodeBlock } from "@/components/chatcn/ai/codeblock";67type MarkDownProps = {8 children: React.ReactNode;9 className?: string;10 theme?: string;11};1213export function Markdown({ children, className, theme }: MarkDownProps) {14 return (15 <div16 className={cn(17 "prose dark:prose-invert max-w-4xl px-3 prose-pre:p-0 prose-pre:resize-none",18 className19 )}20 >21 <MarkdownRender22 components={{23 code({ className, children, ...props }) {24 const match = /language-(\w+)/.exec(className || "");25 return match ? (26 <CodeBlock27 {...props}28 lang={"tsx"}29 theme={30 theme == "dark"31 ? "github-dark-default"32 : "github-light-default"33 }34 className={cn("not-prose")}35 >36 {String(children).replace(/\n$/, "")}37 </CodeBlock>38 ) : (39 <code className={className} {...props}>40 {children}41 </code>42 );43 },44 }}45 remarkPlugins={[remarkGfm]}46 >47 {String(children)}48 </MarkdownRender>49 </div>50 );51}
Files it writes
More from shadcn-collections
All 24 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Audio Visualizeraudio-visualizer | shadcn-collections | Components | Free | 4 deps | |
| Calendarcalendar | shadcn-collections | Components | Free | no deps | |
| Chat Containerchat-container | shadcn-collections | Components | Free | no deps | |
| Code Editorcode-editor | shadcn-collections | Components | Free | no deps | |
| Code Blockcodeblock | shadcn-collections | Components | Free | 1 dep | |
| Command Blockcommand-block | shadcn-collections | Components | Free | no deps | |
| Command Tabscommand-tabs | shadcn-collections | Components | Free | no deps | |
| Emailemail | shadcn-collections | Components | Free | no deps |
