476 字
2 分钟
页面浏览--访问次数--
语法高亮与行号

Shirone 深度集成了 Expressive Code 引擎,提供基于 Shiki 的专业级静态语法着色与行号管理。

基础语法高亮#

在代码块三个反引号后指定编程语言标识符:

```typescript
interface UserProfile {
name: string;
avatar: string;
themeColor: number;
}
```

渲染效果:

interface UserProfile {
name: string;
avatar: string;
themeColor: number;
}

语言标识符决定着色规则,常见取值包括 ts、js、astro、svelte、bash、yaml、json、markdown、diff。不写标识符时按纯文本渲染。

显示行号(showLineNumbers)#

通过在元数据中添加 showLineNumbers 属性强制开启行号显示:

```rust showLineNumbers
fn main() {
println!("Hello, Shirone!");
}
```

渲染效果:

fn main() {
println!("Hello, Shirone!");
}

行号标记在服务端生成,复制代码时不会把行号带进剪贴板。

与其它元数据组合#

代码围栏首行的元数据可以叠加书写,顺序不影响结果:

```typescript title="src/config.ts" showLineNumbers {2,5} collapse={7-9}
export const config = {
themeColor: 315,
analytics: false,
comments: true,
trailingSlash: 'always',
// 以下是自动生成的默认区块
base: '/',
output: 'static',
prefetch: true,
};
```

渲染效果:

src/config.ts
export const config = {
themeColor: 315,
analytics: false,
comments: true,
trailingSlash: 'always',
3 collapsed lines
// 以下是自动生成的默认区块
base: '/',
output: 'static',
prefetch: true,
};
元数据作用详见
title="..."代码块顶栏文件名标题与文件名
showLineNumbers显示行号本文
{2,5}高亮指定行高亮与差异标记
collapse={7-9}折叠行范围代码折叠与复制

特性与优势#

  • 零客户端运行时:所有语法高亮与行号标记在服务端完成静态预渲染,不会发生客户端样式闪烁。
  • 自适应明暗配色:代码块根据当前站点的 M3E 配色调色板与暗色模式自动调整语法前景色与背景对比度。

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

语法高亮与行号
https://www.ariels.xyz/posts/codeblock-highlight/
作者
Ariel
发布于
2026-10-06
许可协议
CC BY-NC-ND 4.0

分享文章

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

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...