跳转到内容

File Tree

npm versionnpm monthly downloadsnpm sizenpm license

文件树展示插件,用于在 Markdown 中渲染文件目录结构。

安装

sh
pnpm add vitepress-plugin-file-tree
sh
npm install vitepress-plugin-file-tree
sh
bun add vitepress-plugin-file-tree
sh
deno add vitepress-plugin-file-tree
sh
yarn add vitepress-plugin-file-tree

使用

vitepress-tuck 模式 推荐

.vitepress/config.ts
ts
import { defineConfig } from 'vitepress-tuck'
import fileTree from 'vitepress-plugin-file-tree'

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

查看 vitepress-tuck 了解更多

传统模式

.vitepress/config.ts
ts
import { defineConfig } from 'vitepress'
import { fileTreeMarkdownPlugin } from 'vitepress-plugin-file-tree'

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

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

语法

使用 ::: file-tree 容器,通过缩进表示文件层级:

md
::: file-tree title="项目结构"

- src/
  - components/
    - Button.vue
    - Nav.vue
  - index.ts
- package.json
- tsconfig.json

:::

节点标注

每个节点可以添加特殊标注:

语法说明
**文件名**高亮聚焦该文件
-- 文件名标记为删除
++ 文件名标记为新增
文件名 # 注释添加注释
folder/标记为文件夹, 并折叠
省略标记
md
::: file-tree title="变更的文件"

- src/
  - -- old-file.ts
  - ++ new-file.ts
  - **main.ts** # 核心入口
  -

:::

示例

md
::: file-tree

- docs
  - .vitepress
    - ++ config.ts
  - -- page1.md
  - index.md
- theme  # 一个 **主题** 目录
  - client
    - components
      - **Navbar.vue**
    - composables
      - useNavbar.ts
    - styles
      - navbar.css
    - config.ts
  - node/
- package.json
- pnpm-lock.yaml
- .gitignore
- README.md
-
:::

docs

.vitepress

config.ts

page1.md

index.md

theme# 一个 主题 目录

client

components

Navbar.vue

composables

useNavbar.ts

styles

navbar.css

config.ts

node

package.json

pnpm-lock.yaml

.gitignore

README.md

基于 MIT 许可发布