tree-export
Version:
Export your folder structure as a tree in various formats
117 lines (73 loc) • 2.71 kB
Markdown
# tree-export
> Export your project folder structure as a tree in multiple formats (md, txt, mdx, png, jpg, svg).
## 🚀 Features
- Generate a visual tree of your folder structure easily.
- Export output in Markdown (`.md`), plain text (`.txt`), MDX (`.mdx`), and image formats (`png`, `jpg`, `svg`).
- Supports excluding files and folders based on `.gitignore`.
- Simple and user-friendly CLI interface.
## 📦 Installation
Install globally via npm:
```bash
npm install -g tree-export
````
Or run directly using npx without installing:
```bash
npx tree-export -d ./target-folder -o output.md -f md
```
## ⚙️ Usage
```bash
tree-export [options]
```
### Options
| Parameter | Description | Default |
| --------------------- | ------------------------------------------------------ | ----------------------- |
| `-d, --dir <path>` | Target directory to generate the tree from | Current directory (`.`) |
| `-o, --output <file>` | Output file path including filename | `tree-output.md` |
| `-f, --format <type>` | Output format: `txt`, `md`, `mdx`, `png`, `jpg`, `svg` | `md` |
## 💡 Examples
* Export current folder structure as a Markdown file:
```bash
npx tree-export -d . -o structure.md -f md
```
* Export a specific folder structure as a plain text file:
```bash
npx tree-export -d ./src -o src-tree.txt -f txt
```
* Export folder structure as an MDX file:
```bash
npx tree-export -d ./project -o project-structure.mdx -f mdx
```
* Export folder structure as an SVG image:
```bash
npx tree-export -d ./src -o src-tree.svg -f svg
```
* Export as PNG image:
```bash
npx tree-export -d ./src -o src-tree.png -f png
```
* Export as JPG image:
```bash
npx tree-export -d ./src -o src-tree.jpg -f jpg
```
## 📋 Notes
* When a `.gitignore` file is detected, you will be prompted whether to exclude ignored files and folders.
* SVG output uses `<foreignObject>`, which may have limited support in some SVG viewers.
* The CLI supports relative and absolute paths for both input directory and output file.
## 🛠️ How It Works
* `bin/index.js` handles CLI arguments and orchestrates the process.
* `lib/tree-generator.js` reads and filters the directory tree, respecting `.gitignore` and default ignore patterns.
* `utils/export.js` generates the output in the requested format.
## 📝 License
MIT © \[Osman Beyhan]
## 🤝 Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the [issues page](#) and submit pull requests.
Happy tree exporting! 🌳🚀