5.3.1 • Published 10 months ago

svgson v5.3.1

Weekly downloads
20,511
License
MIT
Repository
github
Last release
10 months ago

v2 docs

Install

yarn add svgson

Usage

const { parse, stringify } = require('svgson')

// ----------------------------
// Convert SVG to JSON AST
// ----------------------------
parse(`
  <svg>
    <line
      stroke= "#bada55"
      stroke-width= "2"
      stroke-linecap= "round"
      x1= "70"
      y1= "80"
      x2= "250"
      y2= "150">
    </line>
  </svg>`).then((json) => {
  console.log(JSON.stringify(json, null, 2))
  /*
    {
      name: 'svg',
      type: 'element',
      value: '',
      attributes: {},
      parent: null,
      children: [
        {
          name: 'line',
          type: 'element',
          value: '',
          attributes: {
            stroke: '#bada55',
            'stroke-width': '2',
            'stroke-linecap': 'round',
            x1: '70',
            y1: '80',
            x2: '250',
            y2: '150'
          },
          parent: null,
          children: []
        }
      ]
    }
  */

  // -------------------------------
  // Convert JSON AST back to SVG
  // -------------------------------
  const mysvg = stringify(json)
  /* returns the SVG as string */
})

Test in browser here

API

svgson.parse

svgson.parse(input[, options])

Returns: Promise

  • input

    Type: String

  • options.transformNode

    Function to apply on each node when parsing, useful when need to reshape nodes or set default attributes.

    Type: Function that returns the node

    Default:

    function(node){
      return node
    }
  • options.camelcase

    Apply camelCase into attributes

    Type: Boolean

    Default: false

svgson.parseSync

Added in 3.1.0

svgson.parseSync(input[, options])

This function is a synchronous version of svgson.parse. The arguments are the same, but unlike svgson.parse, the return value is not wrapped in a Promise.

Returns: Object [Object]

svgson.stringify

svg = svgson.stringify(ast[, options])

Returns: String

  • ast

    svgson parsed result.

    Type: Object [Object]

  • options.transformAttr

    Function to apply on each attribute when stringifying.

    Type: Function that returns the key/attribute string with the ability to use the escape function on it.

    Default:

    function(key, value, escape) {
      return `${key}="${escape(value)}"`
    }
    • options.transformNode

    Function to apply on each node when stringifying, useful when need to reshape nodes or change/update values.

    Type: Function that returns the node

    Default:

    function(node){
      return node
    }
  • options.selfClose

    Type: Boolean

    Default: true

  • Pretty Printing

    In order to generate pretty formatted SVG output, use pretty npm module:

    pretty = require('pretty')
    formatted = pretty(svg)

Related

svgson-cli Transform SVG into Object from the Command Line

element-to-path Convert SVG element into path

path-that-svg Convert entire SVG with path

svg-path-tools Tools to manipulate SVG path (d)

License

MIT © Lionel T

svg-lineart-animatorvue-svg-converter@ads-medienmanufaktur/easy-sprite@infinitebrahmanuniverse/nolb-svgs@everything-registry/sub-chunk-2859varnahtml2sketchk4us-shareicons-bundlerlist-icons-font-awesomemateriallistgenerator@bestminr/svg-icon-webpack-loader@aws-prototyping-sdk/cdk-graph-plugin-diagram@bolt/build-tools@bolt/elements-icon@bryansh/svelte-weather-icons@c-hive/team-contribution-calendar@aws/pdk@cicara/sico@cpin/cpin-icon@dicebear/avatars@dicebear/avatars-webpack-loader@deepvision/admin-kit@deepvision/svg-sprite-generator@granello-dev/spares-shared@fooddyshop/backend@glyphs/cli@grvsh02/homezy-design-system@iconfont-componentized/parser@ianczm/hilti-iconsframer-svg-component-generatorframer-svg-component-generator-testfigma2themeflexy-syncgen-fontopenrazerpath-that-svgnode-red-contrib-ui-svgnode-svg-fillplatforma-icons-librarymeistericonsprocedural-weaponspptx-parserpixelmapspostcss-embed-svgpwa-icons-generatorray-buildscale-that-svgsdsvgutilsreact-scripts-svgreact-svgsreact-native-svg-converterreact-native-svg-editorrenew-libreorder-svgrol-fla-parsersvg-spreactsvg-uniquesvg-mapssvg-path-animatorsvg-convert-to-pathsvg-chameleonsvg-change-color-exportsvg-component-convertersvg-icon-centersvg2rnsvgpdfsvgson-clisvgson-loadersvgtoavg-clisvgctrsssvgto-faiconsvgviewboxsvpugsvgicosvgicon-subset-webfonturbit-sigil-jsurbitme-sigil-jssketch-to-svg-json-loaderxtra-team-lit-board-to-datavite-awesome-svg-loader@akashic/akashic-cli-scan@aibee/bmap@lucide/build-icons@lona/svg-model@kalimahapps/vue-icons@infosecinnovations/project-fantastic@rocketsoftware/icons@rev-ai/screen-map@prisma-cms/world-module@muraldevkit/ds-utilities@muya-ui/baozheng-scripts@neodx/svg@neodx/svg-sprite@nfq/svg-to-react@testv/icons@svjson/core@svg-maps/cliaseprite-css
5.3.1

10 months ago

5.3.0

10 months ago

5.2.1

3 years ago

5.2.0

3 years ago

5.1.0

3 years ago

5.0.0

3 years ago

4.1.0

4 years ago

4.0.0

5 years ago

3.1.0

5 years ago

3.0.0

5 years ago

3.0.0-rc.0

5 years ago

2.1.1

6 years ago

2.1.0

7 years ago

2.0.4

7 years ago

2.0.3

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.2.2

8 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.1.0

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago