111 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# [postcss][postcss]-svgo
 | 
						|
 | 
						|
> Optimise inline SVG with PostCSS.
 | 
						|
 | 
						|
 | 
						|
## Install
 | 
						|
 | 
						|
With [npm](https://npmjs.org/package/postcss-svgo) do:
 | 
						|
 | 
						|
```
 | 
						|
npm install postcss-svgo --save
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## Example
 | 
						|
 | 
						|
### Input
 | 
						|
 | 
						|
```css
 | 
						|
h1 {
 | 
						|
    background: url('data:image/svg+xml;charset=utf-8,<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"><circle cx="50" cy="50" r="40" fill="yellow" /></svg>');
 | 
						|
}
 | 
						|
 | 
						|
h2 {
 | 
						|
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIGZpbGw9InllbGxvdyIgLz48IS0tdGVzdCBjb21tZW50LS0+PC9zdmc+');
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
### Output
 | 
						|
 | 
						|
```css
 | 
						|
h1 {
 | 
						|
    background: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="40" fill="%23ff0"/></svg>');
 | 
						|
}
 | 
						|
 | 
						|
h2 {
 | 
						|
    background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjQwIiBmaWxsPSIjZmYwIi8+PC9zdmc+');
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## API
 | 
						|
 | 
						|
### `svgo([options])`
 | 
						|
 | 
						|
#### options
 | 
						|
 | 
						|
##### encode
 | 
						|
 | 
						|
Type: `boolean`
 | 
						|
Default: `undefined`
 | 
						|
 | 
						|
If `true`, it will encode URL-unsafe characters such as `<`, `>` and `&`;
 | 
						|
`false` will decode these characters, and `undefined` will neither encode nor
 | 
						|
decode the original input. Note that regardless of this setting, `#` will
 | 
						|
always be URL-encoded.
 | 
						|
 | 
						|
##### plugins
 | 
						|
 | 
						|
Optionally, you can customise the output by specifying the `plugins` option. You
 | 
						|
will need to provide the config in comma separated objects, like the example
 | 
						|
below. Note that you can either disable the plugin by setting it to `false`,
 | 
						|
or pass different options to change the default behaviour.
 | 
						|
 | 
						|
```js
 | 
						|
var postcss = require('postcss');
 | 
						|
var svgo = require('postcss-svgo');
 | 
						|
 | 
						|
var opts = {
 | 
						|
    plugins: [{
 | 
						|
        removeDoctype: false
 | 
						|
    }, {
 | 
						|
        removeComments: false
 | 
						|
    }, {
 | 
						|
        cleanupNumericValues: {
 | 
						|
            floatPrecision: 2
 | 
						|
        }
 | 
						|
    }, {
 | 
						|
        convertColors: {
 | 
						|
            names2hex: false,
 | 
						|
            rgb2hex: false
 | 
						|
        }
 | 
						|
    }]
 | 
						|
};
 | 
						|
 | 
						|
postcss([ svgo(opts) ]).process(css).then(function (result) {
 | 
						|
    console.log(result.css)
 | 
						|
});
 | 
						|
```
 | 
						|
 | 
						|
You can view the [full list of plugins here][plugins].
 | 
						|
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
See the [PostCSS documentation](https://github.com/postcss/postcss#usage) for
 | 
						|
examples for your environment.
 | 
						|
 | 
						|
 | 
						|
## Contributors
 | 
						|
 | 
						|
See [CONTRIBUTORS.md](https://github.com/cssnano/cssnano/blob/master/CONTRIBUTORS.md).
 | 
						|
 | 
						|
 | 
						|
## License
 | 
						|
 | 
						|
MIT © [Ben Briggs](http://beneb.info)
 | 
						|
 | 
						|
[postcss]: https://github.com/postcss/postcss
 | 
						|
[plugins]: https://github.com/svg/svgo/tree/master/plugins
 |