Socket
Socket
Sign inDemoInstall

svgo

Package Overview
Dependencies
17
Maintainers
1
Versions
103
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.2.1

plugins/moveGroupAttrsToElems.js

9

CHANGELOG.md

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc