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.47 kB
/** * Public API for `@humanspeak/svelte-markdown`. * * This module re-exports every symbol that consumers of the package can * import. Exports are organized into the following groups: * * - **Default export** — the main `SvelteMarkdown` component * - **Component helpers**`Html`, `Unsupported`, and `UnsupportedHTML` * - **Filter utilities** — allow/deny helpers for HTML tags and renderers * - **Constants**`defaultRenderers`, `rendererKeys`, `htmlRendererKeys` * - **Cache utilities**`MemoryCache`, `TokenCache`, `tokenCache` * - **Types**`HtmlRenderers`, `Renderers`, `RendererComponent`, * `SvelteMarkdownProps`, `SvelteMarkdownOptions`, `Token`, `TokensList` * * @see {@link https://markdown.svelte.page} — documentation site * @module @humanspeak/svelte-markdown */ import {} from './renderers/html/index.js'; import SvelteMarkdown from './SvelteMarkdown.svelte'; import { defaultRenderers } from './utils/markdown-parser.js'; /** The primary markdown rendering component. */ export default SvelteMarkdown; /** Default HTML tag-to-component map and the unsupported-tag placeholder. */ export { default as Html, UnsupportedHTML } from './renderers/html/index.js'; /** Placeholder component rendered for blocked markdown token types. */ export { Unsupported } from './renderers/index.js'; /** * Filter utilities for restricting which HTML tags are rendered. * * - `allowHtmlOnly` — allow *only* the listed tags * - `excludeHtmlOnly` — block specific tags, allow the rest * - `buildUnsupportedHTML` — block every HTML tag */ export { allowHtmlOnly, buildUnsupportedHTML, excludeHtmlOnly } from './utils/unsupportedHtmlRenderers.js'; /** * Filter utilities for restricting which markdown renderers are active. * * - `allowRenderersOnly` — allow *only* the listed renderers * - `excludeRenderersOnly` — block specific renderers, allow the rest * - `buildUnsupportedRenderers` — block every markdown renderer */ export { allowRenderersOnly, buildUnsupportedRenderers, excludeRenderersOnly } from './utils/unsupportedRenderers.js'; /** Built-in renderer map used when no custom `renderers` prop is provided. */ export { defaultRenderers }; /** * Canonical key lists enumerating every valid renderer/HTML tag name. * * - `rendererKeys` — markdown renderer keys (excludes `html`) * - `htmlRendererKeys` — supported HTML tag names */ export { htmlRendererKeysInternal as htmlRendererKeys, rendererKeysInternal as rendererKeys } from './utils/rendererKeys.js'; /** * Cache utilities for parsed markdown tokens. * * - `MemoryCache` — generic LRU cache * - `TokenCache` — LRU cache specialized for parsed token arrays * - `tokenCache` — shared singleton `TokenCache` instance */ export { MemoryCache } from './utils/cache.js'; export { IncrementalParser } from './utils/incremental-parser.js'; /** * URL sanitization utilities for XSS prevention. * * - `defaultSanitizeUrl` — protocol allowlist (http, https, mailto, tel, relative) * - `defaultSanitizeAttributes` — strips event handlers and sanitizes URL attributes * - `unsanitizedUrl` — passthrough (allows all URLs) * - `unsanitizedAttributes` — passthrough (allows all attributes) */ export { defaultSanitizeAttributes, defaultSanitizeUrl, unsanitizedAttributes, unsanitizedUrl } from './utils/sanitize.js'; export { TokenCache, tokenCache } from './utils/token-cache.js';