@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
JavaScript
/**
* 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';