File System
This section provides an overview of how AriaDocs handles file system view in Markdown.
The Files component allows you to display a structured file system within Markdown. It supports files, folders, highlighting, sorting, and indicators for additions or deletions.
Preview
Default File Structure
This example represents a Next.js project structure:
<Files items={[ { type: "file", name: "package.json" }, { type: "file", name: "tsconfig.json" }, { type: "folder", name: "src", children: [ { type: "file", name: "index.tsx" }, { type: "file", name: "globals.css" }, { type: "folder", name: "components", isOpen: true, children: [ { type: "file", name: "Navbar.tsx" }, { type: "file", name: "Footer.tsx" }, ], }, { type: "folder", name: "pages", children: [ { type: "file", name: "index.tsx" }, { type: "file", name: "about.tsx" }, ], }, ], }, { type: "file", name: "next.config.js" }, { type: "file", name: ".gitignore" }, { type: "file", name: "extension.kt" }, ]} />{" "}
Sorted File Structure with Changes
In this example, the file system has been modified:
<Files
sorted
items={[
{ type: "file", name: "package.json" },
{ type: "file", name: "tsconfig.json" },
{
type: "folder",
name: "src",
indicator: "add",
children: [
{ type: "file", name: "index.tsx" },
{ type: "file", name: "globals.css" },
{
type: "folder",
name: "components",
isOpen: true,
children: [
{ type: "file", name: "Navbar.tsx" },
{ type: "file", name: "Footer.tsx" },
{ type: "file", name: "Button.tsx", highlight: true },
],
},
],
},
{ type: "file", name: "next.config.js" },
{ type: "file", name: ".gitignore" },
{ type: "folder", name: "public", indicator: "delete",
children: [
{ type: "file", name: "index.html" },
],
},
]}
/>{" "}
Props
type Items = Array<{ type: "file" | "folder", name: string, children?: Array, highlight?: boolean, indicator?: "add" | "delete" }>
| Prop | Type | Default | Description |
|---|---|---|---|
items |
Items |
[] |
Defines the file system structure. |
sorted |
boolean |
false |
If true, items are sorted alphabetically. |
highlight |
boolean |
false |
Highlights a specific file for emphasis. |
indicator |
"add" | "delete" |
null |
Displays an indicator for added or removed items. |
Code
<Files
items={[
{ type: "file", name: "package.json" },
{ type: "file", name: "tsconfig.json" },
{
type: "folder",
name: "src",
children: [
{ type: "file", name: "index.tsx" },
{ type: "file", name: "globals.css" },
{
type: "folder",
name: "components",
children: [
{ type: "file", name: "Navbar.tsx" },
{ type: "file", name: "Footer.tsx" },
],
},
],
},
{ type: "file", name: "next.config.js" },
]}
/>