mediawiki-extensions-Discus.../.svgo.config.mjs
James D. Forrester 0bfecf9118 build: Provide SVGO for crunching SVG files
Stolen from Codex's version.

Change-Id: Iee6408c42ae2ef13eeadbbf74ec3132c77974279
2024-10-10 18:17:01 -04:00

46 lines
1.3 KiB
JavaScript

/**
* SVGO Configuration
* Compatible to v3.0.0+
* Recommended options from:
* https://www.mediawiki.org/wiki/Manual:Coding_conventions/SVG#Exemplified_safe_configuration
*
* @type {import('svgo').Config}
*/
export default {
plugins: [
{
// Set of built-in plugins enabled by default.
name: 'preset-default',
params: {
overrides: {
cleanupIds: false,
removeDesc: false,
removeTitle: false,
removeViewBox: 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
removeXMLProcInst: false,
convertPathData: {
// Set desired precision for float numbers.
floatPrecision: 2
}
}
}
},
'removeRasterImages'
],
// Set whitespace according to Wikimedia Coding Conventions.
// @see https://github.com/svg/svgo/blob/main/lib/svgo/coa.js#L194 for more config options
js2svg: {
eol: 'lf',
finalNewline: true,
// Configure the indent to tabs (default 4 spaces) used by `--pretty` here.
indent: '\t',
pretty: true
},
multipass: true
};