Skip to content

About

No description, website, or topics provided.

Resources

Stars

130 stars

Watchers

3 watching

Forks

Latest commit

 

History

130 Commits

Folders and files

Repository files navigation

Obsidian Excalidraw Scripts

English | 简体中文

Custom Excalidraw Automate scripts and libraries maintained by Bowen-0x00. This is the script distribution repository, not the plugin source or plugin binary repository.

  • Script catalog, descriptions and installation buttons: Scripts/index.md.
  • Recommended plugin: Excalidraw-ymjr. Many Feature engines require its custom hooks; compatibility with the original plugin must be checked per script.
  • Ready-to-open examples: example vault.

Native tables: themes and templates

Requires Excalidraw-ymjr 2.29.0-4 or later. These are real canvas exports and Obsidian screenshots, not mockups.

Eight one-click palettes

Light, dark, Morandi, academic and sketch table palettes

Editable theme overview

Five composable border templates

Grid, framed, dashed, three-line and borderless tables

Editable border overview

Images, diagrams and source-preserving ellipsis

Native image and diagram cells alongside fixed-height ellipsis

Editable content examples

Floating appearance controls

Actual Obsidian table theme and appearance controls

Native fills · Soft shadow · Narrow-window UI

  • Automatic rows grow and shrink with content; fixed rows show ellipsis while retaining the full editable text. Images and diagram groups remain native editable elements.
  • Create tables from the host command palette, paste Markdown, or install Action-Table-Generate 1.1.0. Action-Table-Modify 1.1.0 provides row/column and properties shortcuts. The host owns layout and interaction; no table Engine is required.
  • Upgrade: stop and remove old Feature-Table-Engine.md and Feature-Table-Paste-MD.md, then restart Obsidian before opening old tables. Retiring catalog entries does not uninstall existing files. Back up drawings before automatic migration.
  • All 26 portable editable examples embed their image resources. Exact three-line borders, native fills and one table-paper shadow survive PNG/SVG export. Switching themes is one undoable operation.
  • Verified in Windows Obsidian 1.14.4. The 430px screenshot is desktop viewport emulation, not physical mobile validation. Version 2.29.0-3 and older do not include this native-table implementation.

See it in action

These recordings show the capabilities behind the scripts: structured diagrams, rich content, animation and interactive canvases. Some were recorded before the script refactor, so menus and filenames may differ; the links below lead to the current script categories.

Sixteen real examples generated on an Excalidraw canvas—not pasted chart images. In the live canvas, hover for values, toggle legend entries, and edit chart data and appearance through the editor.

Static SVG export of sixteen editable, interactive ECharts examples on an Excalidraw canvas

This SVG is a static preview. Download the editable Excalidraw canvas and open it in Obsidian with Excalidraw-ymjr and the ECharts engine to interact with the charts.

Real Obsidian UI: configure series, mixed bar/line charts and independent Y axes. Screenshots show the Chinese UI.

Actual ECharts editor with a live dual-axis mixed chart preview

Create branches, expand or collapse nodes, and arrange the tree.

Creating and arranging an interactive mindmap in Excalidraw

Move between Markdown outlines and a visual mindmap.

Converting between a Markdown outline and an Excalidraw mindmap

Turn canvas text into readable, styled code blocks.

Syntax-highlighted code blocks on an Excalidraw canvas

Bring data charts into the same drawing as your explanation.

Creating and editing ECharts charts inside Excalidraw

Load, switch, and lay out reusable symbol libraries as you draw.

Loading reusable shapes from Excalidraw libraries

Show direction and flow with animated lines and arrows.

Animated flows and moving arrows in an Excalidraw diagram

Use straight, curved and elbow connectors to organize a diagram.

Changing the shapes of connections between diagram nodes

Stretch selected parts of an arrow while keeping its shape useful.

Resizing custom arrows while preserving their arrowheads

Reveal supporting content without crowding the main diagram.

Expanding and collapsing supporting details in a drawing

Emphasize relationships and paths between elements.

Highlighting connections between elements in a visual diagram

Take drawings with embedded content beyond the canvas.

Exporting an Excalidraw drawing containing text, code and charts

Organize canvas elements with editable tag metadata.

Adding and managing tags on Excalidraw elements
More demos: text styling, canvas layout and mobile

Text styling

Text scripts provide global and partial text formatting.

Examples of bold text, partial text color and other text formatting

Make room in a drawing

Insert vertical space to move existing content out of the way.

Inserting vertical space between existing canvas elements

Mobile mindmaps

This historical mobile recording illustrates the interaction, not a verification of the current release on every phone or tablet.

Historical mobile recording of an interactive Excalidraw mindmap

More recordings can be added to this gallery as the scripts evolve. See all demo assets, the example vault, and the video walkthrough.

Progressive drawing animation 1.2.1

Update Action-Progressive-Drawing-Animator.md, then stop and close the old console before running the script again.

  • Ordinary text now reveals character by character: the native cached-canvas draw call receives its required position offset instead of silently falling back to the complete sentence.
  • Optional Slide navigation moves the viewport before animating elements in the next frame or a saved customData.slideshow path region. Disable it to keep the current viewport.
  • Uses Excalidraw-ymjr's EA_Core hooks. Actual intermediate canvas frames, pause/resume and two-frame navigation were checked on Windows Obsidian 1.14.4 with Excalidraw-ymjr 2.29.0-5; physical mobile devices were not tested.

