Components

CodeBlock 代码块

带编程语言图标、文件标识、复制操作、行号和自动换行的深色代码展示容器。

编程语言图标显示

默认根据 language 或 filename 自动匹配内置编程语言图标;亦可显式关闭(icon: false)或自定义传入图标源。

StatusCard.vuevue
<template>
  <Card>
    <p>部署状态正常</p>
  </Card>
</template>
config.tsts
export default defineConfig({
  endpoint: 'https://api.example.com/v1/projects/production',
  retry: 3
})
deploy.shbash
#!/usr/bin/env bash
set -euo pipefail
bun run build
docker build -t app:latest .
output.loglog
[10:12:01] Building application
[10:12:04] Validating types
[10:12:08] Uploading assets
[10:12:12] Deploying to production
[10:12:16] Deployment complete
<!-- 自动根据 language 或 filename 渲染对应语言图标 -->
<CodeBlock :code="componentCode" language="vue" filename="StatusCard.vue" />
<CodeBlock :code="configCode" language="ts" filename="config.ts" />
<CodeBlock :code="shellCode" language="bash" filename="deploy.sh" />

<!-- 禁用图标,回退至圆点指示器 -->
<CodeBlock :code="logCode" language="log" filename="output.log" :icon="false" />

行号与换行

长内容可保留行号,并按需自动换行。

config.tsts
export default defineConfig({
  endpoint: 'https://api.example.com/v1/projects/production',
  retry: 3
})
<CodeBlock
  :code="configCode"
  language="ts"
  filename="config.ts"
  show-line-numbers
  wrap
/>

受限高度

使用 max-height 为长日志保留滚动区域。

deploy.loglog
[10:12:01] Building application
[10:12:04] Validating types
[10:12:08] Uploading assets
[10:12:12] Deploying to production
[10:12:16] Deployment complete
<CodeBlock
  :code="logCode"
  language="log"
  filename="deploy.log"
  show-line-numbers
  max-height="12rem"
/>

可折叠

开启 collapsible 后可点击标题栏展开 / 收起,折叠状态可通过 v-model:collapsed 受控。收起时不会触发高亮。

<CodeBlock
  v-model:collapsed="collapsed"
  :code="componentCode"
  language="vue"
  filename="StatusCard.vue"
  collapsible
/>

API 参考

属性类型默认值说明
codestring''要展示和复制的源代码。
languagestring''语言标识,用于展示、高亮以及默认匹配语言图标。
filenamestring''标题栏中的文件名,其扩展名亦可参与语言图标自动匹配。
iconIconSource | booleanundefined编程语言图标。true 强制显示;false 禁用显示;支持自定义传入 IconSource。缺省时自动尝试匹配。
copyablebooleantrue是否显示复制按钮。
showLineNumbersbooleanfalse是否显示行号。
wrapbooleanfalse是否自动换行。
maxHeightstring''代码区域最大高度,超出时滚动。
collapsiblebooleanfalse是否可通过标题栏折叠代码区域。
v-model:collapsedbooleanfalse折叠状态,仅在 collapsible 时生效;不绑定时组件自行管理。