UNPKG

@humanspeak/svelte-markdown

Version:

Markdown and HTML renderer for Svelte 5 — built for rendering streaming AI agent output from Claude Code, ChatGPT, and agentic workflows. XSS-safe defaults, streaming-aware sanitization, token caching, TypeScript types, and Svelte 5 runes.

71 lines (70 loc) 3.55 kB
import { defaultRenderers } from './markdown-parser.js'; import type { Snippet } from 'svelte'; export type AnySnippet = Snippet<[Record<string, unknown>]>; type RestProps = Record<string, unknown>; /** * Merges caller renderer overrides with the built-in renderer map. * * @param renderers Partial renderer overrides from component props. * @returns Renderer map with default markdown and HTML renderers preserved. */ export declare const buildCombinedRenderers: (renderers: Partial<typeof defaultRenderers>) => { html: import("../index.js").HtmlRenderers; rawtext: import("./markdown-parser.js").RendererComponent; escape: import("./markdown-parser.js").RendererComponent; heading: import("./markdown-parser.js").RendererComponent; paragraph: import("./markdown-parser.js").RendererComponent; blockquote: import("./markdown-parser.js").RendererComponent; code: import("./markdown-parser.js").RendererComponent; list: import("./markdown-parser.js").RendererComponent; listitem: import("./markdown-parser.js").RendererComponent; hr: import("./markdown-parser.js").RendererComponent; table: import("./markdown-parser.js").RendererComponent; tablehead: import("./markdown-parser.js").RendererComponent; tablebody: import("./markdown-parser.js").RendererComponent; tablerow: import("./markdown-parser.js").RendererComponent; tablecell: import("./markdown-parser.js").RendererComponent; text: import("./markdown-parser.js").RendererComponent; link: import("./markdown-parser.js").RendererComponent; image: import("./markdown-parser.js").RendererComponent; em: import("./markdown-parser.js").RendererComponent; strong: import("./markdown-parser.js").RendererComponent; codespan: import("./markdown-parser.js").RendererComponent; br: import("./markdown-parser.js").RendererComponent; del: import("./markdown-parser.js").RendererComponent; orderedlistitem: import("./markdown-parser.js").RendererComponent; unorderedlistitem: import("./markdown-parser.js").RendererComponent; }; /** * Gets renderer keys recognized by the component. * * @param extensionTokenNames Custom token names declared by Marked extensions. * @returns Built-in markdown renderer keys followed by extension token names. */ export declare const getAllRendererKeys: (extensionTokenNames: string[]) => string[]; /** * Extracts markdown snippet overrides from rest props. * * @param rest Extra component props after known SvelteMarkdown props are removed. * @param allRendererKeys Built-in and extension renderer keys to match. * @returns Snippet overrides keyed by markdown token type. */ export declare const getSnippetOverrides: (rest: RestProps, allRendererKeys: string[]) => Record<string, AnySnippet>; /** * Extracts HTML snippet overrides from rest props. * * @param rest Extra component props after known SvelteMarkdown props are removed. * @returns HTML snippet overrides keyed by tag name without the `html_` prefix. */ export declare const getHtmlSnippetOverrides: (rest: RestProps) => Record<string, AnySnippet>; /** * Removes snippet override props from the props forwarded to Parser. * * @param rest Extra component props after known SvelteMarkdown props are removed. * @param allRendererKeys Built-in and extension renderer keys to exclude. * @returns Props that should pass through to the rendered markdown tree. */ export declare const getPassThroughProps: (rest: RestProps, allRendererKeys: string[]) => { [k: string]: unknown; }; export {};