Update SVGO configuration (#6926)

This commit is contained in:
Álvaro Mondéjar 2021-11-29 18:59:11 +01:00 committed by GitHub
parent 7e0ed7c728
commit 820a71a376
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,99 +1,100 @@
module.exports = {
multipass: true,
eol: 'lf',
plugins: [
'cleanupAttrs',
'inlineStyles',
'removeDoctype',
'removeXMLProcInst',
'removeComments',
'removeMetadata',
'removeDesc',
'removeUselessDefs',
'removeEditorsNSData',
'removeEmptyAttrs',
'removeHiddenElems',
'removeEmptyText',
'removeEmptyContainers',
'cleanupEnableBackground',
{
name: 'preset-default',
name: 'convertPathData',
params: {
overrides: {
// customize options
convertPathData: {
// 3 decimals of precision in floating point numbers
floatPrecision: 3,
// Some editors (e.g. Adobe Illustrator and Sketch) cannot parse flags
// without space wrapping
noSpaceAfterFlags: false,
},
// Sort the attributes on the <svg> tag
sortAttrs: {
order: ['role', 'viewBox'],
xmlnsOrder: 'end',
},
// Convert basic shapes (such as <circle>) to <path>
convertShapeToPath: {
// including <arc>
convertArcs: true,
},
// Compound all <path>s into one
mergePaths: {
force: true,
noSpaceAfterFlags: false,
},
// Keep the <title> tag
removeTitle: false,
// Keep the role="img" attribute and automatically add it
// to the <svg> tag if it's not there already
addAttributesToSVGElement: {
attributes: [{ role: 'img' }],
},
// Keep the 'role' attribute, if it's already defined
removeUnknownsAndDefaults: {
keepRoleAttr: true,
},
// Remove all attributes except 'role', 'viewBox', and 'xmlns' from
// <svg> tags
removeAttrs: {
attrs: ['baseProfile', 'version', 'fill-rule'],
},
// Remove paths with fill="none"
removeUselessStrokeAndFill: {
removeNone: true,
},
// Explicitly enable everything else
removeDoctype: true,
removeXMLProcInst: true,
removeComments: true,
removeMetadata: true,
removeEditorsNSData: true,
cleanupAttrs: true,
inlineStyles: true,
minifyStyles: true,
convertStyleToAttrs: true,
cleanupIDs: true,
prefixIds: true,
removeRasterImages: true,
removeUselessDefs: true,
cleanupNumericValues: true,
cleanupListOfValues: true,
convertColors: true,
removeNonInheritableGroupAttrs: true,
removeViewBox: true,
cleanupEnableBackground: true,
removeHiddenElems: true,
removeEmptyText: true,
moveElemsAttrsToGroup: true,
moveGroupAttrsToElems: true,
collapseGroups: true,
convertTransform: true,
removeEmptyAttrs: true,
removeEmptyContainers: true,
removeUnusedNS: true,
removeDesc: true,
removeDimensions: true,
removeStyleElement: true,
removeScriptElement: true,
removeOffCanvasPaths: true,
reusePaths: true,
},
// 3 decimals of precision in floating point numbers
floatPrecision: 3,
// Some editors (e.g. Adobe Illustrator and Sketch) cannot parse flags
// without space wrapping
noSpaceAfterFlags: false,
},
},
'convertTransform',
{
name: 'removeUnknownsAndDefaults',
params: {
// Keep the 'role' attribute, if it's already defined
keepRoleAttr: true,
},
},
'removeNonInheritableGroupAttrs',
{
// Remove paths with fill="none"
name: 'removeUselessStrokeAndFill',
params: {
removeNone: true,
},
},
'removeUselessStrokeAndFill',
'removeUnusedNS',
'cleanupIDs',
'cleanupNumericValues',
'cleanupListOfValues',
'moveGroupAttrsToElems',
'collapseGroups',
'removeRasterImages',
{
// Compound all <path>s into one
name: 'mergePaths',
params: {
force: true,
noSpaceAfterFlags: false,
},
},
{
// Convert basic shapes (such as <circle>) to <path>
name: 'convertShapeToPath',
params: {
// including <arc>
convertArcs: true,
},
},
'convertEllipseToCircle',
{
// Sort the attributes on the <svg> tag
name: 'sortAttrs',
params: {
order: ['role', 'viewBox'],
xmlnsOrder: 'end',
},
},
'sortDefsChildren',
'removeDimensions',
{
name: 'removeAttrs',
params: {
attrs: ['svg:(?!(role|viewBox|xmlns))', 'path:(?!d)', 'title:*'],
},
},
'removeElementsByAttr',
{
// Keep the role="img" attribute and automatically add it
// to the <svg> tag if it's not there already
name: 'addAttributesToSVGElement',
params: {
attributes: [{ role: 'img', xmlns: 'http://www.w3.org/2000/svg' }],
},
},
'removeOffCanvasPaths',
'removeStyleElement',
'removeScriptElement',
'reusePaths',
],
};