michalekmatej2k downloadsConvert indented code blocks with hierarchy markers into formatted ASCII tree diagrams.
Transform indented outlines into beautiful ASCII tree diagrams directly in your Obsidian notes. Perfect for technical documentation, project hierarchies, or mind-mapping.
= characters to indicate nesting levelstree keyword as a language identifier.-, *, or +1., 2., etc.)tree keyword as a language identifier.= signs:= represents one level of nesting==subitem → two levels deepExample 1 (with markdown lists):
Project
- Documentation
- README.md
- Changelog.md
- Source
- Frontend
- Components
- Header
- Footer
- Backend
- API
- User
- Product
- Tests
- Unit
- Integration
Output:
Project
├── Documentation
│ ├── README.md
│ └── Changelog.md
├── Source
│ ├── Frontend
│ │ └── Components
│ │ ├── Header
│ │ └── Footer
│ └── Backend
│ └── API
│ ├── User
│ └── Product
└── Tests
├── Unit
└── Integration
Example 2 (with equals signs):
Project
=Documentation
==README.md
==Changelog.md
=Source
==Frontend
===Components
====Header
====Footer
==Backend
===API
====User
====Product
=Tests
==Unit
==Integration
Output:
Project
├── Documentation
│ ├── README.md
│ └── Changelog.md
├── Source
│ ├── Frontend
│ │ └── Components
│ │ ├── Header
│ │ └── Footer
│ └── Backend
│ └── API
│ ├── User
│ └── Product
└── Tests
├── Unit
└── Integration
This plugin provides three convenient commands accessible through the Command Palette (Ctrl/Cmd + P):
tree code blocktree code blocktree code blocktree wrapper, leaving just the plain text contenttree code block💡 Tip: Assign keyboard shortcuts to these commands in Obsidian's Hotkeys settings for even faster workflow.
The plugin settings page (Obsidian Settings → Community Plugins → ASCII Tree Generator) lets you configure:
─ characters follow each ├ or └. Default is 2, giving the classic ├── style. Can be set between 1 and 10./ to any item that has children in the tree.You can override the global connector width for a specific block by adding a number after tree on the opening fence line:
```tree 4
Project
- src
- main.ts
- docs
- README.md
```
This produces ├──── connectors just for that block, while all other blocks keep using the global setting.