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.
Requires Excalidraw-ymjr 2.29.0-4 or later. These are real canvas exports and Obsidian screenshots, not mockups.
|
|
|
|
- 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-Generate1.1.0.Action-Table-Modify1.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.mdandFeature-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.
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. 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.
|
|
Create branches, expand or collapse nodes, and arrange the tree.
|
Move between Markdown outlines and a visual mindmap.
|
|
Turn canvas text into readable, styled code blocks.
|
Bring data charts into the same drawing as your explanation.
|
|
Load, switch, and lay out reusable symbol libraries as you draw.
|
Show direction and flow with animated lines and arrows.
|
|
Use straight, curved and elbow connectors to organize a diagram.
|
Stretch selected parts of an arrow while keeping its shape useful.
|
|
Reveal supporting content without crowding the main diagram.
|
Emphasize relationships and paths between elements.
|
|
Take drawings with embedded content beyond the canvas.
|
Organize canvas elements with editable tag metadata.
|
More demos: text styling, canvas layout and mobile
Text scripts provide global and partial text formatting.
Insert vertical space to move existing content out of the way.
This historical mobile recording illustrates the interaction, not a verification of the current release on every phone or tablet.
More recordings can be added to this gallery as the scripts evolve. See all demo assets, the example vault, and the video walkthrough.
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.slideshowpath 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.
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
Escto 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,Costfollowed byJan,120,80andFeb,150,95on separate lines. PressEsc, 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.
Install Action-Icon-Library.md. Requires Excalidraw-ymjr 2.29.0-9 or later.
- Multi-color and single-color vector icons: Native
svgLayersmulti-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.
|
|
|
-
Install and enable Excalidraw-ymjr. The plugin repository documents BRAT and manual installation; this repository does not install the plugin itself.
-
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 -
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.
-
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)/. -
Install the required
Feature-*-Enginescripts as well as the correspondingAction-*scripts. An Action performs an operation; an Engine provides background rendering or interaction. Review each script'sdependencies,usageandautorunmetadata 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.
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.
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.
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.
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.
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.
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.
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.
Feedback: GitHub Issues or Bilibili.
If these scripts help you, you can buy me a coffee or use the WeChat sponsorship code.
















