Skip to content

CodeBlock ​

独立代码块组件,带可选的语言标签头部、行号与长代码折叠。

代码演示 ​

带语言标签 ​

头部显示语言标签与复制按钮,点击复制按钮拷贝整段代码:

typescript

无语言标签 ​

不传 language 时隐藏语言标签(头部仍承载复制按钮),适合无需标注语言的短命令:

行号开 / 关 ​

showLineNumbers 开启逐行渲染,行号列在横向滚动时固定于左侧;点击按钮实时切换两种形态:

typescript
1 

折叠长代码 ​

collapsibleAfter 指定阈值行数:实际行数超过它时初始只显示前 N 行,底部提供「展开 / 收起」按钮,适合控制长输出占屏;0(默认)表示不折叠。流式输出期间(streaming 为 true)折叠被禁用——尾部行尚未定稿。行号与折叠可同时启用:

typescript
1 

API ​

Props ​

属性名类型默认值说明
codestring—代码内容(必填)
languagestring—语言标签(不传则隐藏语言标签,头部仍渲染)
streamingboolean—是否仍在流式输出;true 时合并 unstable token 让尾行可见,且禁用折叠
showLineNumbersbooleanfalse显示行号(逐行渲染,行号在横向滚动时固定左侧)
collapsibleAfternumber0超过该行数时折叠显示前 N 行并提供展开/收起按钮;0 = 不折叠

文案国际化 ​

折叠按钮文案(展开 / 收起)复用 @toimc/vue 的 aiChatI18n 字典 (markdown 包自身无独立字典),key 为 codeBlock.expand / codeBlock.collapse。 宿主切换语言或注入自定义文案的方式与其它组件一致 (setAiChatLocale / setLocaleMessage)。

CSS 变量 ​

变量名默认值说明
--ai-chat-color-code-bg主题令牌代码区域背景(行号列同色)
--ai-chat-color-code-header-bg主题令牌头部背景