react-shiki
Version:
Syntax highlighter component for react using shiki
39 lines (36 loc) • 1.91 kB
TypeScript
import { S as ShikiHighlighterProps, U as UseShikiHighlighter } from './component-B4tYZaD8.js';
export { E as Element, H as HighlighterOptions, L as Language, T as Theme, a as Themes, i as isInlineCode, r as rehypeInlineCodeProperty } from './component-B4tYZaD8.js';
export { createHighlighterCore } from 'shiki/core';
export { createOnigurumaEngine } from 'shiki/engine/oniguruma';
export { createJavaScriptRegexEngine } from 'shiki/engine/javascript';
import 'shiki';
import 'react';
import 'hast';
/**
* A React hook that provides syntax highlighting using Shiki with a custom highlighter.
* Requires a highlighter to be provided in options for minimal bundle size.
*
* @example
* ```ts
* import { createHighlighterCore, createOnigurumaEngine } from 'react-shiki/core';
*
* const highlighter = await createHighlighterCore({
* themes: [import('@shikijs/themes/nord')],
* langs: [import('@shikijs/langs/typescript')],
* engine: createOnigurumaEngine(import('shiki/wasm'))
* });
*
* const code = useShikiHighlighter(code, 'typescript', 'nord', { highlighter });
* ```
*
* For plug-and-play usage, consider:
* - `react-shiki` for full shiki bundle (~6.4MB minified, 1.2MB gzipped)
* - `react-shiki/web` for smaller shiki web bundle (~3.8MB minified, 695KB gzipped)
*/
declare const useShikiHighlighter: UseShikiHighlighter;
/**
* ShikiHighlighter component using a custom highlighter.
* Requires a highlighter to be provided.
*/
declare const ShikiHighlighter: ({ language, theme, delay, transformers, defaultColor, cssVariablePrefix, addDefaultStyles, style, langStyle, className, langClassName, showLanguage, showLineNumbers, startingLineNumber, children: code, as: Element, customLanguages, ...shikiOptions }: ShikiHighlighterProps) => React.ReactElement;
export { ShikiHighlighter, ShikiHighlighterProps, UseShikiHighlighter, ShikiHighlighter as default, useShikiHighlighter };