Skip to content

Releases: SattaRIP/obsidian-annotate

v1.0.6 - Performance Optimization

16 Mar 18:29

Choose a tag to compare

Major Performance Improvements

This release dramatically improves drawing performance through a layered canvas architecture and stroke caching optimizations.

Performance Gains

  • 10-100× faster drawing with many strokes on canvas
  • 2-10× faster calligraphy rendering
  • Zero lag when drawing with 100+ existing strokes

Technical Improvements

Layered Canvas Architecture

  • Split rendering into background (completed strokes) and foreground (current stroke)
  • Background canvas caches completed strokes, only redraws when modified
  • Foreground canvas only redraws current stroke during active drawing
  • Reduces render complexity from O(all strokes) to O(1 stroke)

Calligraphy Optimization

  • Cache stroke length calculation on completion
  • Eliminate redundant O(points) loop on every render
  • Store cached values in JSON for persistence

Bug Fixes

  • ✅ Fixed Clear button opening minimized windows (now uses Obsidian Modal)
  • ✅ Fixed cursor showing I-beam instead of crosshair for drawing
  • ✅ Fixed drawing lag with requestAnimationFrame throttling

Testing

Tested with:

  • Drawing sessions with 100+ strokes
  • All pen types (fountain, calligraphy, marker, pencil)
  • Pan/zoom operations during drawing
  • Undo/redo with complex stroke histories
  • Theme switching
  • Canvas resizing

Full Changelog: v1.0.5...v1.0.6

v1.0.6 - Performance Optimization

16 Mar 22:40

Choose a tag to compare

Major Performance Improvements

This release dramatically improves drawing performance through a layered canvas architecture and stroke caching optimizations.

Performance Gains

  • 10-100× faster drawing with many strokes on canvas
  • 2-10× faster calligraphy rendering
  • Zero lag when drawing with 100+ existing strokes

Technical Improvements

Layered Canvas Architecture

  • Split rendering into background (completed strokes) and foreground (current stroke)
  • Background canvas caches completed strokes, only redraws when modified
  • Foreground canvas only redraws current stroke during active drawing
  • Reduces render complexity from O(all strokes) to O(1 stroke)

Calligraphy Optimization

  • Cache stroke length calculation on completion
  • Eliminate redundant O(points) loop on every render
  • Store cached values in JSON for persistence

Bug Fixes

  • ✅ Fixed Clear button opening minimized windows (now uses Obsidian Modal)
  • ✅ Fixed cursor showing I-beam instead of crosshair for drawing
  • ✅ Fixed drawing lag with requestAnimationFrame throttling

Testing

Tested with:

  • Drawing sessions with 100+ strokes
  • All pen types (fountain, calligraphy, marker, pencil)
  • Pan/zoom operations during drawing
  • Undo/redo with complex stroke histories
  • Theme switching
  • Canvas resizing

Full Changelog: v1.0.5...v1.0.6

1.0.5 - Update Description

06 Mar 06:39

Choose a tag to compare

Changes

  • Shortened plugin description to meet Obsidian community plugins requirements

This is a metadata-only update to pass the automated validation for the Obsidian community plugins repository.

v1.0.4 - Fix PDF Detection

06 Mar 05:08

Choose a tag to compare

Bug Fixes

  • Fixed PDF Detection: OCR command now properly detects when a PDF file is open
    • Previous version only looked for markdown files, causing "No file is currently open" error
    • Now works with PDFs, images, and any file type
    • If inserting text and no markdown editor is open, text is copied to clipboard instead

Usage

  1. Open a PDF or image file in Obsidian
  2. Run command: "OCR current file (image/PDF)" from command palette (Ctrl/Cmd+P)
  3. Wait for processing (you'll see progress notifications)
  4. Review and edit the extracted text in the modal
  5. Click "Insert" to add to your current note (or it will copy to clipboard if viewing a PDF)

v1.0.3 - Fix OCR Logic

06 Mar 04:59

Choose a tag to compare

Bug Fixes

  • Fixed OCR Current File Command: Resolved logic error where the command would check MyScript settings but then fail because Google Cloud Vision is required
    • Image/PDF OCR now always requires Google Cloud Vision API key (MyScript only works with stroke data from canvas)
    • Clearer error message when Google Cloud Vision key is not configured
    • Simplified OCR provider logic for image processing

Notes

If you're using the "OCR current file" command, make sure you have a valid Google Cloud Vision API key configured in Settings > Annotate. You can get one from: https://console.cloud.google.com/apis/library/vision.googleapis.com

v1.0.2 - OCR Current File

06 Mar 04:43

Choose a tag to compare

New Features

  • OCR Current File Command: OCR any open PDF or image file directly from Obsidian
    • Access via command palette: "OCR current file (image/PDF)"
    • Supports multi-page PDFs (auto-converts to images)
    • Supports image files (PNG, JPG, JPEG, GIF, BMP)
    • Uses Google Cloud Vision API (same configuration as canvas OCR)
    • Shows results in modal with one-click insert

Technical Details

  • PDF pages are converted to PNG using pdftoppm
  • Each page is processed separately for multi-page PDFs
  • Results are displayed in the same ExtractedTextModal used for canvas OCR
  • API usage is tracked and displayed in settings

Requirements

  • Google Cloud Vision API key configured in settings
  • pdftoppm installed for PDF support (usually part of poppler-utils package)

v1.0.1 - Author info correction

06 Mar 03:16

Choose a tag to compare

Fixed author information to match GitHub profile (Mythra PS).

No functionality changes from v1.0.0.

v1.0.0 - Initial Release

05 Mar 22:54

Choose a tag to compare

Features

  • Inline Handwriting: Embed handwriting sections between paragraphs in markdown notes
  • Realistic Pens: Fountain pen, calligraphy nib (flat-edge with pressure), marker, and pencil
  • Stroke Smoothing: Adjustable stabilization (0-10) for shaky hands
  • Dual OCR Providers: MyScript (2000 free/month, 98% accuracy) + Google Cloud Vision (1000 free/month)
  • Drawing Tools: Draw, erase, pan modes with zoom support
  • Stylus Support: Pressure sensitivity and twist detection for calligraphy pen rotation
  • Auto-save: All strokes saved to JSON data files
  • Undo/Redo: Full history support

Installation

Download main.js, manifest.json, and styles.css from the assets below and place them in .obsidian/plugins/annotate/ in your vault.

OCR Setup

To use OCR features:

  1. Go to Settings → Annotate
  2. Choose your OCR provider (MyScript or Google Cloud Vision)
  3. Enter your API keys (see README for setup guides)

🤖 Generated with Claude Code