Semi 代码高亮组件使用了 prismjs,支持297 种编程语言的高亮(已自动配置 JavaScript CSS 类 C html svg 等,其他语言需要手动引入),同时具有高扩展性和丰富的插件生态。

code props 传入代码纯文本,并在 language 传入编程语言名称。支持的编程语言和对应名称在 Prismjs 官网 查看

代码演示

如何引入

CodeHighlight 从 v2.62.0 开始支持

jsx
import { CodeHighlight } from '@kousum/semi-ui-vue';

基本用法

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

CSS

demoApp.vue
demo.tsx
tsconfig.json
Import Map
Show Error
Auto Save

支持其他语言

支持 297 种语言,除去 JavaScript CSS 类 C html svg 外,支持其他语言需要手动引入配置。

例如,高亮用于编写 GTK 程序前端 UI 的 Vala 语言,需要引入 prism-vala.js

javascript
import "prismjs/components/prism-vala.js"
jsx
import { CodeHighlight } from '@kousum/semi-ui-vue';
import "prismjs/components/prism-vala.js"

function Demo() {
    return <CodeHighlight
        language={"vala"} 
        code={
        `public class ExampleApp : Gtk.Application {
    public ExampleApp () {
        Object (application_id: "com.example.App");
    }

    public override void activate () {
        var win = new Gtk.ApplicationWindow (this);

        var btn = new Gtk.Button.with_label ("Hello World");
        btn.clicked.connect (win.close);

        win.child = btn;
        win.present ();
    }

    public static int main (string[] args) {
        var app = new ExampleApp ();
        return app.run (args);
    }
}
`
    }/>
}
export default Demo

自定义主题

设置 defaultTheme={false} 关闭默认主题,然后手动将需要的主题的 css 文件拷贝并放入项目中引入即可。 一些主题可在 node_modules 内 prismjs/themes 下找到,你也可以在网上搜索其他中意的主题。

API

属性说明类型默认值
className类名string-
code代码纯文本string-
defaultTheme是否使用默认主题,添加自己的主题时设置 falsebooltrue
language语言类型string-
lineNumber是否开启行数显示booleantrue
style样式CSSProperties-

设计变量