Add native periodic-notes settings, dropping the plugin dependency (#308)
Periodic note create/get/getAll logic was implemented entirely inside
obsidian-daily-notes-interface, which reads undocumented internals of
the core Daily Notes plugin and the community Periodic Notes plugin.
This drops that dependency in favor of a native implementation
(src/periodicNotes.ts) driven by a new "Periodic Notes" settings
section, built declaratively (per-period enabled/folder/format/
template, with folder- and file-suggester controls and a per-period
displayValue on each period's settings sub-page).
Template support covers a documented subset ({{date}}, {{time}},
{{title}}) rather than full Templater-level templating.
On first load after upgrading, a best-effort one-time migration reads
existing Daily Notes / Periodic Notes plugin configuration (if
present) into the new native settings, so upgrading users don't lose
their configuration. This still touches undocumented internals, but
only once, at migration time, defensively (any unexpected shape is
skipped rather than thrown), and deferred until onLayoutReady() to
avoid racing other plugins' startup. Known gap: weekly notes
configured only via the legacy "Calendar" plugin (not "Periodic
Notes") are not migrated — accepted trade-off, matches "no auto-sync
with Calendar plugin" from the 5.0 planning doc.
VaultOperations now takes settings in its constructor (previously
app-only) so it can build periodic note interfaces from the plugin's
own settings instead of external plugin state.
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> A
Adam Coddington committed
24014d3853bf41b227db664fbaeafdeadc90e767
Parent: 066be53
Committed by GitHub <noreply@github.com>
on 7/24/2026, 2:50:27 AM