Docs
Markdown block
Markdown block
The markdown block displays markdown content in the LLM output. The markdown block is designed to be used as the fallback block in useLLMOutput which is used if no other block matches.
The markdown block hides markdown syntax from users, only showing one visible character at a time.
Installation
pnpm add llm-ui @llm-ui/markdown react-markdown remark-gfmQuick start
import { markdownLookBack } from "@llm-ui/markdown";
import {
LLMOutputFallbackBlock,
useLLMOutput,
type LLMOutputComponent,
} from "llm-ui/core";
import { useStreamExample } from "llm-ui/examples";
import ReactMarkdown, { type Options } from "react-markdown";
import remarkGfm from "remark-gfm";
// Customize this component with your own styling
const MarkdownComponent: LLMOutputComponent<Options> = ({
blockMatch,
...props
}) => {
const markdown = blockMatch.output;
return (
<ReactMarkdown
{...props}
remarkPlugins={[...(props.remarkPlugins ?? []), remarkGfm]}
>
{markdown}
</ReactMarkdown>
);
};
const example = `
## Example
**Hello llm-ui!** this is [markdown](https://markdownguide.org)
`;
const Example = () => {
const { isStreamFinished, loopIndex, output } = useStreamExample(example);
const { blockMatches } = useLLMOutput({
llmOutput: output,
blocks: [],
fallbackBlock: {
component: MarkdownComponent,
lookBack: markdownLookBack,
},
isStreamFinished,
loopIndex, // only needed for useStreamExample
});
return (
<div>
{blockMatches.map((blockMatch, index) => {
const Component = blockMatch.block.component;
return <Component key={index} blockMatch={blockMatch} />;
})}
</div>
);
};
# Example **Hello llm-ui!** this is [markdown](https://markdownguide.org)
0.3x
Usage with throttle
In order to hide markdown syntax from users, your throttle function must leave enough unrendered characters for the markdown block to parse and hide the syntax.
On This Page