ECharts 1.3.1

Update both Feature-Echarts-Engine.md and Action-Echarts-Manager.md to 1.3.1. Close old editor dialogs and rerun the engine before opening the manager.

  • Multiple named/color-coded series; grouped and stacked bar/area comparisons.
  • Mixed bar/line/area series with left/right Y axes; numeric XY scatter, radar, funnel, gauge and rose charts alongside the existing common charts.
  • CSV/Excel TSV with headers, quoted fields and multiple value columns; a synchronized table editor, axis titles and data zoom.
  • Complete saved data for reopening; old option-only charts stay intact in custom JSON mode. Pie/funnel/gauge views select a metric without deleting other series.
  • Per-chart SVG export no longer depends on the first live iframe.

Full-resolution SVG overview · Editable Excalidraw canvas · CSV editing screenshot. The README SVG does not run ECharts: interaction is available inside the Excalidraw canvas with the current engine. Hover for values, click legend entries to toggle series, and double-click a chart or run the manager Action to edit its data, type, colors and axes; saved configuration remains editable after reopening. All data is synthetic; the heatmap uses custom JSON, not a dedicated heatmap form.

Verified in Obsidian 1.14.4, Excalidraw-ymjr 2.29.0-3, ECharts 5.4.3: real canvas insertion/editing, saved-file reopening, sixteen exported examples and actual editor screenshots. A narrow desktop viewport was checked; this is not a mobile-device compatibility claim.

1.3.1 creation fix: saving now obtains a view-scoped EA from the plugin-owned factory instead of an expired startup-script instance. The Action checks both the runtime and editor data protocol so an older duplicate editor cannot receive the new multi-series model and crash on initialData.values. Keep only one enabled engine version; an old engine under Agent-Drawing, Downloaded(Custom) or a nested demo vault can override a newer one. Git ignore rules do not limit Obsidian's script discovery.

  • New chart: open an Excalidraw drawing, press Esc to finish text editing and clear the selection, run the manager Action, edit the table or bulk text, then choose Generate / Update.
  • Text to chart: create one canvas text element with CSV such as Category,Revenue,Cost followed by Jan,120,80 and Feb,150,95 on separate lines. Press Esc, select the entire text element with the selection tool (not characters in text-edit mode), and run the manager. Cancel keeps the source text; saving replaces it with the chart.
  • Existing chart: select its container and run the manager, or double-click it. If an older duplicate was active, close the editor and restart Obsidian after updating, then run the intended engine.

The 1.3.1 lifecycle fix was exercised in Obsidian 1.14.4 with Excalidraw-ymjr 2.29.0-5: the startup EA was destroyed and its drawing closed before creating a chart in another drawing; new-chart saving, text conversion/cancellation and existing-chart editing succeeded.

Vector & Multi-Color Icon Library 1.0.0

Install Action-Icon-Library.md. Requires Excalidraw-ymjr 2.29.0-9 or later.

  • Multi-color and single-color vector icons: Native svgLayers multi-path rendering on atomic elements. Renders icons with Rough sketch styling or crisp pure vector geometry.
  • Dynamic styling & palette responsiveness: Single-color icons dynamically respond to stroke color and background fill from Excalidraw's property panel. Multi-color icons retain original colors or support outline and fill tinting.
  • Vault folder as source of truth: Select any folder in your Vault using the interactive folder picker modal; subfolders are automatically mapped to categories. Configured path is persisted to standard script settings.
  • JIT 2D box placement: Inserts icons as native 2D bounding boxes at viewport center; supports standard 8-handle scaling, aspect ratio locking, and smooth movement without vertex collapse.

Hand-drawn and sharp vector gallery

Multi-color vector icons gallery in rough and sharp modes

Modal search and category picker

Icon library modal UI with search, categories, and size selector

Install from the custom script market

  1. Install and enable Excalidraw-ymjr. The plugin repository documents BRAT and manual installation; this repository does not install the plugin itself.

  2. In the plugin settings, configure a scripts folder and set Custom script store URL to:

    https://raw.githubusercontent.com/Bowen-0x00/obsidian-excalidraw-scripts/main/Scripts/index.md
    
  3. Open an Excalidraw drawing. Choose Install or update Excalidraw Scripts (Custom) from the drawing's menu or header action. The ordinary community script store is a different catalog.

  4. Use the category tables to find a script, read its description and dependencies, and click its install button. Custom-market downloads are stored beneath the configured scripts folder in Downloaded(Custom)/.

  5. Install the required Feature-*-Engine scripts as well as the corresponding Action-* scripts. An Action performs an operation; an Engine provides background rendering or interaction. Review each script's dependencies, usage and autorun metadata before enabling it.

Some plugin versions default to the Gitee market URL. Both repositories must be synchronized: updating GitHub alone does not update that default catalog. The catalog's source and its embedded script download URLs are separate; the current generated catalog downloads scripts from GitHub raw.

