πŸš€ Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more β†’
Socket
Book a DemoInstallSign in
Socket

svgo

Package Overview
Dependencies
Maintainers
1
Versions
109
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svgo - npm Package Compare versions

Comparing version

to
0.2.1

plugins/moveGroupAttrsToElems.js

@@ -0,1 +1,10 @@

### [ [>](https://github.com/svg/svgo/tree/v0.2.1) ] 0.2.1 / 18.01.2013
* plugins/moveElemsAttrsToGroup + plugins/moveGroupAttrsToElems: move or just leave transform attr from Group to the inner Path Elems (close [#86](https://github.com/svg/svgo/issues/86))
* plugins/removeViewBox: doesn't catch floating-point numbers (fix [#88](https://github.com/svg/svgo/issues/88))
* plugins/cleanupEnableBackground: doesn't catch floating-point numbers (fix [#89](https://github.com/svg/svgo/issues/89))
* plugins/cleanupNumericValues: wrong floating-point numbers regexp (fix [#92](https://github.com/svg/svgo/issues/92))
* SVG file generated by fontcustom.com not properly compressed (fix [#90](https://github.com/svg/svgo/issues/90))
* `README.ru.md`: стилизация русского языка, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ языковых конструкций, ΠΏΡ€Π°Π²ΠΊΠ° ошибок (close [#91](https://github.com/svg/svgo/issues/91))
* minor JSHint warning fix
### [ [>](https://github.com/svg/svgo/tree/v0.2.0) ] 0.2.0 / 23.12.2012

@@ -2,0 +11,0 @@ * plugins/convertPathData: apply transforms to Path pata (close [#33](https://github.com/svg/svgo/issues/33))

2

package.json
{
"name": "svgo",
"version": "0.2.0",
"version": "0.2.1",
"description": "Nodejs-based tool for optimizing SVG vector graphics files",

@@ -5,0 +5,0 @@ "keywords": [ "svgo", "svg", "optimize", "minify" ],

@@ -10,3 +10,3 @@ 'use strict';

gradient: ['linearGradient', 'radialGradient'],
container: ['a', 'defs', 'glyph', 'g', 'marker', 'mask', 'missing-glyph', 'pattern', 'svg', 'switch', 'symbol'],
container: ['a', 'defs', 'g', 'marker', 'mask', 'missing-glyph', 'pattern', 'svg', 'switch', 'symbol'],
textContentChild: ['altGlyph', 'textPath', 'tref', 'tspan'],

@@ -17,2 +17,4 @@ lightSource: ['feDiffuseLighting', 'feSpecularLighting', 'feDistantLight', 'fePointLight', 'feSpotLight'],

exports.pathElems = ['path', 'glyph', 'missing-glyph'];
// var defaults = exports.defaults = {

@@ -19,0 +21,0 @@ // 'externalResourcesRequired': 'false',

@@ -120,3 +120,3 @@ 'use strict';

*/
var matrixToTransform = exports.matrixToTransform = function(transform, params) {
exports.matrixToTransform = function(transform, params) {

@@ -123,0 +123,0 @@ var data = transform.data;

'use strict';
var regEnableBackground = /^new\s0\s0\s(\d+)\s(\d+)$/,
var regEnableBackground = /^new\s0\s0\s([\-+]?\d*\.?\d+([eE][\-+]?\d+)?)\s([\-+]?\d*\.?\d+([eE][\-+]?\d+)?)$/,
elems = ['svg', 'mask', 'pattern'];

@@ -35,3 +35,3 @@

item.attr('width').value === match[1] &&
item.attr('height').value === match[2]
item.attr('height').value === match[3]
) {

@@ -38,0 +38,0 @@ if (item.isElem('svg')) {

'use strict';
var regNumericValues = /^([\-+]?\d*\.?\d+(\.\d+)?([eE][\-+]?\d+)?)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/,
var regNumericValues = /^([\-+]?\d*\.?\d+([eE][\-+]?\d+)?)(px|pt|pc|mm|cm|m|in|ft|em|ex|%)?$/,
removeLeadingZero = require('../lib/svgo/tools').removeLeadingZero;

@@ -29,3 +29,3 @@

var num = +(+match[1]).toFixed(params.floatPrecision),
units = match[4] || '';
units = match[3] || '';

@@ -32,0 +32,0 @@ // and remove leading zero

@@ -6,3 +6,3 @@ 'use strict';

regPathData = /[\-+]?\d*\.?\d+([eE][\-+]?\d+)?/g,
pathElems = ['path', 'glyph', 'missing-glyph'],
pathElems = require('./_collections.js').pathElems,
hasMarkerMid,

@@ -9,0 +9,0 @@ transform2js = require('./_transforms.js').transform2js,

'use strict';
var inheritableAttrs = require('./_collections').inheritableAttrs;
var inheritableAttrs = require('./_collections').inheritableAttrs,
pathElems = require('./_collections.js').pathElems;

@@ -35,8 +36,8 @@ /**

hasTransform = false,
every = item.content.every(function(g) {
if (g.elem && g.attrs) {
intersected = item.content.every(function(inner) {
if (inner.isElem() && inner.hasAttr()) {
if (!Object.keys(intersection).length) {
intersection = g.attrs;
intersection = inner.attrs;
} else {
intersection = intersectInheritableAttrs(intersection, g.attrs);
intersection = intersectInheritableAttrs(intersection, inner.attrs);

@@ -48,5 +49,8 @@ if (!intersection) return false;

}
}),
allPath = item.content.every(function(inner) {
return inner.isElem(pathElems);
});
if (every) {
if (intersected) {

@@ -56,11 +60,21 @@ item.content.forEach(function(g) {

for (var name in intersection) {
g.removeAttr(name);
if (name === 'transform') {
if (!hasTransform && item.hasAttr('transform')) {
item.attr('transform').value += ' ' + intersection[name].value;
hasTransform = true;
if (!allPath || name !== 'transform') {
g.removeAttr(name);
if (name === 'transform') {
if (!hasTransform) {
if (item.hasAttr('transform')) {
item.attr('transform').value += ' ' + intersection[name].value;
} else {
item.addAttr(intersection[name]);
}
hasTransform = true;
}
} else {
item.addAttr(intersection[name]);
}
} else {
item.addAttr(intersection[name]);
}

@@ -67,0 +81,0 @@ }

'use strict';
var regViewBox = /^0\s0\s(\d+)\s(\d+)$/,
var regViewBox = /^0\s0\s([\-+]?\d*\.?\d+([eE][\-+]?\d+)?)\s([\-+]?\d*\.?\d+([eE][\-+]?\d+)?)$/,
viewBoxElems = ['svg', 'pattern'];

@@ -35,3 +35,3 @@

item.attr('width').value === match[1] &&
item.attr('height').value === match[2]
item.attr('height').value === match[3]
) {

@@ -38,0 +38,0 @@ item.removeAttr('viewBox');

@@ -6,3 +6,3 @@ **english** | [русский](https://github.com/svg/svgo/blob/master/README.ru.md)

## SVGO v0.2.0 [![Build Status](https://secure.travis-ci.org/svg/svgo.png)](http://travis-ci.org/svg/svgo)
## SVGO v0.2.1 [![Build Status](https://secure.travis-ci.org/svg/svgo.png)](http://travis-ci.org/svg/svgo)

@@ -43,2 +43,3 @@ **SVG O**ptimizer is a Nodejs-based tool for optimizing SVG vector graphics files.

* [ [>](https://github.com/svg/svgo/blob/master/plugins/moveElemsAttrsToGroup.js) ] move elements attributes to the existing group wrapper
* [ [>](https://github.com/svg/svgo/blob/master/plugins/moveGroupAttrsToElems.js) ] move some group attributes to the content elements
* [ [>](https://github.com/svg/svgo/blob/master/plugins/collapseGroups.js) ] collapse useless groups

@@ -45,0 +46,0 @@

@@ -6,3 +6,3 @@ [english](https://github.com/svg/svgo/blob/master/README.md) | **русский**

## SVGO v0.2.0 [![Build Status](https://secure.travis-ci.org/svg/svgo.png)](http://travis-ci.org/svg/svgo)
## SVGO v0.2.1 [![Build Status](https://secure.travis-ci.org/svg/svgo.png)](http://travis-ci.org/svg/svgo)

@@ -14,7 +14,7 @@ **SVG** **O**ptimizer – это инструмСнт для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SVG, написанный Π½Π° Node.js.

SVG Ρ„Π°ΠΉΠ»Ρ‹, особСнно экспортированныС ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², содСрТат ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈ бСсполСзной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², скрытых элСмСнтов, Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ значСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ мусор, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ бСзопасно ΠΈ Π½Π΅ влияСт Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.
SVG-Ρ„Π°ΠΉΠ»Ρ‹, особСнно – экспортированныС ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², содСрТат ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΈ бСсполСзной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², скрытых элСмСнтов, Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ стандартныС значСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ мусор, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ бСзопасно ΠΈ Π½Π΅ влияСт Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отрисовки.
## ВозмоТности
SVGO ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ»Π°Π³ΠΈΠ½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ практичСски каТдая оптимизация являСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ.
SVGO ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡ‡Ρ‚ΠΈ каТдая оптимизация являСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ.

@@ -33,7 +33,7 @@ БСгодня Ρƒ нас Π΅ΡΡ‚ΡŒ:

* [ [>](https://github.com/svg/svgo/blob/master/plugins/removeEmptyContainers.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ пустых элСмСнтов-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
* [ [>](https://github.com/svg/svgo/blob/master/plugins/removeViewBox.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° `viewBox` ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/cleanupEnableBackground.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ оптимизация Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° `enable-background` ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/removeViewBox.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° `viewBox`, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/cleanupEnableBackground.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ оптимизация Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° `enable-background`, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/convertStyleToAttrs.js) ] ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ стилСй Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ `style` Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ svg-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹
* [ [>](https://github.com/svg/svgo/blob/master/plugins/convertColors.js) ] ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (ΠΈΠ· `rgb()` Π² `#rrggbb`, ΠΈΠ· `#rrggbb` Π² `#rgb`)
* [ [>](https://github.com/svg/svgo/blob/master/plugins/convertPathData.js) ] ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Path Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² сСгмСнтов Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅
* [ [>](https://github.com/svg/svgo/blob/master/plugins/convertColors.js) ] ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: ΠΈΠ· `rgb()` Π² `#rrggbb`, ΠΈΠ· `#rrggbb` Π² `#rgb`
* [ [>](https://github.com/svg/svgo/blob/master/plugins/convertPathData.js) ] ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Path Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² сСгмСнтов Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅
* [ [>](https://github.com/svg/svgo/blob/master/plugins/convertTransform.js) ] схлопываниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… трансформаций Π² ΠΎΠ΄Π½Ρƒ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ алиасы ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅

@@ -43,7 +43,8 @@ * [ [>](https://github.com/svg/svgo/blob/master/plugins/removeUnknownsAndDefaults.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ нСизвСстных элСмСнтов, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

* [ [>](https://github.com/svg/svgo/blob/master/plugins/cleanupIDs.js) ] ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ сокращСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ID
* [ [>](https://github.com/svg/svgo/blob/master/plugins/cleanupNumericValues.js) ] ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ точности, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ `px` ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/cleanupNumericValues.js) ] ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ точности, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ `px` ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/moveElemsAttrsToGroup.js) ] ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρƒ всСх элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ `<g>`
* [ [>](https://github.com/svg/svgo/blob/master/plugins/moveGroupAttrsToElems.js) ] ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½Π° элСмСнты Π²Π½ΡƒΡ‚Ρ€ΠΈ
* [ [>](https://github.com/svg/svgo/blob/master/plugins/collapseGroups.js) ] схлопываниС бСсполСзных Π³Ρ€ΡƒΠΏΠΏ `<g>`
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΏΠ»Π°Π³ΠΈΠ½? [ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π΄Π°](https://github.com/svg/svgo/blob/master/docs/how-it-works/ru.md).
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΏΠ»Π°Π³ΠΈΠ½? [ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π΄Π°!](https://github.com/svg/svgo/blob/master/docs/how-it-works/ru.md).

@@ -50,0 +51,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet