609 字
3 分钟
页面浏览--访问次数--
代码折叠与复制

为了避免冗长的样板代码或超长配置文件占据过多版面,Shirone 提供了代码折叠行指令与一键复制功能。

代码折叠(collapse)#

在元数据中使用 collapse={起始行-结束行} 指定默认折叠的代码范围:

```typescript collapse={4-8} title="长配置文件示例"
import { defineUserConfig } from 'astro/config';
export default defineUserConfig({
// 折叠部分开始
site: 'https://shirone.mysqil.com',
base: '/',
trailingSlash: 'always',
output: 'static',
// 折叠部分结束
integrations: [],
});
```

渲染效果:

长配置文件示例
import { defineUserConfig } from 'astro/config';
export default defineUserConfig({
5 collapsed lines
// 折叠部分开始
site: 'https://shirone.mysqil.com',
base: '/',
trailingSlash: 'always',
output: 'static',
// 折叠部分结束
integrations: [],
});

被折叠的行在初次加载时显示为「展开 N 行」的交互按钮,读者点击后平滑展开完整内容。

多个折叠区间#

collapse 支持同时传入多段范围,把不重要的区块分别收起:

```yaml collapse={1-3,9-11} title="config/site.yaml"
# 折叠区间一:顶部注释
# 只写想改的键,其余保持主题默认值
# 升级主题后新默认值会自动生效
site: https://www.example.com/
title: 我的博客
subtitle: 一个神奇的博客
lang: zh_CN
# 折叠区间二:页脚
# 这里放备案信息与统计代码
# 可以保持折叠状态
```

渲染效果:

config/site.yaml
3 collapsed lines
# 折叠区间一:顶部注释
# 只写想改的键,其余保持主题默认值
# 升级主题后新默认值会自动生效
site: https://www.example.com/
title: 我的博客
subtitle: 一个神奇的博客
lang: zh_CN
3 collapsed lines
# 折叠区间二:页脚
# 这里放备案信息与统计代码
# 可以保持折叠状态

一键复制代码#

所有渲染的代码块在右上角均内置了优雅的一键复制按钮:

  • 点击后自动将代码原始内容写入系统剪贴板。
  • 复制成功后呈现微动效提示。
  • 保证复制出的文本是纯净代码,绝不包含行号或标记字符。

即使在折叠状态下,复制按钮给出的仍然是完整的原始代码,而不是屏幕上可见的部分。

折叠与其它特性的组合#

需求写法
折叠中间区块collapse={4-8}
折叠多段collapse={1-3,9-11}
折叠 + 行号collapse={4-8} showLineNumbers
折叠 + 文件名collapse={4-8} title="config/site.yaml"

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

代码折叠与复制
https://www.ariels.xyz/posts/codeblock-collapse/
作者
Ariel
发布于
2026-10-09
许可协议
CC BY-NC-ND 4.0

分享文章

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

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...