Maps of Content

by mkshp-dev
5
4
3
2
1
Score: 53/100

Description

Dynamically generate Maps of Content (MOC) by extracting matching list items from notes in your vault.

Reviews

No reviews yet.

Stats

2
stars
1,126
downloads
1
forks
112
days
5
days
7
days
50
total PRs
0
open PRs
0
closed PRs
50
merged PRs
21
total issues
0
open issues
21
closed issues
204
commits

Latest Version

8 days ago

Changelog

  • Feature: Interactive tasks — Task checkboxes in a rendered moc block now write back to their source note. Clicking a checkbox toggles the matching - [ ] in the original file, and the block's existing auto-refresh reconciles the view. Works for nested subtasks, ordered-list tasks, and tasks inside extracted headings, blockquotes and callouts. Writes are guarded by a source-line match, so a stale block can never overwrite a newer edit. Blocks render their checkboxes disabled when template or applyFnR actually rewrites the matched text, since rewriting breaks the mapping back to source lines; output that comes back unchanged stays interactive. Can be turned off with the new Interactive tasks setting.

  • Feature: Jump to source — Every matched block now renders with a hover-revealed button that opens its source note scrolled to the exact line the block starts at, with mod-click to open in a new pane. Blocks are rendered into individual containers so each one has its own handle, and blockSeparator spacing is preserved. Can be turned off with the new Jump to source setting.

  • Feature: Separate file and result limits — Added fileLimit, fileOffset, blockLimit, blockOffset and blocksPerFile. blockLimit finally expresses "show me 20 results", which the old file-counting limit could not; blocksPerFile stops one busy note filling the whole result window; blockOffset paginates results rather than notes. limit and offset keep working as aliases for fileLimit/fileOffset, with the explicit key winning if both are set. showCount now reports 20 of 137 results in 8 files when results were trimmed, and extraction stops reading files once the block window is full.

  • UI: Wizard read-only hint — The MOC Creation Wizard now warns inline when a Task or List block is given a template or a find-and-replace rule, since reshaping the output makes its task checkboxes read-only.

README file from

Github

Maps of Content

Dynamically generate Map of Content (MOC) indexes by extracting matching elements (lists, tasks, headings, paragraphs, blockquotes) from notes in your vault — powered by a simple code block.

📖 Full documentation →


Highlights

Live, auto-updating indexes — moc blocks re-render automatically when files in the watched folder change. No refreshing needed.

Interactive tasks — Tick a task checkbox in a rendered moc block and it updates in its source note, guarded against writing over newer edits.

Jump to source — Every matched block has a button that opens its source note at the exact line it came from.

Powerful filter DSL — Boolean logic (AND, OR, NOT), text matching, tag matching, regex, and frontmatter property comparisons with full numeric/date operator support (>, <, >=, <=, !=).

MOC Creation Wizard — Generate moc blocks visually from the Command Palette. No YAML required.

Flexible output shaping — Group by folder, tag, date, or any frontmatter property. Sort, and limit by notes scanned (fileLimit), total results (blockLimit) or results per note (blocksPerFile), with matching offsets for pagination.

Templates — Format each matched element using a reusable template note with {{content}}, {{file}}, {{path}}, {{link}} placeholders.

Exclude options — Skip specific folders or files even inside a recursive scan.

Copy & Bake — Copy rendered Markdown to clipboard, or permanently bake a dynamic block into static Markdown in-place.

Create showcase — Run Maps of Content: Create showcase from the Command Palette to generate a ready-to-explore demo folder covering every feature.


Quick start

```moc
folder: diary
element: List
filter: has_tag("#todo")
recursive: true
```

→ See the full block reference in the docs.


Support