Skip to content

Release 1.6.0 Audio & Partial Excalidraw Embeds

Choose a tag to compare

@github-actions github-actions released this 19 Apr 16:30

This release adds two new media types to the sync pipeline and cleans up a long-standing editor quirk.

✨ New Features

πŸ”Š Audio embeds β†’ Anki sound tags

![[Recording.m4a]] inside a card table now uploads the audio binary to Anki and rewrites the embed as Anki's native [sound:Recording.m4a] tag β€” so the card actually plays on review.

Supports all Obsidian-recognized audio formats: flac, m4a, mp3, ogg, wav, webm, 3gp.

🎨 Partial Excalidraw embeds

Embeds that target a group, area, or frame inside an Excalidraw drawing now render only that region in Anki β€” matching what Obsidian shows in preview.

Supported fragment syntax:

  • ![[drawing.excalidraw.md#^group=<id>]]
  • ![[drawing.excalidraw.md#^area=<id>]]
  • ![[drawing.excalidraw.md#^frame=<id>]]
  • ![[drawing.excalidraw.md#^clippedframe=<id>]]

If the fragment can't be resolved (renamed/deleted ID), the plugin falls back to rendering the full drawing and logs a warning β€” the card still syncs.

πŸ› Bug Fixes

  • Cursor jump fix (Live Preview): pressing ↓ below an Anki-card table no longer jumps the cursor backwards into the top cell of the table. Reading View behavior is unchanged.

🧹 Under the Hood

  • Excalidraw logic extracted into its own module (src/excalidraw.ts) for easier maintenance.
  • Removed dead code from the old toggle implementation and unused AnkiService helpers.
  • Generalized the media regex from image-only to MEDIA_EMBED so audio/Excalidraw/images share one resolver pass.