@readme/markdown
Version:
ReadMe's React-based Markdown parser
24 lines (23 loc) • 1.49 kB
TypeScript
import type { GlossaryTerm } from '../../../contexts/GlossaryTerms';
import type { CustomComponents, IndexableElements, RMDXModule, TocList, Variables } from '../../../types';
import React from 'react';
export interface RenderOpts {
baseUrl?: string;
components?: CustomComponents;
copyButtons?: boolean;
imports?: Record<string, unknown>;
terms?: GlossaryTerm[];
theme?: 'dark' | 'light';
useTailwind?: boolean;
variables?: Variables;
}
/** Flatten CustomComponents into a component map for rehype-react */
export declare function exportComponentsForRehype(components: CustomComponents): Record<string, React.ComponentType>;
/** Create a rehype-react processor */
export declare function createRehypeReactProcessor(components: Record<string, React.ComponentType>): import("unified").Processor<undefined, undefined, undefined, undefined, undefined>;
/** Create a TOC React component from headings */
export declare function createTocComponent(tocHast: TocList): React.FC;
/** Create the default wrapper component with contexts */
export declare function createDefaultComponent(content: React.ReactNode, opts: Pick<RenderOpts, 'baseUrl' | 'copyButtons' | 'terms' | 'theme' | 'variables'>): React.FC;
/** Build the RMDXModule result object */
export declare function buildRMDXModule(content: React.ReactNode, headings: IndexableElements[], tocHast: TocList | null, opts: Pick<RenderOpts, 'baseUrl' | 'copyButtons' | 'terms' | 'theme' | 'variables'>): RMDXModule;