Node.js based chromium devtools for converting SVG files to Skia Vector Icon files
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
LICENSE
README.md
package.json

README.md

Skiafy

Node.js based chromium devtools for converting SVG files to Skia Vector Icon files

Installation

$ [sudo] npm install -g skiafy

Usage

CLI

Usage:
  skiafy [OPTIONS] [ARGS]

Options:
  -h, --help: Help
  -v, --version : Version
  -n, --no-optimize : Not optimize SVG files (use SVGO for optimization)
  -s STRING, --string=STRING : Input SVG data string
  -i INPUT, --input=INPUT : Input file or folder, "-" for STDIN
     (for folder, convert all *.svg files to *.icon files)
  -o OUTPUT, --output=OUTPUT : Output file or folder, "-" for STDOUT
  -q, --quiet: Only show error messages

Arguments:
  INPUT : Alias to --input
  • With files:

    $ skiafy a.svg b.svg

    Output a.icon, b.icon

    $ skiafy -i a.svg -o test.icon -i b.svg -o /tmp/b.icon some.svg thing.svg

    Output test.icon, /tmp/b.icon, some.icon and thing.icon

    $ skiafy -o /tmp/myfolder *.svg

    Convert all svg files, output icon files to folder /tmp/myfolder

  • With folders:

    $ skiafy /tmp/myfolder

    or

    $ skiafy -i /tmp/myfolder

    Convert all svg files in /tmp/myfolder

    $ skiafy -i /tmp/myfolder -o /path/to/yourfolder

    Convert all svg file in /tmp/myfolder and output icon files to /path/to/yourfolder

    $ skiafy -i a.svg -o test.icon -i b.svg -o /tmp/b.icon some.svg thing.svg

    Output test.icon, /tmp/b.icon, some.icon and thing.icon

  • With STDIN / STDOUT

    $ cat a.svg | skiafy >/tmp/a.icon
    $ skiafy -o /tmp/a.icon < a.svg

    Read svg from pipe and output to /tmp/a.icon

    $ skiafy -o /tmp/a.icon -
    $ skiafy -i - -o /tmp/a.icon

    Read from stdin and output to /tmp/a.icon

  • With strings

    $ skiafy -s "<svg..." >/tmp/a.icon
    $ skiafy -s "<svg..." -o /tmp/a.icon
  • With all of above

    $ skiafy -s "<svg..." -o /tmp/a.icon -i a.svg -o aa.icon \
     -i - -o /tmp/stdin.icon \
     -i /tmp/myfolder -o /tmp/yourfolder \
     -o /tmp/outputfoder some.svg /tmp/test.svg
    Converts:
      convert string to /tmp/a.icon;
      convert a.svg to aa.icon;
      read from stdin and output to /tmp/stdin.icon;
      convert all svg files in /tmp/myfolder and output icon files to /tmp/yourfolder;
      convert some.svg, /tmp/test.svg, output some.icon and test.icon to /tmp/outputfolder;
    

As Nodejs Module

const {skiafy} = require('skiafy')
const FS = require('fs')

FS.readFile('test.svg', 'utf8', function(err, data) {
  if (err)
    throw err

  // usage: skiafy(svg, translateX = 0, translateY = 0, scaleX = 1, scaleY = 1)
  const result = skiafy(data)
  console.log(result)
}

Reference

A little SVG to Skia converter tool
Node.js tool for optimizing SVG files