422 字
2 分钟
页面浏览--访问次数--
文件树

文件树组件用于展示项目的目录与文件结构,支持自动识别文件扩展名图标、目录层级折叠以及变更状态标注。

语法格式#

支持容器语法与代码围栏双语法。

容器语法#

::: file-tree{title="Shirone 目录结构"}
- src/
- config/
- siteConfig.ts
- sidebarConfig.ts
- content/
- posts/
- hello-world.md
- astro.config.mjs
- package.json
- pnpm-lock.yaml
:::

渲染效果:

::: file-tree{title=“Shirone 目录结构”}

  • src/
    • config/
      • siteConfig.ts
      • sidebarConfig.ts
    • content/
      • posts/
        • hello-world.md
    • astro.config.mjs
  • package.json
  • pnpm-lock.yaml :::

围栏代码块语法#

```file-tree title="构建输出"
dist/
├── assets/
│ ├── app.js
│ └── style.css
├── index.html
└── pagefind/
**渲染效果**:
```file-tree title="构建输出"
dist/
├── assets/
│ ├── app.js
│ └── style.css
├── index.html
└── pagefind/

变更状态与图标智能匹配#

在条目前添加符号即可标注差异状态:

::: file-tree{title="本次提交的改动"}
- src/
- content/
~ posts/
+ markdown-file-tree/
- legacy-notes.md
~ astro.config.mjs
+ src/utils/markdown-diff.ts
:::

渲染效果:

::: file-tree{title=“本次提交的改动”}

  • src/
    • content/ ~ posts/
      • markdown-file-tree/
      • legacy-notes.md ~ astro.config.mjs
    • src/utils/markdown-diff.ts :::
符号含义视觉表达
+新增新增状态指示色
-删除删除状态指示色
~修改修改状态指示色

渲染特性#

  • 扩展名识别:自动根据文件后缀(如 .ts、.json、.astro、.md、.css、.png)匹配对应的 Material / Devicon 图标。
  • 差异标记:支持在条目前添加 +(新增)、-(删除)、~(修改)等符号,自动生成带颜色的差异状态指示。
  • 原生折叠:包含子目录的节点默认支持可折叠展开交互。

与代码树的区别#

需求推荐组件
只看目录结构file-tree
目录 + 多文件源码并排查看代码树

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

文件树
https://www.ariels.xyz/posts/markdown-file-tree/
作者
Ariel
发布于
2026-10-01
许可协议
CC BY-NC-ND 4.0

分享文章

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

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

评论

正在加载评论...