mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 03:18:53 +00:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
// This code isn't actually used by the client
|
|
// It exists so we can visually see the syntax highlighter in action
|
|
import { DraculaSyntaxHighlighter } from "./JavaScriptSyntaxHighlighter";
|
|
import "./JavaScriptSyntaxHighlighter.css";
|
|
|
|
interface SyntaxHighlighterProps {
|
|
code: string;
|
|
language?: string;
|
|
showLineNumbers?: boolean;
|
|
redactSensitiveInformation?: boolean;
|
|
className?: string;
|
|
style?: React.CSSProperties;
|
|
}
|
|
|
|
export const SyntaxHighlighter: React.FC<SyntaxHighlighterProps> = ({
|
|
code,
|
|
language = "javascript",
|
|
showLineNumbers = true,
|
|
redactSensitiveInformation = false,
|
|
className = "",
|
|
style = {},
|
|
}) => {
|
|
// Create a new instance of the highlighter
|
|
const highlighter = new DraculaSyntaxHighlighter(code, {
|
|
enableColors: true,
|
|
redactSensitiveInformation,
|
|
languageName: language,
|
|
showLineNumbers,
|
|
});
|
|
|
|
// Get the highlighted HTML
|
|
const highlightedCode = highlighter.highlight();
|
|
|
|
return (
|
|
<div
|
|
className={`dracula-syntax-highlighter ${className}`}
|
|
style={style}
|
|
dangerouslySetInnerHTML={{ __html: highlightedCode }}
|
|
/>
|
|
);
|
|
};
|