kageetai22 downloadsMigrate Voicenotes image attachments into existing daily notes.
Voicenote Image Migrator moves image embeds from Voicenotes notes into existing Obsidian daily notes.
It scans the configured Voicenotes folder, reads image embeds from each note's ## Attachments section, copies the referenced image files into the daily note's sibling attachments/ folder, inserts the original embeds after the daily note frontmatter, and removes the source ## Attachments section only after a successful migration.
obsidian-daily-notes-interface.![[image.webp|317]]..backup files before modifying daily notes and voicenotes.Voicenotes/image-migration-report.md.Voicenotes.Voicenotes/attachments.For each voicenote with supported image embeds in ## Attachments, the plugin reads Date: [[YYYY-MM-DD]] or Date: YYYY-MM-DD and resolves the existing daily note through Obsidian's configured Daily Notes state. Missing daily notes are blocked and reported; the plugin does not create daily notes or change Daily Notes settings.
A ready migration copies images into an attachments/ folder next to the daily note, inserts the embeds immediately after frontmatter with one blank line around the block, then removes the source attachments section. Existing destination images are reused only when their bytes match the source. One voicenote failing does not prevent later ready candidates from running.
npm ci
npm run dev
Before submitting changes, run:
npm test
npm run lint
npm run build
The production build writes main.js at the repository root. Build output is not committed.
Create a Git tag matching the package version without a leading v. The release workflow builds the plugin and creates a draft GitHub release with main.js, manifest.json, and styles.css.