Skip to content
This repository has been archived by the owner on Apr 29, 2021. It is now read-only.

matanlurey/svg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SVG

Build Status

A pure-dart implementation of an SVG parser. The end goal of this package is to provide a semi-full featured implementation that is able to run in both the browser and on the server (or command line tooling).

Example

import 'package:svg/svg.path';

void main() {
  // Parses an "up-arrow" shape segment.
  print(parseSvgPath('M0,15,L15,15L7.5,0z'));

  // Outputs:
  // [
  //   SvgPathMoveSegment {x: 0, y: 15, isRelative: false},
  //   SvgPathLineSegment {x: 15, y: 15, isRelative: false}, 
  //   SvgPathLineSegment {x: 7.5, y: 0, isRelative: false}, 
  //   SvgPathClose {}
  // ]
}

Generating Dart code

Don't want to ship the SVG parser with your client? You can statically analyze SVG files and generate raw Dart code instead!

svgPathToSource('M0,15,L15,15L7.5,0z')

// Outputs
/*
 'const <SvgPathSegment> ['
   'const SvgPathMoveSegment(0, 15), '
   'const SvgPathLineSegment(15, 15), '
   'const SvgPathLineSegment(7.5, 0), '
   'const SvgPathClose()'
 ']'
*/

Currently supported

  • Parsing a single SVG path that contains move, line, and close commands.
  • Converting a single SVG path to raw Dart (generated) code.

About

An SVG parser implemented in pure Dart.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages