Skip to content

Commit 6b2c494

Browse files
committed
fix: add lineNumbers property to shiki client component
1 parent 7d420bb commit 6b2c494

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

  • apps/website/src/components/code-block/client

apps/website/src/components/code-block/client/shiki.tsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ import { highlight, Themes, type Languages } from "@/utils/shiki/highlight";
88
interface CodeblockClientShikiProps extends ComponentProps<"div"> {
99
code: string;
1010
language?: Languages;
11+
lineNumbers?: boolean;
1112
}
1213

1314
const CodeblockShiki = ({
1415
code,
1516
language = "tsx",
17+
lineNumbers = false,
1618
className,
1719
...props
1820
}: CodeblockClientShikiProps) => {
@@ -31,11 +33,22 @@ const CodeblockShiki = ({
3133
light: Themes.light,
3234
dark: Themes.dark,
3335
},
36+
transformers: [
37+
{
38+
name: "AddLineNumbers",
39+
pre(node) {
40+
if (lineNumbers) {
41+
const shikiStyles = node.properties.class;
42+
node.properties.class = `${shikiStyles} shiki-line-numbers`;
43+
}
44+
},
45+
},
46+
],
3447
});
3548
setHighlightedHtml(html);
3649
}
3750
void clientHighlight();
38-
}, [code, language]);
51+
}, [code, language, lineNumbers]);
3952

4053
const classNames = cn("w-full overflow-x-auto", className);
4154

0 commit comments

Comments
 (0)