UNPKG

@humanspeak/svelte-markdown

Version:

Fast, customizable markdown renderer for Svelte with built-in caching, TypeScript support, and Svelte 5 runes

79 lines (78 loc) 2.75 kB
export { default as Slugger } from 'github-slugger'; export { Lexer, type MarkedOptions, type Token, type Tokens, type TokensList } from 'marked'; import { type HtmlRenderers } from '../renderers/html/index.js'; import type { Component } from 'svelte'; import type { SvelteMarkdownOptions } from '../types.js'; /** * Represents a Svelte component that can be used as a renderer. * Allows for flexible component types while maintaining type safety. * * @typedef {Component<any, any, any> | undefined | null} RendererComponent */ export type RendererComponent = Component<any, any, any> | undefined | null; /** * Comprehensive mapping of markdown elements to their renderer components. * Structured in categories for better organization and maintainability. * * Categories: * - HTML: Special renderer for HTML content * - Block elements: Major structural elements * - Table elements: Table-specific components * - Inline elements: Text-level components * - List variations: Specialized list item renderers * * @interface Renderers */ export type Renderers = { html: HtmlRenderers; rawtext: RendererComponent; escape: RendererComponent; heading: RendererComponent; paragraph: RendererComponent; blockquote: RendererComponent; code: RendererComponent; list: RendererComponent; listitem: RendererComponent; hr: RendererComponent; table: RendererComponent; tablehead: RendererComponent; tablebody: RendererComponent; tablerow: RendererComponent; tablecell: RendererComponent; text: RendererComponent; link: RendererComponent; image: RendererComponent; em: RendererComponent; strong: RendererComponent; codespan: RendererComponent; br: RendererComponent; del: RendererComponent; orderedlistitem: RendererComponent; unorderedlistitem: RendererComponent; }; /** * Default renderer configuration mapping markdown elements to Svelte components. * Provides out-of-the-box rendering capabilities while allowing for customization. * * Implementation notes: * - All components are lazy-loaded for better performance * - Null values indicate optional renderers * - Components are type-checked against the Renderers interface * * @const {Renderers} */ export declare const defaultRenderers: Renderers; /** * Default configuration options for the markdown parser. * Provides sensible defaults while allowing for customization. * * Notable defaults: * - GitHub Flavored Markdown enabled * - Header IDs generated automatically * - No syntax highlighting by default * - HTML sanitization disabled * - Standard markdown parsing rules * * @const {SvelteMarkdownOptions} */ export declare const defaultOptions: SvelteMarkdownOptions;