marked-react
Version:
Render Markdown as React components
69 lines (68 loc) • 3.57 kB
text/typescript
import * as react0 from "react";
import { ReactElement, ReactNode } from "react";
import { Marked, MarkedOptions, Token } from "marked";
//#region src/ReactRenderer.d.ts
type HeadingLevels = 1 | 2 | 3 | 4 | 5 | 6;
interface TableFlags {
header?: boolean;
align?: 'center' | 'left' | 'right' | null;
}
type CustomReactRenderer = Partial<ReactRenderer>;
interface ReactRendererOptions {
baseURL?: string;
openLinksInNewTab?: boolean;
langPrefix?: string;
renderer?: CustomReactRenderer;
}
declare class ReactRenderer {
#private;
elIdList: number[];
constructor(options?: ReactRendererOptions);
get elementId(): string;
heading(children: ReactNode, level: HeadingLevels): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
paragraph(children: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
link(href: string, text: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
image(src: string, alt: string, title?: string | null): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
codespan(code: ReactNode, lang?: string | null): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
code(code: ReactNode, lang: string | undefined): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
blockquote(children: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
list(children: ReactNode, ordered: boolean, start: number | undefined): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
listItem(children: ReactNode[]): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
checkbox(checked: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
table(children: ReactNode[]): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
tableHeader(children: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
tableBody(children: ReactNode[]): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
tableRow(children: ReactNode[]): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
tableCell(children: ReactNode[], flags: TableFlags): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
strong(children: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
em(children: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
del(children: ReactNode): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
text(text: ReactNode): ReactNode;
html(html: ReactNode): ReactNode;
hr(): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
br(): ReactElement<unknown, string | react0.JSXElementConstructor<any>>;
}
//#endregion
//#region src/Markdown.d.ts
type LexerOptions = Pick<MarkedOptions, 'breaks' | 'gfm'>;
interface MarkdownProps extends ReactRendererOptions, LexerOptions {
value?: string;
children?: string;
isInline?: boolean;
instance?: Marked;
}
declare const Markdown: (props: MarkdownProps) => react0.FunctionComponentElement<react0.FragmentProps>;
//#endregion
//#region src/ReactParser.d.ts
interface ReactParserOptions {
renderer: ReactRenderer;
}
declare class ReactParser {
renderer: ReactRenderer;
constructor(options: ReactParserOptions);
parse(tokens: Token[]): ReactNode[];
parseInline(tokens?: Token[]): ReactNode[];
}
//#endregion
export { ReactParser, ReactRenderer, Markdown as default };
//# sourceMappingURL=index.d.cts.map