To display the structure of a directory with file icons and collapsible sub-directories, use the <FileTree> component.
- astro.config.mjs an important file
- package.json
- README.md
- src
- components
- Header.astro
- …
- components
- pages/
Import
import { FileTree } from '@astrojs/starlight/components';
Usage
Display a file tree with file icons and collapsible sub-directories using the <FileTree> component.
Specify the structure of your files and directories with an unordered Markdown list inside <FileTree>.
Create a sub-directory using a nested list or add a / to the end of a list item to render it as a directory without specific content.
import { FileTree } from '@astrojs/starlight/components';
<FileTree>
- astro.config.mjs
- package.json
- src
- components
- Header.astro
- Title.astro
- pages/
</FileTree>
- astro.config.mjs
- package.json
- src
- components
- Header.astro
- Title.astro
- pages/
- components
Highlight entries
Make a file or directory stand out by making its name bold, e.g. **README.md**.
import { FileTree } from '@astrojs/starlight/components';
<FileTree>
- src
- components
- **Header.astro**
- Title.astro
</FileTree>
- src
- components
- Header.astro
- Title.astro
- components
Add comments
Add a comment to a file or directory by adding more text after the name. Inline Markdown formatting such as bold and italics is supported in comments.
import { FileTree } from '@astrojs/starlight/components';
<FileTree>
- src
- components
- Header.astro an **important** file
- Title.astro
</FileTree>
- src
- components
- Header.astro an important file
- Title.astro
- components
Add placeholders
Add placeholder files and directories by using either ... or … as the name.
This can be useful to indicate to a reader that a folder is expected to contain more items without specifying them all explicitly.
import { FileTree } from '@astrojs/starlight/components';
<FileTree>
- src
- components
- Header.astro
- …
</FileTree>
- src
- components
- Header.astro
- …
- components
Escape special characters
Escape special characters such as underscores or spaces in filenames by wrapping the filename in code backticks.
import { FileTree } from '@astrojs/starlight/components';
<FileTree>
- `__init__.py`
- `Hello world.txt`
- **`READ ME FIRST.md`**
</FileTree>
__init__.pyHello world.txtREAD ME FIRST.md
<FileTree> Props
Implementation: FileTree.tsx
The <FileTree> component does not accept any props.