--- localeCode: zh-CN order: 28 category: Plus title: CodeHighlight 代码高亮 icon: doc-codehighlight dir: column brief: 根据语法高亮页面中的代码块 --- ## 使用场景 Semi 代码高亮组件基于 prismjs 封装,支持297 种编程语言的高亮(已自动配置 `JavaScript` `CSS` `类 C` `html` `svg` 等,其他语言需要手动引入),同时具有高扩展性和丰富的插件生态。 需要展示代码片段时推荐使用 CodeHighlight 组件 ## 代码演示 ### 如何引入 CodeHighlight 从 v2.62.0 开始支持 ```jsx import { CodeHighlight } from '@douyinfe/semi-ui'; ``` ### 基本用法 向 `code` props 传入代码纯文本,并在 `language` 传入编程语言名称。支持的编程语言和对应名称在 [Prismjs 官网](https://prismjs.com/#supported-languages) 查看 ```jsx live=true dir=column import { CodeHighlight } from '@douyinfe/semi-ui'; function Demo() { return { const handleClick = ()=>{ alert("Click") } return
test
}` }/>; } ``` **CSS** ```jsx live=true dir=column import { CodeHighlight } from '@douyinfe/semi-ui'; function Demo() { return ; } ``` ### 支持其他语言 支持 297 种语言,除去 `JavaScript` `CSS` `类 C` `html` `svg` 外,支持其他语言需要手动引入配置。 例如,高亮用于编写 GTK 程序前端 UI 的 Vala 语言,需要引入 `prism-vala.js` ```javascript import "prismjs/components/prism-vala.js" ``` ```jsx live=true dir="column" import { CodeHighlight } from '@douyinfe/semi-ui'; import "prismjs/components/prism-vala.js"; function Demo() { return ; } ``` ### 自定义主题 设置 `defaultTheme={false}` 关闭默认主题,然后手动将需要的主题的 css 文件拷贝并放入项目中引入即可。 一些主题可在 node_modules 内 prismjs/themes 下找到,你也可以在网上搜索其他中意的主题。 ### API | 属性 | 说明 | 类型 | 默认值 | |-----------|---------------------------|--------|------| | className | 类名 | string | - | | code | 代码纯文本 | string | - | | defaultTheme | 是否使用默认主题,添加自己的主题时设置 false | bool | true | | language | 语言类型 | string | - | |lineNumber | 是否开启行数显示 | boolean | true | | style | 样式 | CSSProperties | - | ## 设计变量