Open Oreilles opened 4 years ago
I don't know how you generated the path but it's kinda funky looking. The reason why it's failing is because the path has sections like this:
a931 931 0 00-1 138
as opposed to
a931 931 0 0 0 -1 138
Note that when roughjs parses it, it thinks the number is 00
which is just 0
. And it thinks that there's a missing value.
Browsers can be more forgiving.
I can change rough to interpret 00
to 0 0
but there are too many cases to consider. I suggest if you change path string so your zeros have a space after them.
Thanks, the path is initially from wikipedia, but minified with svgo's convertPathData plugin.
yes it must be because of the minification. I'm not sure I'm inclined to fix this unless you cannot update your path
I definetly can change the path, it's not an issue at all - I just though you might be interested in this kind of (pretty specific) behaviour.
Maybe the path parser used by Firefox or Chrome could be found in their source code.
This happend to me too while svg-icons conversion after upgraded from svgo 1.2.2 to the latest 1.3.2, though in browser icons work ok, but rough can not parse some paths. It also happens with convertPathData
plugin disabled, but in more rare cases.
I tried to "fix" paths and compare and changes but had no good luck with it. There is not only glued zeros (00
) problem. It is really a mess .
Not even sure how to describe this issue in svgo repo. Besides. as I said there seems no issues with optimized icons in browser, only rough can't deal with them.
UPD. There is an example. Source svg: https://gist.github.com/whitecolor/26a5e750f70444e49ecd3a69c3f107d2
But this example seem to contain only glued zeros issue, other more complex icons had more complex changes that are not so easy to deal with from the first glance.
And paths that are avaiabled in browser for this icon:
v 1.2.2 (this works with rough)
M50.2.075C22.645.075.22 22.497.22 50.05c0 27.55 22.424 49.974 49.979 49.974 27.55 0 49.978-22.42 49.978-49.974C100.178 22.495 77.754.075 50.2.075zm0 4.469c25.098 0 45.51 20.407 45.51 45.506 0 25.098-20.412 45.51-45.51 45.51-25.099 0-45.51-20.412-45.51-45.51C4.69 24.95 25.1 4.544 50.2 4.544z
M50.424 27.387a1.952 1.952 0 0 0-1.947 1.949v19.139H29.334c-1.073 0-1.95.876-1.95 1.949s.877 1.947 1.95 1.947h19.143v19.143c0 1.072.874 1.949 1.947 1.949s1.949-.876 1.949-1.951v-19.14h19.145a1.95 1.95 0 0 0 1.945-1.948c0-1.073-.874-1.95-1.947-1.95H52.373V29.337c0-1.073-.876-1.95-1.95-1.95z
v 1.3.2 (this error with rough)
M50.2.075C22.645.075.22 22.497.22 50.05c0 27.55 22.424 49.974 49.979 49.974 27.55 0 49.978-22.42 49.978-49.974C100.178 22.495 77.754.075 50.2.075zm0 4.469c25.098 0 45.51 20.407 45.51 45.506 0 25.098-20.412 45.51-45.51 45.51-25.099 0-45.51-20.412-45.51-45.51C4.69 24.95 25.1 4.544 50.2 4.544z
M50.424 27.387a1.952 1.952 0 00-1.947 1.949v19.139H29.334c-1.073 0-1.95.876-1.95 1.949s.877 1.947 1.95 1.947h19.143v19.143c0 1.072.874 1.949 1.947 1.949s1.949-.876 1.949-1.951v-19.14h19.145a1.95 1.95 0 001.945-1.948c0-1.073-.874-1.95-1.947-1.95H52.373V29.337c0-1.073-.876-1.95-1.95-1.95z
There is another more complex example of converted with svgo paths
1.2.2 (this works with rough)
M63.316 8.401l1.091-1.634 1.072-1.612 2.412-3.617A.968.968 0 1066.28.467l-2.584 3.878-1.087 1.63-1.104 1.652c-3.495-1.354-7.392-2.115-11.508-2.115-4.112 0-8.009.76-11.504 2.115l-1.098-1.652-1.087-1.63-2.588-3.88a.97.97 0 00-1.343-.27.968.968 0 00-.267 1.341l2.41 3.617 1.076 1.612L36.688 8.4c-8.21 3.823-13.763 11.066-13.763 19.356H77.08c0-8.288-5.553-15.53-13.763-19.354zM38.398 20.02a2.9 2.9 0 110-5.8 2.9 2.9 0 010 5.8zm23.206 0a2.9 2.9 0 010-5.8 2.9 2.9 0 110 5.8zM23.342 31.625h-.417v42.551a6.13 6.13 0 006.124 6.126h4.42a5.794 5.794 0 00-.23 1.61v12.253a5.803 5.803 0 0011.606 0V81.912c0-.556-.086-1.1-.23-1.61h10.774a5.794 5.794 0 00-.23 1.61v12.253c0 3.202 2.6 5.802 5.803 5.802 3.202 0 5.802-2.6 5.802-5.802V81.912c0-.556-.082-1.1-.23-1.61h4.42a6.132 6.132 0 006.125-6.125V31.625h-.417zM13.253 31.625A5.801 5.801 0 007.45 37.43v24.819a5.803 5.803 0 005.802 5.802c3.202 0 5.802-2.6 5.802-5.802v-24.82a5.8 5.8 0 00-5.802-5.803zM86.751 31.625a5.8 5.8 0 00-5.802 5.804v24.819a5.802 5.802 0 005.802 5.802c3.203 0 5.798-2.6 5.798-5.802v-24.82a5.799 5.799 0 00-5.798-5.803z
v 1.3.2 (this error with rough)
M63.316 8.401l1.091-1.634 1.072-1.612 2.412-3.617A.968.968 0 0 0 66.28.467l-2.584 3.878-1.087 1.63-1.104 1.652c-3.495-1.354-7.392-2.115-11.508-2.115-4.112 0-8.009.76-11.504 2.115l-1.098-1.652-1.087-1.63-2.588-3.88a.97.97 0 0 0-1.343-.27.968.968 0 0 0-.267 1.341l2.41 3.617 1.076 1.612L36.688 8.4c-8.21 3.823-13.763 11.066-13.763 19.356H77.08c0-8.288-5.553-15.53-13.763-19.354zM38.398 20.02a2.9 2.9 0 1 1 0-5.8 2.9 2.9 0 1 1 0 5.8zm23.206 0a2.9 2.9 0 0 1 0-5.8 2.9 2.9 0 0 1 0 5.8zM23.342 31.625h-.417v42.551a6.13 6.13 0 0 0 6.124 6.126h4.42a5.794 5.794 0 0 0-.23 1.61v12.253a5.803 5.803 0 0 0 11.606 0V81.912c0-.556-.086-1.1-.23-1.61h10.774a5.794 5.794 0 0 0-.23 1.61v12.253c0 3.202 2.6 5.802 5.803 5.802 3.202 0 5.802-2.6 5.802-5.802V81.912c0-.556-.082-1.1-.23-1.61h4.42a6.132 6.132 0 0 0 6.125-6.125V31.625h-.417zM13.253 31.625A5.801 5.801 0 0 0 7.45 37.43v24.819a5.803 5.803 0 0 0 5.802 5.802c3.202 0 5.802-2.6 5.802-5.802v-24.82a5.8 5.8 0 0 0-5.802-5.803zM86.751 31.625a5.8 5.8 0 0 0-5.802 5.804v24.819a5.802 5.802 0 0 0 5.802 5.802c3.203 0 5.798-2.6 5.798-5.802v-24.82a5.799 5.799 0 0 0-5.798-5.803z
The path for which the error occurs is quite long. Here's a fiddle to replicate: https://jsfiddle.net/87fjznso/1/ Error occurs in both
3.1.0
and current4.2.3
. I haven't tested other versions.