510 字
3 分钟
页面浏览--访问次数--
高亮与差异标记

Shirone 支持对代码块中的特定行进行行高亮、新增行(insert)与删除行(delete)的视觉差异标记。

行高亮(行号范围)#

在代码围栏首行通过 {1,3-5} 指定需要高亮的行号:

```typescript {2,4-5} title="src/index.ts"
function setup() {
const isEnabled = true; // 第 2 行高亮
const count = 0;
console.log("初始化完成"); // 第 4-5 行高亮
return count;
}
```

渲染效果:

src/index.ts
function setup() {
const isEnabled = true; // 第 2 行高亮
const count = 0;
console.log("初始化完成"); // 第 4-5 行高亮
return count;
}

行号表达式支持逗号分隔的离散行({2,7})与连字符区间({4-8}),两者可以混写。

差异标记(ins / del)#

使用 ins={...} 标记新增行(绿色背景),del={...} 标记删除行(红色背景):

```typescript ins={3} del={2} title="更新配置"
export const siteConfig = {
themeColor: 210, // 旧配置
themeColor: 315, // 新配置
};
```

渲染效果:

更新配置
export const siteConfig = {
themeColor: 210, // 旧配置
themeColor: 315, // 新配置
};

两个属性也可以同时传入多行,并与行高亮叠加使用:

```ts ins={4-5} del={1} {4} title="src/site.ts"
const themeColor = 210;
export const siteConfig = {
base: '/',
themeColor: 315,
trailingSlash: 'always',
};
```

渲染效果:

src/site.ts
const themeColor = 210;
export const siteConfig = {
base: '/',
themeColor: 315,
trailingSlash: 'always',
};

原生 Diff 代码块#

也可以直接使用 diff 语言标识并以 + 和 - 作为行首字符:

```diff title="git diff"
- const oldVersion = "1.0.0";
+ const newVersion = "2.0.0";
```

渲染效果:

git diff
const oldVersion = "1.0.0";
const newVersion = "2.0.0";

Diff 代码块完整保留标准 diff 语义,@@ 段落头、上下文行与 +/- 行都会被正确着色。

标记方式对照#

写法视觉结果适用场景
{2,4-5}中性行高亮背景强调阅读重点
ins={3}新增行配色展示新增代码
del={2}删除行配色展示被移除的代码
```diff完整 diff 着色展示 git diff 原始输出

第 22 篇,共 30 篇本文属于系列

高亮与差异标记
https://www.ariels.xyz/posts/codeblock-diff/
作者
Ariel
发布于
2026-10-08
许可协议
CC BY-NC-ND 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...