1
0
mirror of https://github.com/svg/svgo.git synced 2026-01-27 07:02:06 +03:00
Files
svgo/docs/04-plugins/removeXlink.mdx
2024-06-16 00:10:42 +01:00

42 lines
2.1 KiB
Plaintext

---
title: removeXlink
svgo:
pluginId: removeXlink
parameters:
includeLegacy:
description: If to update references to XLink in elements that don't support the SVG 2 href attribute, like `<filter>` and `<tref>`.
default: false
---
Removes XLink namespace prefixes and converts references to XLink attributes to the native SVG equivalent by performing the following operations:
- Convert `*:href` to [`href`](https://developer.mozilla.org/docs/Web/SVG/Attribute/href).
- Convert `*:show` to [`target`](https://developer.mozilla.org/docs/Web/SVG/Attribute/target).
- Convert `*:title` to [`<title>`](https://developer.mozilla.org/docs/Web/SVG/Element/title).
- Drop all other references to the XLink namespace.
- Remove XLink namespace declarations.
:::tip
When using this plugin, it's recommended to put it toward the end of your pipeline. Other SVGO plugins may add the XLink namespace, and these won't be migrated if they're added after this plugin has already executed.
:::
In most cases this will remove all references to XLink, but if legacy elements that are deprecated or removed in SVG 2 are found, the references are preserved as those elements do not support the SVG 2 `href` attribute. You can set `includeLegacy` to `true` to apply the plugin in this case too.
The following support `xlink:href` but not the SVG 2 `href` attribute:
- [`<cursor>`](https://developer.mozilla.org/docs/Web/SVG/Element/cursor)
- [`<filter>`](https://developer.mozilla.org/docs/Web/SVG/Element/filter)
- [`<font-face-uri>`](https://developer.mozilla.org/docs/Web/SVG/Element/font-face-uri)
- [`<glyphRef>`](https://developer.mozilla.org/docs/Web/SVG/Element/glyphRef)
- [`<tref>`](https://developer.mozilla.org/docs/Web/SVG/Element/tref)
It's recommended to use this plugin if you intend to inline SVGs into an HTML document, `includeLegacy` can be safely set to `true` in this case too. HTML does not support explicit namespaces, so namespace prefixes are ignored by the browser anyway.
:::danger
This replaces XLink with features that are only supported in the SVGO 2 spec, so breaks compatibility with the SVG 1.1.
:::