MH Note Info
unlistedby MH - Matheus Heidemann
Display detailed statistics and information about your notes.
MH Note Info
Summary
MH Note Info is an Obsidian plugin that shows detailed information about the active Markdown note. It can display note statistics, frontmatter properties, headings, backlinks, outgoing links, unresolved links, a local graph, and common file actions from a modal, sidebar views, status bar items, or embedded note sections.
The plugin requires the companion dependency MH-API-TEMPORARY to provide shared UI components, condition rules, locale detection, and note statistic calculations.
Purpose And Features
- Shows text statistics such as paragraphs, sentences, lines, words, characters, and reading time.
- Shows document structure statistics such as headings, heading levels, lists, list items, tables, rows, and cells.
- Shows Markdown element statistics such as internal links, external links, images, code blocks, blockquotes, checkboxes, footnotes, and embeds.
- Shows temporal and file information such as created date, modified date, file age, days since edit, tags, properties, and file size.
- Displays backlinks, outgoing links, unresolved links, headings, frontmatter properties, local graph, and note actions in dedicated tabs.
- Lets selected statistics appear in the Obsidian status bar.
- Provides configurable modal tabs, sidebar views, statistic groups, card layout, date format, reading time format, file size units, link source, path display, heading display, and enabled note actions.
- Supports embedded note information blocks through
mh-note-infocode blocks and automatic embed templates matched by rules. - Injects runtime styles from TypeScript; there is no separate
styles.cssfile.
How It Works / How To Use
Open a Markdown note and run the command MH Note Info: Show note information to open the modal. Enable sidebar views in the plugin settings, then run the generated sidebar commands for views such as Statistics, Properties, Headings, Backlinks, Outgoing Links, Unresolved Links, Local Graph, or Actions.
The Properties tab reads and edits the note frontmatter. No reserved frontmatter key is required for the plugin. Practical frontmatter for rule-based templates can look like this:
---
type: project
status: active
tags:
- project
owner: "[[Ada Lovelace]]"
due: 2026-07-01
---
Use these properties in embed template rules, for example matching notes where type is project, status is active, or the file is inside a specific folder. The plugin ignores the internal position frontmatter field when counting/listing displayed properties.
Embed a plugin section directly in a note with a code block:
```mh-note-info
layout: tabs
tabs: statistics, properties, backlinks, outlinks
tabStyle: bar
display: both
tabsPerRow: 4
autofit: true
graphHeight: 350
```
Supported code block options include layout (tabs or columns), columns, tabStyle (bar or header), display (both, icons, or labels), tabsPerRow, autofit, graphHeight, and tabs as a comma-separated list of tab names.
Automatic embed templates are configured in the plugin settings. A template can render at the top, bottom, or both positions in matching notes. Templates can use tab or column layouts, independent top/bottom tab selections, tab ordering, graph height, and rule conditions from MH-API-TEMPORARY.
Installation
Copy these files into .obsidian/plugins/mh-note-info/ inside your vault:
main.jsmanifest.jsonversions.jsonlocales/
Install and enable MH-API-TEMPORARY, then enable MH Note Info in Obsidian settings. main.js is a generated build artifact and must be present for Obsidian to load the plugin.
Development
Install dependencies:
npm install
Run development watch mode:
npm run dev
Run TypeScript validation:
npm run typecheck
Build the production bundle:
npm run build
Edit TypeScript files under src/. The build entrypoint is src/main.ts, and the generated output is main.js. Do not edit main.js manually after migration.
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.