Allow minification of SVG files
OpenPublic

Description

This comes from bug 34810... Which could use this feature to dynamically do it (or the simpler older method of creating .min files)

SVG are used as non page content files, they contain a lot of whitespace. Minify and serve!


See Also:
https://bugzilla.wikimedia.org/show_bug.cgi?id=59744

bzimport added a subscriber: Unknown Object (MLST).
bzimport set Reference to bz34812.
Reedy created this task.Via LegacyFeb 29 2012, 8:24 PM
brion added a comment.Via ConduitFeb 29 2012, 11:14 PM

There's several possible things to do here:

  • transparent HTTP gzip compression (can be enabled at webserver-level)
  • stripping comments and whitespace (traditional 'minification', could be done as a pre-processing step)
  • intelligent collapsing of redundant attributes and styles (harder!)
  • rounding coordinates to fewer digits
  • decimating points in overly-detailed polygons/curves

Depending on just what you're trying to do, you could do some or all of those...

For SVG fonts I'd recommend that they be relatively sane to begin with (if they're full of whitespace and comments as output assets, that's kinda lame -- they should be small/clean to begin with), and use transparent gzip compression on the web server configuration.

Krinkle added a comment.Via ConduitMar 6 2013, 6:29 AM

I think we can apply the same as PNG files.

I don't know of any SVG files we have in our repository that we manually edit to the level that can't aren't already be minified (they might have some indentation, but that's about it, and we could actually minify those in the repository, like we optimise PNG files).

I know SVG is text where PNG is not, but unless we actually edit them, it should be fine.

As for solving this bug, if we want to minify SVGs in separate requests (e.g. fonts), that would get quite tricky. They'd need a url to be served from.

As for SVGs we embed in CSS (SVGs for icons like we do in VisualEditor), those could be easily minified before being base64 encoded (that is, once we have an xml minifier).

matmarex added a comment.Via ConduitSep 17 2014, 9:29 PM
  • Bug 63491 has been marked as a duplicate of this bug. ***
Krinkle raised the priority of this task from "Low" to "Normal".Via WebApr 28 2015, 5:40 PM
Krinkle edited the task description. (Show Details)
Krinkle removed a subscriber: Unknown Object (MLST).
Krinkle added a project: Performance.
Krinkle set Security to None.

Raising priority per T59777. We're using more SVGs nowadays.

Krinkle moved this task to Ready to implement on the MediaWiki-ResourceLoader workboard.Via WebApr 28 2015, 5:42 PM

Add Comment