MH Explorer

unlisted

by MH - Matheus Heidemann

Custom Obsidian file explorer with folder, tag, recent-file, search, card, icon, and display-rule views.

Updated 1mo ago
View on GitHub

MH Explorer

Summary

MH Explorer is an Obsidian plugin that adds a custom file explorer view. It can browse the vault as folders, organize notes by tags, show recent-file views when the MH Recent Files integration is available, and render files/folders as configurable cards.

Purpose And Features

  • Folder explorer view with card-based navigation.
  • Tag explorer view with flat or hierarchical tag nesting.
  • Untagged note handling at the tag root or inside an "Untagged" folder.
  • Recently accessed, recently modified, and recently created views when window.MhRecentFilesAPI is available.
  • Search across the current path/view or the whole vault.
  • Search exclusions using Obsidian ignored files, plugin custom exclusions, or both.
  • Configurable card columns, height, font size, text wrapping, sort mode, and visible properties.
  • File/folder properties such as type, size, file count, created, accessed, modified, word count, and reading time where the data is available.
  • Card images from a configurable frontmatter property.
  • Optional image background mode with blur and opacity controls.
  • Important-note border/star rendering when window.MhBaseConfigsAPI is available.
  • Icon rules and display rules based on file name, path, folder, tag, logic folder, dates, and frontmatter properties.
  • English and Brazilian Portuguese locales from locales/.

How It Works / How To Use

Open MH Explorer from the ribbon icon or the Open explorer command. Use the header buttons to switch between folder, tag, and recent-file modes, toggle search, change sorting, switch text display, and choose visible card properties.

Folder mode follows the vault folder tree. Tag mode reads tags from YAML frontmatter and inline Obsidian tags. Nested tags such as project/work can be shown as separate root items or as a hierarchy, depending on the tag nesting setting.

Search accepts queries with at least two characters. The scope can be toggled between the current path/view and the entire vault. Custom exclusion filters support plain path fragments, glob-style * wildcards, and /regex/ patterns.

Useful frontmatter examples:

---
tags:
  - project/work
  - area/research
cover: assets/images/project-cover.png
status: active
priority: 1
---
  • tags: used by the tag explorer, tag counts, tag rules, and tag-based display conditions.
  • The card image property is configurable in settings. Common names are cover, thumbnail, or image.
  • The image value can be a direct vault path or an Obsidian wiki link such as [[project-cover.png]].
  • Any other frontmatter property can be used by icon rules and display rules.

Settings include language, default view mode, date format, recursive file/tag counts, tag nesting, tag inheritance, untagged display, search scope/exclusions, recent-file integration toggles, header layout, size control visibility, card image settings, important-note styling, icon rules, and display rules.

Display rules can override card layout for matching folders, tags, or logic folders. Icon rules can choose icons and colors for files, folders, parent folders, tags, and nested tags.

Installation

For a manual Obsidian install, copy these files into:

<vault>/.obsidian/plugins/mh-explorer/

Required runtime files:

  • main.js
  • manifest.json
  • versions.json
  • locales/en-us.json
  • locales/pt-br.json

Enable the plugin from Obsidian settings after copying the files.

Development

Install dependencies:

npm install

Run a watch build:

npm run dev

Run validation:

npm run typecheck
npm run build
node --check main.js

The TypeScript entrypoint is src/main.ts. The production bundle is generated to main.js by esbuild. Do not edit main.js directly.

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.