跳转到内容

Collapse

npm versionnpm monthly downloadsnpm sizenpm license

折叠面板容器插件,用于在 Markdown 中创建可折叠的内容区块,支持手风琴模式、卡片样式和单项展开控制。

安装

sh
pnpm add vitepress-plugin-collapse
sh
npm install vitepress-plugin-collapse
sh
bun add vitepress-plugin-collapse
sh
deno add vitepress-plugin-collapse
sh
yarn add vitepress-plugin-collapse

使用

vitepress-tuck 模式 推荐

.vitepress/config.ts
ts
import { defineConfig } from 'vitepress-tuck'
import collapse from 'vitepress-plugin-collapse'

export default defineConfig({
  plugins: [collapse()],
})

查看 vitepress-tuck 了解更多

传统模式

.vitepress/config.ts
ts
import { defineConfig } from 'vitepress'
import { collapseMarkdownPlugin } from 'vitepress-plugin-collapse'

export default defineConfig({
  markdown: {
    config: (md) => {
      md.use(collapseMarkdownPlugin)
    },
  },
})
.vitepress/theme/index.ts
ts
import type { Theme } from 'vitepress'
import { enhanceAppWithCollapse } from 'vitepress-plugin-collapse/client'
import DefaultTheme from 'vitepress/theme'

export default {
  extends: DefaultTheme,
  enhanceApp(ctx) {
    enhanceAppWithCollapse(ctx)
  },
} satisfies Theme

语法

使用 ::: collapse 容器配合列表来创建可折叠区块。每个列表项为一个折叠面板: 第一行为标题,后续缩进内容为面板正文。

基础用法

md
::: collapse

- 标题 1

  内容 1

- 标题 2

  内容 2

:::

渲染结果:

手风琴模式

添加 accordion 启用手风琴模式 —— 同时只能展开一项,展开新项会自动收起其他项。 配合 expand 可在没有显式 :+ 标记时默认展开第一项。

md
::: collapse accordion expand

- 问题 1

  问题 1 的回答

- 问题 2

  问题 2 的回答

:::

渲染结果:

问题 1

问题 1 的回答

卡片样式

添加 card 以带边框、圆角的卡片样式渲染容器,可与 accordion 组合使用。

md
::: collapse accordion card

- 问题 1

  问题 1 的回答

- 问题 2

  问题 2 的回答

:::

渲染结果:

单项展开标记

在标题前添加 :+ 展开该项,或 :- 收起该项。手风琴模式下只有第一个 :+ 标记生效; 未添加标记的项将遵循容器的 expand 属性。

md
::: collapse

- :+ 默认展开

  内容

- :- 默认收起

  内容

- 无标记,遵循容器 expand 属性

  内容

:::

渲染结果:

默认展开

内容

容器属性

属性类型说明
accordionboolean启用手风琴模式(同时只能展开一项)
cardboolean使用卡片样式(带边框和圆角)
expandboolean默认展开状态

标记说明

标记说明
:+展开该项(手风琴模式下仅第一个生效)
:-收起该项

基于 MIT 许可发布