Excalidraw
by Zsolt Viczian
Score: 89/100
favorite
share
Description
Category: Note Enhancements

The Obsidian Excalidraw Plugin is a powerful tool for sketching and note-taking. It offers a range of features, including custom fonts, pens, and OCR support. Users can import SVG files, convert them into drawings, and edit properties with ease. The plugin also includes a script engine for executing macros and assigning shortcuts. Additionally, it supports QuickAdd, Templater, and Dataview plugins. The ExcalidrawAutomate feature allows users to automate repetitive tasks, such as auto-toggling pens or hardware eraser buttons. With its multilingual support and full drawing file history synchronization, the Obsidian Excalidraw Plugin is a valuable addition to any Obsidian user's toolkit.

Stats
4535
stars
3,268,026
downloads
244
forks
1,369
days
1
days
17
days
172
total PRs
8
open PRs
11
closed PRs
153
merged PRs
1,836
total issues
779
open issues
1,057
closed issues
407
commits
Latest Version
17 days ago
Changelog

Fixed

  • PDF export scenario described in #2184
  • Elbow arrows do not work within frames #2187
  • Embedding images into Excalidraw with areaRef links did not work as expected due to conflicting SVG viewbox and width and height values
  • Can't exit full-screen mode in popout windows using the Command Palette toggle action #2188
  • If the image mask extended beyond the image in "Mask and Crop" image mode, the mask got misaligned from the image.
  • PDF image embedding fixes that impacted some PDF files (not all):
    • When cropping the PDF page in the scene (by double-clicking the image to crop), the size and position of the PDF cutout drifted.
    • Using PDF++ there was a small offset in the position of the cutout in PDF++ and the image in Excalidraw.
    • Images cropped from PDF++ before Excalidraw's new cropping feature was introduced did not load.
    • Updated a number of scripts including Split Ellipse, Select Similar Elements, and Concatenate Lines

New in ExcalidrawAutomate

  /**
   * Add, modify, or delete keys in element.customData and preserve existing keys.
   * Creates customData={} if it does not exist.
   * Takes the element id for an element in ea.elementsDict and the newData to add or modify.
   * To delete keys set key value in newData to undefined. So {keyToBeDeleted:undefined} will be deleted.
   * @param id
   * @param newData 
   * @returns undefined if element does not exist in elementsDict, returns the modified element otherwise.
   */
  public addAppendUpdateCustomData(id:string, newData: Partial<Record<string, unknown>>);

Minor code refactoring

  • Replaced some instances of any with proper type
  • Removed few instances of //@ts-ignore
  • Updated javadoc-style documentation of ExcalidrawAutomate
  • Updated ExcalidrawAutomate lib
README file from