Right-clicking a calendar day now lists every configured date-prefixed note system. Journal notes are singletons; {title} formats support multiple notes per date, such as meetings.\n\nAdds default Journal and Meeting systems, configurable settings UI, safe filename/title handling, one shared dated-note creation path, and a compiled menu smoke test fixture in the test vault.
styles.css used cursor: var(--cursor) in 10 places and the icon modal in 2
more. Obsidian defines --cursor as 'default', so nothing in the plugin ever
showed a pointer — the old 'correct cursor on hover' todo never actually
worked. Use var(--cursor-link, pointer): themeable, pointer by default.
cursor: grab on separators/spacers is left alone.
'No icon' was a bare accent-coloured span in the status row. It commits a
value and closes, exactly like Save, so it is now a real button in the
modal button container, left-aligned via margin-right: auto to read as a
secondary action. Also adds the missing trailing newline to styles.css.
- Middle-clicking a calendar week number threw ReferenceError: monday is not
defined (shipped in v1.5.1) — the variable was declared inside the click
closure and read from the sibling mousedown handler. Hoist it to weekStart.
- promptIcon guarded on if (iconName), so the picker's 'No icon' link
submitting '' was silently dropped and the old icon stayed. '' is a valid
value; always apply it.
- renderCalendar scanned vault.getFiles() per day cell (up to 42 full vault
scans per render); use the O(1) plugin.hasNoteForDate().
- Collapse ~180 lines of triplicated drag listeners into one
attachBookmarkDragHandlers(); replace (el as any).__dropAbove/__dropInto
stashing with a typed WeakMap; drop the getLeaf(x as any) casts.
- dragManager.dragFile was called twice per dragstart; call it once behind a
single narrowly-typed accessor.
- Cache the Lucide catalog per session instead of refetching the CDN on every
picker open; normalize IconSuggestModal to the file's const/arrow style.
Shallow Object.assign on settings meant filterTags (new in 1.5.0) was
undefined for anyone with prior saved settings. Accessing .length on
undefined threw, killing the entire redraw before calendar could render.
- Defensive fallback: filterTags || []
- Deep merge on loadSettings for recentFiles, calendar, display
New 'Filter tags' setting in Recent Files tab. Enter tag names one per line
to pin specific tags as filter pills. Leave empty to auto-detect from
frontmatter 'type' property (existing behavior).
- Recent files are now persisted to disk and survive restarts
- Max items limit is applied on load (in case setting was reduced)
- Omitted paths regex filtering is now wired up in addToRecentFiles
- Fixed saveAndRefresh() overwriting entire plugin data on settings change
- Debounced disk writes (300ms) to avoid excessive saves on rapid opens
When dragging B onto A, the result is now:
- New Group (empty, no file)
- File A
- File B
Previously the group inherited A's file, creating a self-referencing parent.
Drag-and-drop:
- Dropping a bookmark onto a file bookmark (middle zone) creates a new
parent note group containing both items
- Dropping onto a group still moves into the group as before
- All file/group bookmarks now accept drops (3-zone behavior)
Calendar:
- Fixed broken table layout caused by display:flex on td elements
- Uses vertical-align:middle instead for cell content centering
- Calendar cells still have configurable height via CSS variable
View:
- Chevron moved from left side to right side of bookmark rows
- Display settings applied as CSS variables on the view element
Settings:
- Tabbed UI with 4 tabs: Calendar, Periodic Notes, Recent Files, Display
- Display tab: row size, row spacing, indent size, font size, icon size, calendar cell size
- All settings use sliders with live preview and dynamic tooltips
- Reset to defaults button
CSS:
- Bookmark items use CSS variables (--wp-row-size, --wp-row-spacing, etc.)
- Calendar cells use --wp-cal-cell-size for configurable height
- Settings tab styling with active indicator
Recent files:
- Type filter bar with pill tags above the list
- Scans frontmatter 'type' property of each recent file
- Click a pill to filter, click again or 'all' to clear
- Active pill shows accent color
Calendar:
- Middle-click on day/week/quarter/month/year opens in new tab
- openPeriodNoteInLeaf() method for leaf-targeted opening
- More spacing: taller day cells, more padding, wider margins
Bookmarks:
- Right-click on recent file → 'Add to bookmarks' option
- Recent files right-click now has 'Add to bookmarks' option
- Calendar: middle-click on day/week/quarter/month/year opens in new tab
- Added openPeriodNoteInLeaf() method for opening period notes in a specific leaf
Drag-and-drop:
- 3-zone drop indicator for groups and parent notes (files with children):
top 25% = drop above, middle 50% = drop into, bottom 25% = drop below
- 2-zone for regular files/separators/spacers (unchanged)
- 'Drop into' shows background highlight instead of border line
- Circular reference guard: can't drop a group into itself or descendants
⋯ button:
- No visible button chrome when not hovered (no border, no background)
- Subtle opacity (0.6) at rest, full opacity on hover
- Hover shows text color change only, no background highlight
The icon picker now searches against the Lucide tags.json keyword list,
not just the icon name. Searching 'meeting' now finds 'calendar',
'red-heart' finds 'heart', etc. Tags are loaded alongside icon names
from the CDN with fallback.
- File bookmarks can now have children, rendered with a chevron
- Group bookmarks can have an associated filePath; clicking opens the file,
clicking chevron toggles collapse
- 'Add as parent note' option in header context menu creates a group
with the current file linked
- 'Add child note' option in group context menu creates a sub-group
with the current file linked (parent note pattern)
- Default icon changed from 'file'/'folder' to '' (no icon)
- Chevron click always toggles collapse regardless of type
- File bookmarks: middle-click opens in new tab, mod+click opens in new leaf
- Group bookmarks: middle-click opens group's linked file in new tab,
mod+click opens group's linked file (click still toggles collapse)