mirror of
https://github.com/svg/svgo.git
synced 2025-07-04 16:42:27 +03:00
plugins/convertPathData: do not remove very first M from the path data (fix #24)
This commit is contained in:
@ -276,7 +276,8 @@ function filters(path, params) {
|
||||
point = [0, 0],
|
||||
prev = {
|
||||
point: [0, 0]
|
||||
};
|
||||
},
|
||||
index = 0;
|
||||
|
||||
path = path.filter(function(item) {
|
||||
|
||||
@ -284,6 +285,8 @@ function filters(path, params) {
|
||||
data = item.data;
|
||||
point = item.point;
|
||||
|
||||
index++;
|
||||
|
||||
if (data) {
|
||||
|
||||
if (params.floatPrecision) {
|
||||
@ -308,19 +311,25 @@ function filters(path, params) {
|
||||
}
|
||||
}
|
||||
|
||||
// remove useless path segments
|
||||
// remove useless non-first path segments
|
||||
if (params.removeUseless) {
|
||||
|
||||
// m 0,0 / l 0,0 / h 0 / v 0 / q 0,0 0,0 / t 0,0 / c 0,0 0,0 0,0 / s 0,0 0,0
|
||||
if (
|
||||
'mlhvqtcs'.indexOf(instruction) > -1 &&
|
||||
(
|
||||
'lhvqtcs'.indexOf(instruction) > -1 ||
|
||||
(instruction === 'm' && index > 1)
|
||||
) &&
|
||||
data.every(function(i) { return i === 0; })
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// M25,25 L25,25 C 25,25 25,25 25,25
|
||||
if ('MLHVQTCS'.indexOf(instruction) > -1) {
|
||||
if (
|
||||
'LHVQTCS'.indexOf(instruction) > -1 ||
|
||||
(instruction === 'M' && index > 1)
|
||||
) {
|
||||
var i = -1,
|
||||
every = data.every(function(d) {
|
||||
return d - prev.point[++i % 2] === 0;
|
||||
|
@ -1,5 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<path d=""/>
|
||||
<path d="m0 0"/>
|
||||
<path d=""/>
|
||||
<path d=""/>
|
||||
<path d=""/>
|
||||
|
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 171 B |
Reference in New Issue
Block a user