Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
In-progress
- Fix: Obsidian plugin review — Removed the three
:has()CSS selectors the review flags as slow. The wizard's path fields and the spacing under results now use plain classes, and look the same as before.
1.6.2 - 2026-10-31
-
Docs: Real screenshots — The README, docs and community store images now show the plugin itself (the Use cases dashboards, ticking a task in split view, the wizard) instead of drawn mockups. The README links to docs.mkshp.dev, the manual install path in the docs uses the plugin's folder name
maps-of-content, and the plugin description says what it does in plain words. -
UI: Wizard layout — The folder field is wide enough to show a full path, date presets such as 'is in the next 7 days' are no longer cut off, and the Insert block button stays in view when the wizard is taller than the window.
-
Fix: Loose spacing between results — Results sat a full blank line apart, because each one renders in its own container and the list margins inside it were not removed. They now sit as close together as a normal list.
-
Showcase: Use cases — Create showcase also adds a
Use casesfolder: a small working vault of projects, meetings, book notes and a journal, with five dashboards (This week, Overdue, Decisions log, Reading highlights, Ideas inbox). Its dates are set when you run the command, so the overdue and due-soon lists always have results. -
Showcase: Realistic sample notes — Create showcase now fills its examples with a small studio's project notes, a trip and a tax return instead of placeholder "Alpha/Beta/Gamma" data. Eight example blocks that showed "No elements matching filter" (in notes 06, 07, 08, 09 and 12) now show results.
1.6.1 - 2026-10-18
- Fix: Obsidian plugin review — The date features from 1.6.0 now pass the review's type checks, which use TypeScript 6. The plugin works exactly as before.
- Maintenance — The project now builds with TypeScript 6 and the latest Obsidian lint rules, and lints its build scripts and tests too, so the same issues are caught before a release.
1.6.0 - 2026-10-18
- Feature: Date parameters — Filter against moments relative to now, such as
{{startOfDay}},{{endOfWeek}}or{{now-24h}}:properties(due < {{startOfDay}})lists overdue items. A format turns a date into text, as infolder: Journal/{{now:YYYY/MM}}. Parameters work infolder,filterand the exclusions, and blocks move on to a new day by themselves. - Feature: File dates —
properties()readsfile.day(the date in a daily note's filename),file.ctimeandfile.mtime. - Feature: Parameter errors — A
{{…}}that cannot be replaced, such as{{now-0.5h}}or{{this.filname}}, shows an error instead of silently matching nothing. - UI: Dates in the wizard — Presets such as is today and is this week, relative values with an offset, and a check of the block before it is inserted.
- Change: Date comparisons — Dates compare as moments in local time, so comparing a date with a date and time gives the same result in every time zone.
- Change: Literal braces —
contains("{{title}}")is now an error. Search for braces withmatches("\{\{title\}\}"). - Fix: Whole-vault blocks —
folder: ""scans the entire vault, as documented. - Fix: Wizard YAML — The wizard quotes values such as
{{this.folder}}, so the blocks it writes always load. - Showcase — Note 16 walks through every date feature with sample notes dated when the showcase is created, and a broken block in note 12 is fixed.
1.5.2 - 2026-10-04
- Fix: Refresh on rename and move —
mocblocks now refresh when a note is renamed or moved into, out of, or within the watched folder. Previously a moved-in note stayed missing, and a moved-out or renamed note lingered with a dead link, until some other edit triggered a refresh. Renaming a folder refreshes every block watching notes inside it. - Fix: Renaming the note that holds a block — The block now follows its note's new path, so
{{this.filename}},{{this.folder}}and{{this.path}}re-resolve against the new name, and Copy and Bake keep working instead of reporting "Source file not found". - Fix: Refresh on template edits — Editing a template note now refreshes the blocks that use it. Template folders usually sit outside the watched folder, so these edits were previously ignored.
- Fix: Missing folder error — A block whose
folderdoes not exist, for example after the folder was renamed, now says so instead of reporting that the folder contains no notes. - Fix: Excluded notes no longer trigger refreshes — Edits inside an
excludeFolderor to anexcludeFileno longer re-render the block. Scanning and auto-refresh now share one scope check, so they can no longer disagree about which notes a block covers. - Showcase: Renames and moves — Create showcase now adds note 15 and a
rename-labsandbox folder with step-by-step walkthroughs for each of the fixes above.
1.5.1 - 2026-09-26
-
Feature: Interactive tasks — Task checkboxes in a rendered
mocblock 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 whentemplateorapplyFnRactually 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
blockSeparatorspacing is preserved. Can be turned off with the new Jump to source setting. -
Feature: Separate file and result limits — Added
fileLimit,fileOffset,blockLimit,blockOffsetandblocksPerFile.blockLimitfinally expresses "show me 20 results", which the old file-countinglimitcould not;blocksPerFilestops one busy note filling the whole result window;blockOffsetpaginates results rather than notes.limitandoffsetkeep working as aliases forfileLimit/fileOffset, with the explicit key winning if both are set.showCountnow reports20 of 137 results in 8 fileswhen 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
TaskorListblock is given a template or a find-and-replace rule, since reshaping the output makes its task checkboxes read-only.
1.4.0 - 2026-08-16
- Feature: Copy as Markdown — Added a Copy button to the MOC block toolbar that copies the rendered Markdown output to the clipboard without modifying the note.
- Feature:
properties()comparison operators — Added>,<,>=,<=,!=operators toproperties()filters for numeric and date comparisons (e.g.properties(priority <= 2),properties(date >= "2024-01-01")). - Feature:
templateoption — Custom output formatting for each matched element by referencing a template note (configured via the Template folder setting) whose content uses{{content}},{{file}},{{path}}, and{{link}}handlebars-style placeholders. - Feature:
excludeFolderandexcludeFileoptions — Explicitly exclude specific folders or files from MOC results even when they fall within the configured scan folder. Accepts a single string or JSON array. - Feature:
showCountoption — Appends a result count summary (e.g. "3 results in 2 files") and adds per-group counts whengroupByis active. - Feature:
offsetparameter — Skip a number of files at the start of the result set, complementinglimitfor paginated or windowed result sets. - Feature:
groupBy: property(key)— Group matched results by an arbitrary frontmatter property value. - Feature: Live auto-refresh — MOC blocks automatically re-render (debounced 500 ms) when any Markdown file in the configured folder is created, modified, or deleted.
- Feature: Create showcase command — New "Create showcase" command generates a
MOC Showcasefolder at the vault root with sample notes and pre-builtmocblocks covering every feature, including a dedicated note forblockSeparator/noteSeparatorspacing and dynamic parameters. - Feature: Standardized filters & aliases — Consolidated
has_word,contains,has_textinto canonicalcontains;has_wordandhas_textremain as backward-compatible aliases. - Feature: Robust tag-aware matching —
has_tag()matches exact tags case-insensitively and nested subtags, preventing false positives. - Feature: Enhanced
matches()with regex flags — Slash-delimited patterns with flags:matches("/pattern/i"). - Feature: Context-aware autocomplete — The MOC Creation Wizard hides task-only filters (
is_completed,is_incomplete) when a non-task element type is selected. - UI: Redesigned settings tab — Icon-driven card layout for Templates and Find & Replace, native Obsidian icon buttons in place of emoji, and a cleaner add/edit rule form.
- UI: Redesigned MOC Creation Wizard — Wizard sections (Source, Filters, Shaping, Result manipulations) now use the same icon-driven card layout, with icon buttons replacing text/emoji controls throughout the filter builder and rule chain.
- Fix:
templateoption documentation and showcase example — Thetemplatekey takes the name of a template note (resolved against the Template folder setting), not inline placeholder text. Corrected the showcase's template note (09) and all docs/README references that previously showed inlinetemplate: "..."strings that would fail to resolve. - Docs: Verified versioned Docusaurus deployment workflow and automated changelog syncing.
1.3.3 - 2026-06-30
1.3.2 - 2026-06-30
1.3.1 - 2026-06-30
1.3.0 - 2026-06-30
- Feature: Reusable Find & Replace Rules — Added a rules manager to the settings panel allowing users to define reusable find-and-replace literal or regex transformations. These can be selected via a dropdown in the MOC Wizard or referenced in MOC blocks using
applyFnR: <RuleName>(or sequentially chained using array syntax likeapplyFnR: [<rule1>, <rule2>]). - Feature: Decoupled Block & Note Separators — Added support for configuring separators at two levels: between adjacent matched blocks in the same note (
blockSeparator) and between different note sections (noteSeparator). Users can configure both separators to beNone,Divider line(inserts---), orEmpty linethrough dropdowns in the MOC Wizard or YAML keys.
1.2.7 - 2026-06-29
- Added attestation to remove the obsidian auto-review bot warning
1.2.6 - 2026-06-29
1.2.5 - 2026-06-24
- Add automated tests covering MOC filter parsing, boolean filter composition, property-based filters, and malformed filter handling.
- Refresh the README to document the current MOC block schema, advanced filtering, result shaping options, the MOC Creation Wizard, and Bake to Markdown.
- Add support for configuring groupBy, sort, and limit directly from the MOC Creation Wizard.
- Document the repository’s Jules task workflow and issue queue setup in the README.
1.2.4 - 2026-06-16
- Misc: Removed documentation from
mainandDevbranches, moving it to a newdocsbranch. Updateddeploy-docsworkflow to trigger on push todocs. - Chore: Fix ESLint warnings — Fixed the empty object type linting error in settings.ts by avoiding
eslint-disable-next-line.