Go to file
Brett Zamir 9f65b1adb9 - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`)
- Breaking change: Locale now formatted as export
- Breaking change: Moved out remaining modular i18n (imagelib) to own folder
- Breaking change: Drop `executeAfterLoads` (and getJSPDF/getCanvg)
- Breaking change: `RGBColor` must accept `new`
- Breaking change: canvg - `stackBlurCanvasRGBA` must be set now by function (`setStackBlurCanvasRGBA`) rather than global; `canvg` now a named export
- Breaking change: Avoid passing `canvg`/`buildCanvgCallback` to extensions (have them import)
- Fix: i18nize imaglib more deeply
- Fix: Positioning of Document Properties dialog (Fixes #246)
- Fix (regression): PDF Export (Fixes #249)
- Fix (regression): Add polyfill for `ChildNode`/`ParentNode` (and use further)
- Fix (regression): Apply Babel universally to dependencies
- Fix (regression): Ordering of `uaPrefix` function in `svgEditor.js`
- Fix (regression): Embedded API
- Fix (embedded editor): Fix backspace key in Firefox so it doesn't navigate out of frame
- Fix: Alert if no exportWindow for PDF (e.g., if blocked)
- Refactoring( RGBColor) `RGBColor` as class, without rebuilding constants, optimize string replacement, move methods to prototype, use templates and object literals, use `Object.keys`
- Refactoring (canvg) Use classes more internally, use shorthand objects; array extras, return to lazy-loading
- Refactoring: Use Promises in place of `$.getScript`; always return Promises in case deciding to await resolving
- Refactoring: Avoid importing `RGBColor` into `svgutils.js` (jsPDF imports it itself)
- Refactoring: Arrow functions, destructuring, shorter property references
- Refactoring: Fix `lang` and `dir` for locales (though not in use currently anyways)
- Refactoring: Provide path config for canvg, jspdf
2018-06-12 06:50:28 +08:00
build/tools (INCOMPLETE: ES6 Module conversion and linting) 2018-05-22 18:02:57 +08:00
chrome-app (INCOMPLETE: ES6 Module conversion and linting) 2018-05-22 18:02:57 +08:00
clipart Reidentify all elements imported into the drawing. Add tests for it. 2010-02-22 00:56:19 +00:00
demos - Demos: Add svgcanvas demo (Neil Fraser) 2018-05-29 07:17:30 +08:00
dist - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
docs - Docs: Further exclusions 2018-05-31 17:45:48 +08:00
editor - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
examples - Linting (ESLint): Use two spaces for indent 2018-05-18 14:05:52 +08:00
firefox-extension (INCOMPLETE: ES6 Module conversion and linting) 2018-05-22 18:02:57 +08:00
opera-widget (INCOMPLETE: ES6 Module conversion and linting) 2018-05-22 18:02:57 +08:00
screencasts - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
test - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
.babelrc - Breaking change: Rename config file to `svgedit-config-iife.js` (or for the module version, `svgedit-config-es.js`); 2018-05-25 20:03:14 +08:00
.eslintignore - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
.eslintrc - Breaking change: Rename config file to `svgedit-config-iife.js` (or for the module version, `svgedit-config-es.js`); 2018-05-25 20:03:14 +08:00
.gitignore - Move jsdoc output to public directory so may be visible on releases (while still having in a `.gitignore`) 2018-05-30 11:32:56 +08:00
.npmignore - npmignore: Allow `docs` 2018-05-26 11:23:34 +08:00
.remarkrc - Linting (HTML): Use double-quotes for attributes, remove redundant `type=text/css`, 2018-05-13 09:58:13 +08:00
AUTHORS - Linting (HTML): Use double-quotes for attributes, remove redundant `type=text/css`, 2018-05-13 09:58:13 +08:00
CHANGES.md - Docs: Add README link to pre-release 2018-05-30 10:57:28 +08:00
LICENSE-MIT.txt - Linting (HTML): Use double-quotes for attributes, remove redundant `type=text/css`, 2018-05-13 09:58:13 +08:00
Makefile Added new files to Makefile. Added underscores to private members in HistoryRecordingService. 2016-05-02 12:27:53 -04:00
README.md - Docs: Reference JSDocs in README 2018-05-30 11:40:55 +08:00
build-html.js - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
composer.json - Linting (HTML): Use double-quotes for attributes, remove redundant `type=text/css`, 2018-05-13 09:58:13 +08:00
package-lock.json - Docs: Add README link to pre-release 2018-05-30 10:57:28 +08:00
package.json - npm: Update devDep Rollup 2018-06-06 16:44:19 +08:00
rollup-config.config.js - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
rollup.config.js - Breaking change: Extension now formatted as export (and `this` is set to editor, including for `callback`) 2018-06-12 06:50:28 +08:00
svgedit-config-sample-es.js - Default to stylesheet above `editor` directory 2018-05-28 16:43:34 +08:00

README.md

alt text SVG-edit

SVG-edit is a fast, web-based, javascript-driven SVG drawing editor that works in any modern browser.

Demo

Try SVG-edit here

(Also available as a download in releases).

You may also try the pre-release (or the ES6-Module version, assuming a modern browser).

Installation

Note that steps 1-2 below are only necessary if you wish to integrate SVG-edit into your own npm package; otherwise, you can skip those steps and instead of looking within node_modules/svgedit, look within your copy of the svgedit Git repo.

  1. Set up an npm package of your own: npm init (complete the fields).
  2. Install SVG-edit into your package: npm i svgedit
  3. Copy svgedit-config-sample-es.js (in the SVG-edit project root; see node_modules/svgedit) to svgedit-config-es.js.
  4. This will enable svg-editor-es.html to work, an HTML file directly using ES6 modules. Note that this file only works on modern browsers. The config file now imports the SVG edit code, minimizing the scripts that need to be referenced in the HTML file.
  5. To also build a rolled-up, Babelified, non-ES Modules (IIFE) JavaScript file which will allow svg-editor.html to work, a file which does not rely on ES6 Modules support, follow these steps:
  6. Run npm install within the node_modules/svgedit directory to install the build tools for SVG-edit.
  7. Run npm run build-config within the node_modules/svgedit directory.
  8. If you wish to make changes to the HTML, modify svg-editor-es.html and then run npm run build-html to have the changes properly copied to svg-editor.html.

Recent news

  • 2018-05-26 Published 3.0.0-alpha.2 with ES6 Modules support
  • 2017-07 Added to Packagist: https://packagist.org/packages/svg-edit/svgedit
  • 2015-12-02 SVG-edit 2.8.1 was released.
  • 2015-11-24 SVG-edit 2.8 was released.
  • 2015-11-24 Code, issue tracking, and docs are being moved to github (previously code.google.com).
  • 2014-04-17 2.7 and stable branches updated to reflect 2.7.1 important bug fixes for the embedded editor.
  • 2014-04-07 SVG-edit 2.7 was released.
  • 2013-01-15 SVG-edit 2.6 was released.

Videos

Supported browsers

The following browsers had been tested for 2.6 or earlier and will probably continue to work with 2.8.

  • Firefox 1.5+
  • Opera 9.50+
  • Safari 4+
  • Chrome 1+
  • IE 9+ and Edge

Further reading and more information