by Juehming Shi
Easy index and table of contents generator for Obsidian notes and folders.
EzIndex - Easy Index Generator for Obsidian
EzIndex generates a structured, hierarchical table of contents for any folder in your vault, including everything nested inside it.
Point it at a folder and it walks every subfolder, producing one index note with Markdown headings per subfolder level and links to every file. Choose where the note is saved, name it with a {{folderName}} pattern, and exclude templates or attachments you don't want listed.
Everything runs locally. The plugin makes no network requests and sends no telemetry.
โจ Features
- ๐ฒ Recursive Subfolder & File Indexing: Scans all subfolders and files nested inside a target directory.
- ๐ Hierarchical Markdown Headings:
- 1st-level subfolders:
## Subfolder(H2 Heading) - 2nd-level subfolders:
### Subfolder(H3 Heading) - 3rd-level subfolders:
#### Subfolder(H4 Heading), and so on.
- 1st-level subfolders:
- ๐ซ Custom Exclude List: Easily exclude specific file names, subfolder names, or file extensions (e.g.
templates, archive, .png, _Index) using a multi-line text box. Entries may be separated by commas, newlines, semicolons or the Chinese enumeration commaใ. - ๐ Live Output Preview: The settings page shows the exact filename and full path that will be written, plus whether the note will be created, overwritten or skipped.
- ๐ English / ็น้ซไธญๆ Descriptions: All labels, descriptions, the modal and notices are available in both languages. They follow the Obsidian interface language by default and can be forced to either one in settings.
- ๐ฏ Multiple Convenient Ways to Trigger:
- Plugin Settings Page: Pick a target directory and click
๐ Generate indexright inside settings! - Interactive Modal: Open via Ribbon Icon or Command Palette (
EzIndex: Open Index Generator Modal...). - File Explorer Context Menu: Right-click any folder in the left sidebar ->
EzIndex: Generate Index for this folder.
- Plugin Settings Page: Pick a target directory and click
- ๐ ๏ธ Flexible Filename & Output Location:
- Dynamic placeholders like
{{folderName}}-Index.md. - Save inside the target folder, at vault root, or in a custom folder.
- Dynamic placeholders like
๐ Quick Start & Usage
1. Generate Index via Settings Page
- Go to Obsidian Settings -> EzIndex.
- Select your Target directory.
- (Optional) Adjust Index location, Index filename, Index header and Exclude list.
- Check the Output preview section โ it shows the resulting path and what will happen.
- Click
๐ Generate indexin the Run section at the bottom.
2. Generate Index via File Explorer
- Right-click any folder in the left sidebar File Explorer.
- Click
EzIndex: Generate Index for this folder.
3. Generate Index via Modal
- Click the Ribbon Icon on the left sidebar (or press
Cmd + Pand searchEzIndex). - Pick the target folder and click
๐ Generate index.
โ๏ธ Configuration Options
| Option | Description | Default |
|---|---|---|
| Target directory | Select the directory to index directly from settings | Active folder / Vault Root |
| Index header | Title heading at the top of the generated note | # Directory Index |
| Index filename | Filename pattern (supports {{folderName}}; .md is appended automatically) | _Index.md |
| Exclude list | Names or extensions to ignore, separated by commas, newlines, ; or ใ | (empty) |
| Index location | Where to save (Inside Target Folder, Vault Root, or Custom Folder) | Inside Target Folder |
| Custom folder path | Vault-relative folder, created automatically if missing (only when output location is Custom Folder) | (empty) |
| Show file extensions | Display or hide .md extension in generated links | Off |
| Overwrite existing index | Overwrite existing index note with same name; off = skip and keep manual edits | On |
| Description language | Follow Obsidian interface, English, or ็น้ซไธญๆ โ affects UI text only, never your notes | Follow Obsidian interface |
๐ฆ Installation
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the Latest Release. - Create a folder named
ezindexinside your vault's.obsidian/plugins/directory:<VaultFolder>/.obsidian/plugins/ezindex/ - Move the downloaded files into
<VaultFolder>/.obsidian/plugins/ezindex/. - Reload Obsidian -> Go to Settings -> Community Plugins -> Enable EzIndex.
๐ ๏ธ Development
# Install dependencies
npm install
# Build production bundle
npm run build
# Start development watcher
npm run dev
๐ License
This project is licensed under the MIT License.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.