Scripts execute code inside your vault. Review the source, back up important drawings, and try unfamiliar scripts in a disposable vault first. Some scripts communicate with external applications or services; their prerequisites are script-specific.

Manual installation

Download the desired .md file from Scripts/ into the scripts folder configured in Excalidraw-ymjr. Keep its filename and any adjacent .svg icon, and install its required engines. Category subfolders can be retained for organization. Run Actions from the Excalidraw script interface or registered commands with a drawing open. Engine lifecycle and startup behavior depend on the plugin and the script's metadata.

Do not install repository documentation, index.md, directory-info.json, or maintenance utilities as scripts. Do not keep multiple copies of the same script under different subfolders: that makes command selection and updates ambiguous.

Available capabilities

The catalog is the complete, current list. Representative groups:

Area Script categories
Structured drawings mindmap, table, swimlane, outline
Shapes and connections generate, arrow, brace, connection
Text and visual styling text, color, gradient, shadow, code-highlight
Interaction and navigation hover, layer, detail, link, follow, zoom
Animation and charts animation, gif, step-appear, echarts, wave-drom
Tools and integrations library, latex, export, clipboard, select, distribute

Library/ contains additional Excalidraw libraries. The gallery above links existing demonstrations to current script categories; use the catalog for installation instructions and script dependencies.

Versions and updates

Each script has its own version in YAML frontmatter. This is independent of the Excalidraw-ymjr plugin version. Check the downloaded file's frontmatter against the catalog's Version field when troubleshooting.

The Markdown custom market currently uses the fname and mtime entries in Scripts/directory-info.json to detect updates; it does not compare semantic version strings. Keep the catalog, metadata and actual script files from the same publication. Reopen the custom market after an update and verify the installed file, rather than relying only on an “up to date” button.

If a download fails, check the custom-market URL, network access to raw.githubusercontent.com, required plugin/engine versions and any duplicate local copies. Report the exact script filename, its version, plugin version, Obsidian version and reproduction steps in Issues. Never include tokens or private vault content.

Swimlane collapse fix — 1.0.1

Update Feature-Swimlane-Engine and run the engine once again to replace its existing hooks. Collapse and expand now use the clicked drawing's EA instance instead of the instance captured at engine startup. This prevents edits from going to another drawing and keeps the controls working after the startup drawing closes. Existing swimlanes do not need to be marked again; no plugin update is required.

Verified on Windows in an isolated Obsidian 1.14.4 vault with Excalidraw-ymjr 2.29.0-3: cross-drawing collapse leaves the other drawing unchanged, controls work after startup-view disposal, child visibility is restored on expansion, and a saved collapsed drawing can be reopened and expanded. Physical mobile devices were not tested.

Repository maintenance

Published scripts live under Scripts/<category>/. Scripts/index.md is a plugin-consumed document: category tables come first, followed by one description and excalidraw-script-install block per script. Scripts/directory-info.json is the update-detection inventory, not an installation manifest.

The Node.js maintenance entry is node Scripts/get_json.js (paths are resolved from the utility's own directory). Regenerate metadata and the market page after changing scripts; do not hand-edit generated versions or installation URLs. Respect .gitignore, review the explicit publication file list, and never mirror an entire development scripts folder into this repository. Test files, private prompts, credentials and vault state do not belong in a publication.

Maintainers publish the same main commit to GitHub and Gitee. Configure origin with both HTTPS push URLs and repository-local remote.pushDefault=origin, branch.main.pushRemote=origin, and push.default=simple; then run git push once from main. These settings are local, not inherited by new clones. Verify both remote refs and raw catalogs afterward: a multi-target push can succeed on one host and fail on the other.

Automatic Agent bundle updates

The Agent package imports only the shared Engines declared in its bridge/shared-scripts.json. Maintain those Engine sources here, not in both repositories.

On GitHub main push, Notify Agent Skill reads that target manifest and dispatches only when declared source files or notification configuration changed; unrelated scripts are skipped. The Agent receiver validates a pinned source snapshot and opens/updates one reviewable synchronization PR. Deletion/rename of a required source is an error, not a reason to retain a silent stale copy. There is no periodic receiver check; use Run workflow to catch up if a notification fails or is missed.

Both repositories need the Actions secret SKILL_SYNC_TOKEN; use a dedicated expiring fine-grained token for the target Agent repository (Contents and Pull requests read/write, Metadata read). Do not commit credentials. A GitHub push notification does not prove the Gitee mirror updated; keep the two existing publication targets synchronized separately. A sync PR is not an automatic Skill release, vault deployment or Engine reload. See the Agent maintenance contract.

Credits and license

Thanks to Zsolt Viczian and the Obsidian Excalidraw contributors and the Excalidraw contributors. Preserve script authorship and license metadata; check the license declared by each script or library instead of assuming a repository-wide license.

Support

Feedback: GitHub Issues or Bilibili.

If these scripts help you, you can buy me a coffee or use the WeChat sponsorship code.

About

No description, website, or topics provided.

Resources

Stars

130 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages