Skip to content

Releases: micahchoo/image-annotation

0.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 19:47

0.2.0

A region is now a note. This release changes how annotations are stored, and does not convert 0.1 data.

  • Each region is one note, named with its title, in the region folder (Regions by default, set in the plugin settings). Its properties hold image, source, shape and region_id. Its body starts with a crop block; write about the region below it.
  • Put a region into writing with Obsidian's own embed, ![[Eyes]]. Renaming the note renames the region, and links follow. Backlinks show where a region is used.
  • The editor is a tab. Open note opens the region note beside the image. The selected region shows its text, the notes it is used in, Insert in (at the cursor of the note you last wrote in) and Insert in… (at the end of a note you choose). A region can be dragged from the list into a note, and Duplicate makes a second note for the same part of the image.
  • Drawing: icon tools with shortcuts (V, R, P), a name field beside the new shape, handles to reshape a selected region, and a polygon that finishes on its first point, a double-click, or Enter.
  • The source property is found for you: from the note you opened the image in, another region of the image, the snapshot's name, or the one note that embeds the image. When several notes embed it, you choose.
  • Web snapshots are named <source note> - image - d857.jpg. The same picture from two notes is saved once.
  • Requires Obsidian 1.13.0, for the settings search.

Removed: caption files, attachments, the preview block, and the Attach an image region to this paragraph and Remove unavailable references commands. Before its first write, 0.2 copies the old index to Image Annotation/index-0.1.json. Old caption files stay in the vault as ordinary notes; old preview blocks show as plain code blocks.

0.1.5

  • Write into a note one way, however it is open. Inserting a reference into an open note used to replace everything from the insertion point to the end of the note in one editor edit; it now replaces only the inserted lines, the same minimal edit every other note change already made. The three note writes share one implementation, with tests against a fake editor.
  • The reference block's shape (the fence, the id, the mode, four lines) is declared in one module and every reader and writer asks it.
  • Two writers could both create the plugin folder from a cold vault and one would fail; folder creation now tolerates losing that race, as the snapshot writer already did.
  • Internal: media cleanup takes the store's frozen path snapshot as a named type rather than testing whether an array is frozen; the index path is exported from the store rather than repeated in the plugin; the image-extension test and the HTML image pattern are written once; three unused exports removed.

No change to Image Annotation/index.json, captions or settings.

0.1.4

  • Refuse unsupported Markdown blocks before attaching an image region to prose. Preserve valid paragraphs after display math.
  • Refresh previews when missing captions, images or the annotation index return.
  • Scan notes once during media cleanup, then recheck changed documents and open editors. Protect encoded image references and references added during cleanup.
  • Use targeted connection and image indexes. Preserve overlapping-region order after edits and attachment order after renames.
  • Yield during large index validation, serialization and folder renames. Keep atomic external-edit conflict checks and the existing storage format.

The index still uses a single JSON file. Very large indexes retain synchronous parsing and full-file write costs. Synthetic scaling checks do not establish mobile or device-specific performance.

0.1.5

Choose a tag to compare

@github-actions github-actions released this 21 Sep 11:37

0.1.5

  • Write into a note one way, however it is open. Inserting a reference into an open note used to replace everything from the insertion point to the end of the note in one editor edit; it now replaces only the inserted lines, the same minimal edit every other note change already made. The three note writes share one implementation, with tests against a fake editor.
  • The reference block's shape (the fence, the id, the mode, four lines) is declared in one module and every reader and writer asks it.
  • Two writers could both create the plugin folder from a cold vault and one would fail; folder creation now tolerates losing that race, as the snapshot writer already did.
  • Internal: media cleanup takes the store's frozen path snapshot as a named type rather than testing whether an array is frozen; the index path is exported from the store rather than repeated in the plugin; the image-extension test and the HTML image pattern are written once; three unused exports removed.

No change to Image Annotation/index.json, captions or settings.

0.1.4

  • Refuse unsupported Markdown blocks before attaching an image region to prose. Preserve valid paragraphs after display math.
  • Refresh previews when missing captions, images or the annotation index return.
  • Scan notes once during media cleanup, then recheck changed documents and open editors. Protect encoded image references and references added during cleanup.
  • Use targeted connection and image indexes. Preserve overlapping-region order after edits and attachment order after renames.
  • Yield during large index validation, serialization and folder renames. Keep atomic external-edit conflict checks and the existing storage format.

The index still uses a single JSON file. Very large indexes retain synchronous parsing and full-file write costs. Synthetic scaling checks do not establish mobile or device-specific performance.

0.1.4

Choose a tag to compare

@github-actions github-actions released this 20 Sep 19:33

0.1.4

  • Refuse unsupported Markdown blocks before attaching an image region to prose. Preserve valid paragraphs after display math.
  • Refresh previews when missing captions, images or the annotation index return.
  • Scan notes once during media cleanup, then recheck changed documents and open editors. Protect encoded image references and references added during cleanup.
  • Use targeted connection and image indexes. Preserve overlapping-region order after edits and attachment order after renames.
  • Yield during large index validation, serialization and folder renames. Keep atomic external-edit conflict checks and the existing storage format.

The index still uses a single JSON file. Very large indexes retain synchronous parsing and full-file write costs. Synthetic scaling checks do not establish mobile or device-specific performance.

0.1.3

Choose a tag to compare

@github-actions github-actions released this 20 Sep 06:23

0.1.3

  • Refresh only affected previews. Caption edits no longer reload the annotation index, and unchanged index reloads do not redraw previews.
  • Choose which duplicate reference to change using a line picker in Live Preview.
  • Optionally remove previews when deleting a region, while keeping captions and surrounding writing.
  • Review and remove unavailable references with a new command.
  • Review unused image snapshots and move them to trash. Cleanup protects referenced images, including caption links and unsaved Markdown editor text, and rechecks before removal.
  • Reject oversized remote images early when the server supplies a size. The downloaded-byte check remains in place when it does not.

Lint, TypeScript, 52 behavior tests, build, and packaging checks passed. Full desktop workflow verification was interrupted by an unresponsive Obsidian CLI. Mobile touch behavior remains untested.

Requires Obsidian 1.8.7 or later.

0.1.2

Choose a tag to compare

@github-actions github-actions released this 20 Sep 05:18

0.1.2

  • Fix clean dependency installation with npm 10 and npm 11 so Obsidian API types resolve during checks.
  • Publish only main.js, manifest.json, and styles.css as release assets.
  • Remove the CSS !important override while keeping unused controls hidden.

Image and note pickers list vault file paths when you open them. This supports choosing existing images and notes.
The plugin does not upload vault content.

Requires Obsidian 1.8.7 or later.

0.1.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 05:07

0.1.1

Mark part of an image, add a caption, and attach it to a note.

  • Draw rectangular or polygonal regions.
  • Attach regions to notes or paragraphs with Markdown captions.
  • Show an image and caption, or use a collapsed preview.
  • Rename or redraw saved regions without losing their note attachments.
  • Save web images in the vault for later use.

The plugin, installation folder, and release archive use the name Image Annotation.
Requires Obsidian 1.8.7 or later.

Includes the corrected lockfile for clean installations and release builds.