Skip to content

Code 代码块

代码块组件(自研正则 token 高亮,零第三方高亮引擎),支持常见语言基础着色、行号与复制按钮。

JavaScript

JavaScript 高亮

关键字 / 字符串 / 注释 / 数字 / 函数 / 运算符基础着色。

TypeScript

TypeScript 高亮

HTML

HTML 高亮

标签名与属性名分别着色。

CSS

CSS 高亮

JSON

JSON 高亮

行号 + 复制

显示行号

show-line-number 显示行号栏;右上角复制按钮(copyable="false" 可关闭),点击复制源码并派发 oas-copy 事件。

复制按钮开关

copyable 复制按钮

copyable 控制右上角复制按钮(默认 true):设为 false 隐藏按钮;点击按钮将源码写入剪贴板并短暂显示「已复制」。

未知语言

未知语言按纯文本渲染

语言未知时按纯文本渲染(已转义),不报错。

API

属性

属性说明类型默认值
code源代码原文string
copyable显示复制按钮stringtrue
language语言:js/ts/html/css/json,未知按纯文本string
show-line-number显示行号栏boolean

事件

事件说明
oas-copy复制成功,detail: { text }
oas-copy-error复制失败,detail: { text }

引擎选型(架构决策)

自研正则 token 高亮,不引入第三方高亮库

  1. 零依赖核心卖点:运行时零第三方依赖;自研正则高亮不引入任何依赖。
  2. 覆盖主流语言基础着色:js/ts/html/css/json 的关键字/字符串/注释/数字/函数/标签/属性着色覆盖大多数文档场景;精确的语法级高亮(多行状态机、上下文感知)属后续增强,届时再评估。
  3. 安全:先转义 HTML 再着色,杜绝注入;未知语言纯文本渲染不报错。
  4. 实现为单遍组合正则(互斥捕获组),一次 replace 完成,无二次处理破坏转义实体的问题。