summaryrefslogtreecommitdiff
blob: e2abffbd7dddb396f35f0a951c7464c29c48f0e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
 * SVGO Configuration
 * Recommended options from:
 * https://www.mediawiki.org/wiki/Manual:Coding_conventions/SVG#Exemplified_safe_configuration
 */
const { extendDefaultPlugins } = require( 'svgo' );
module.exports = {
	multipass: true,
	plugins: extendDefaultPlugins( [
		{
			name: 'cleanupIDs',
			active: false
		},
		{
			name: 'removeDesc',
			active: false
		},
		{
			name: 'removeRasterImages',
			active: true
		},
		{
			name: 'removeTitle',
			active: false
		},
		{
			name: 'removeViewBox',
			active: false
		},
		{
			// If the SVG doesn't start with an XML declaration, then its MIME type will
			// be detected as "text/plain" rather than "image/svg+xml" by libmagic and,
			// consequently, MediaWiki's CSSMin CSS minifier. libmagic's default database
			// currently requires that SVGs contain an XML declaration:
			// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/sgml#L5
			name: 'removeXMLProcInst',
			active: false
		},
		{
			name: 'sortAttrs',
			active: true
		}
	] ),

	// Configure the indent (default 4 spaces) used by `--pretty` here:
	// @see https://github.com/svg/svgo/blob/master/lib/svgo/js2svg.js#L6 for more config options
	//
	// Unfortunately EOL cannot be configured, SVGO uses the platform's EOL marker.
	// On non-unix systems the linebreaks will be normalized to LF (unix) only at git commit,
	// assuming `core.autocrlf` is 'true' (default) or 'input'.
	js2svg: {
		indent: "\t",
		pretty: true,
	}
}