Skip to content

XCode — 代码展示

带语法高亮的代码展示组件。内置自研轻量语法高亮(纯手写、零依赖,打包在 XCode/highlight.js 内,无需 npm install)。区分两个维度:

  • 语言标签配色:JS / Vue / Bash / JSON … 不同语言不同标签色。
  • 语义状态徽章default / success / warning / error / info 五种状态,适合标记「正确示例 / 错误示例 / 提示」。

另自带行号、一键复制、可折叠能力,适配浅色 / 暗色主题。

实时演示

avg.jsJAVASCRIPT 代码
1// 计算平均值
2const avg = (list) =>
3 list.reduce((a, b) => a + b, 0) / list.length
4
5console.log(avg([1, 2, 3, 4])) // 2.5
avg.jsJAVASCRIPT 推荐写法
1// 计算平均值
2const avg = (list) =>
3 list.reduce((a, b) => a + b, 0) / list.length
4
5console.log(avg([1, 2, 3, 4])) // 2.5
avg.jsJAVASCRIPT 警告
1// 计算平均值
2const avg = (list) =>
3 list.reduce((a, b) => a + b, 0) / list.length
4
5console.log(avg([1, 2, 3, 4])) // 2.5
vue
<XCode title="avg.js" language="javascript" :code="jsCode" />
<XCode title="avg.js" language="javascript" :code="jsCode" status="success" statusText="推荐写法" />

Props

属性类型默认值说明
codeString''要展示的代码原文(必填)
languageString'javascript'高亮语言(同时作为标签):js/ts/html/vue/svg/css/scss/json/bash/shell/sh/console/md/py/yaml 及别名
titleString''标题栏文件名(不传不显示)
statusString'default'语义状态:default/success/warning/error/info
statusTextString''状态徽章自定义文案
showLineNumbersBooleantrue是否显示行号
collapsibleBooleanfalse是否可折叠(仅预览前 previewLines 行)
previewLinesNumber8折叠态下预览行数
maxHeightString'420px'代码体最大高度(超出滚动)
copyableBooleantrue是否显示复制按钮

v-model

名称类型说明
collapsedBoolean折叠状态(v-model:collapsed

状态说明

status颜色默认文案适用场景
default#909399代码普通示例
success绿 #2ba471成功推荐写法、正确示例
warning#e6a23c警告注意事项、已废弃用法
error#f56c6c错误禁止写法、报错示例
info#409eff提示补充说明

注意事项

  • 高亮由组件自带的 XCode/highlight.js + XCode/highlight.css 提供,拷贝整个 XCode/ 文件夹即可使用,样式自洽、无 CSS 缺失,也不依赖应用外壳变量或 UI 库。
  • 内置语言:javascript/ts/xml(html,vue,svg)/css/scss/json/bash(sh,shell,zsh,console)/markdown(md)/python(py)/yaml(yml),未知语言自动回退为纯文本转义。
  • 若要扩展语言,在 XCode/highlight.js 新增词法规则并挂到 highlightCodeswitch;换配色改 XCode/highlight.css

基于 VitePress + Vue 3 构建