Socket
Book a DemoInstallSign in
Socket

excalidraw-to-svg

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

excalidraw-to-svg

Node Library to transform excalidraw diagrams into svgs

latest
npmnpm
Version
3.1.0
Version published
Weekly downloads
4
-71.43%
Maintainers
1
Weekly downloads
 
Created
Source

Excalidraw to SVG

Node Library to transform excalidraw diagrams into svgs! Useful if you are storing excalidraw diagrams in repos and want a pipeline to export them.

Note, this is a NodeJS library, if you want to get an svg in a web-app, use the @excalidraw/utils library.

Please consider supporting Excalidraw by getting Excalidraw Plus!

Usage

CLI

You can run this package as a CLI tool by using npx (or if you have it installed as a node dependency). It takes in two arguments, the path to the diagram you want to convert, and the output path (which can either be an exact path, or folder).

Note, this version returns a string version of the element (an artifact of .outerHTML), if you want to interact with the svg node elements, use the API below.

npx excalidraw-to-svg ./diagrams/example.excalidraw ./output

API

You can install this package as a dependency for a project, and have it build svgs on the JSON files or objects. Note, this function returns a DOM element, so if you want a string, use .outerHTML to get the string content.

const excalidrawToSvg = require("excalidrawToSvg");
const excalidrawDiagram = {
  type: "excalidraw",
  version: 2,
  source: "https://excalidraw.com",
  elements: [
    {
      id: "vWrqOAfkind2qcm7LDAGZ",
      type: "ellipse",
      x: 414,
      y: 237,
      width: 214,
      height: 214,
      angle: 0,
      strokeColor: "#000000",
      backgroundColor: "#15aabf",
      fillStyle: "hachure",
      strokeWidth: 1,
      strokeStyle: "solid",
      roughness: 1,
      opacity: 100,
      groupIds: [],
      strokeSharpness: "sharp",
      seed: 1041657908,
      version: 120,
      versionNonce: 1188004276,
      isDeleted: false,
      boundElementIds: null,
    },
  ],
  appState: {
    viewBackgroundColor: "#ffffff",
    gridSize: null,
  },
};

const diagramSvg = await excalidrawToSvg(excalidrawDiagram);
console.log(diagram.outerHTML);

Why?

In order to expose diagrams in an interactive web interface, you may want to expose excalidraw diagrams as svgs. This might be useful in a larger toolchain that also injects links and other meta data into a web interface.

Keywords

excalidraw

FAQs

Package last updated on 13 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts