21f583beef
- diary.vim: correct calendar_action doc comment (dir is used for split direction; only week is unused) - calendar-vim-integration.md: use real nuwiki var names (g:nuwiki_use_calendar / g:nuwiki_no_calendar / g:nuwiki_wikis), document auto-detect wiring and calendar-window close behavior; drop the non-existent refresh-on-close autocmd - vimwiki-gap.md: remove stale 'no calendar.vim integration' entry now that the integration is implemented
2.4 KiB
2.4 KiB
Calendar-Vim Integration Use Case Specification
Overview
This document describes how nuwiki (vimwiki) integrates with calendar-vim to provide graphical calendar navigation for wiki diary entries.
Integration Mechanism
Nuwiki auto-detects calendar-vim on the runtimepath (via a FileType vimwiki
autocmd in plugin/nuwiki.vim) and wires calendar-vim's hook variables, unless
the integration is disabled (default: enabled):
g:calendar_action = 'vimwiki#diary#calendar_action'g:calendar_sign = 'vimwiki#diary#calendar_sign'
These hooks are only set when unset or still at calendar-vim's own defaults
(calendar#diary / calendar#sign), so a user-chosen custom hook is preserved.
Primary Use Case: Viewing/Create Diary Entries
- User executes
:Calendarcommand - Calendar-vim displays navigable calendar interface
- User navigates to target date using arrow keys
- User presses
<Enter>on selected date vimwiki#diary#calendar_actionfunction executes:- Formats date as YYYY-MM-DD
- Opens existing diary file or creates new one (split/vsplit per
dir) - Applies the vimwiki filetype to a brand-new entry
- Closes the calendar window once the diary entry is open
- User views/edits diary entry for selected date
Date Marking Functionality
vimwiki#diary#calendar_signfunction determines which dates show markers (*)- Returns true if diary file exists for that date using wiki's path configuration
- Provides visual indication of dates with existing diary entries
Key Features
- Seamless navigation between calendar and diary entries
- Automatic file creation/opening for selected dates
- Visual indicators for dates with existing content
- Proper window splitting based on calendar orientation
- Calendar window closed automatically once the diary entry opens
Configuration
Controlled by:
use_calendarLua option (Neovimsetup()), defaulttrueg:nuwiki_use_calendar/g:nuwiki_no_calendar(VimL global toggles)- Individual wiki configurations in
g:nuwiki_wikis(root, diary_rel_path, file_extension), or the scalarg:nuwiki_wiki_root/g:nuwiki_diary_rel_path/g:nuwiki_file_extensionfallbacks - Standard calendar-vim variables for appearance/customization
This integration leverages calendar-vim's strong date presentation while using nuwiki's diary system for file management, creating a cohesive experience for journal-style wiki usage.