README.ru

english | русский


logo

SVGO NPM version Build Status Coverage Status

SVG Optimizer – это инструмент для оптимизации векторной графики в формате SVG, написанный на Node.js.

Зачем?

SVG-файлы, особенно экспортированные из редакторов, содержат много избыточной и бесполезной информации, комментариев, скрытых элементов, неоптимальные или стандартные значения и другой мусор, удаление которого безопасно и не влияет на конечный вид изображения.

Возможности

SVGO имеет расширяемую архитектуру, в которой почти каждая оптимизация является отдельным расширением.

Что у нас есть:

Plugin
Description
Default

удаление переносов строк и лишних пробелов

включен

перенос стилей из элементов <style> в атрибуты style

включен

удаление doctype

включен

удаление XML-инструкций

включен

удаление комментариев

включен

удаление <metadata>

включен

удаление <title>

включен

удаление <desc>

включен

удаление элементов в <defs> без id

включен

удаление атрибута xmlns (для заинлайненных svg)

выключено

удаление пространств имён различных редакторов, их элементов и атрибутов

включен

удаление пустых атрибутов

включен

удаление скрытых элементов

включен

удаление пустых текстовых элементов

включен

удаление пустых элементов-контейнеров

включен

удаление атрибута viewBox, когда это возможно

включен

удаление или оптимизация атрибута enable-background, когда это возможно

включен

уменьшает содержимое элементов <style> с помощью CSSO.

включен

конвертирование стилей в атрибуте style в отдельные svg-атрибуты

включен

конвертирование цветовых значений: из rgb() в #rrggbb, из #rrggbb в #rgb

включен

конвертирование данных Path в относительные или абсолютные координаты, смотря что |короче; конвертирование одних типов сегментов в другие; удаление ненужных разделителей; умное округление и тому подобное

включен

схлопывание нескольких трансформаций в одну, конвертирование матриц в короткие алиасы |и многое другое

включен

удаление неизвестных элементов, контента и атрибутов

включен

удаление ненаследуемых "презентационных" атрибутов групп

включен

удаление неиспользуемых атрибутов stroke-* и fill-*

включен

удаление деклараций неиспользуемых пространств имён

включен

добавляет префикс в ID или классы в виде имени файла или произвольной строки

выключено

удаление неиспользуемых и сокращение используемых ID

включен

округление дробных чисел до заданной точности, удаление px как единицы |измерения по-умолчанию

включен

округление числовых значений в атрибутах со списком чисел, таких как viewBox |или enableBackground

выключено

перемещение совпадающих атрибутов у всех элементов внутри группы <g>

включен

перемещение некоторых атрибутов группы на элементы внутри

включен

схлопывание бесполезных групп <g>

включен

удаление растровых изображений

выключено

склеивание нескольких Path в одну кривую

включен

конвертирование простых форм в Path

включен

конвертирование вырожденного эллипса <ellipse> в круг <circle>

включен

сортировка атрибутов элементов для удобочитаемости

выключено

сортировка детей <defs> для лучшей компрессии

включен

удаляет атрибуты width/height при наличии viewBox (противоречит removeViewBox — плагин должен быть выключен)

выключено

удаляет атрибуты по указанному паттерну

выключено

удаляет атрибуты по CSS-селектору

выключено

удаляет элементы по указанным ID или классам

выключено

добавляет имена классов корневому элементу <svg>

выключено

добавляет атрибуты корневому элементу <svg>

выключено

удаляет элементы вне отрисовываемой области

выключено

удаляет элементы <style>

выключено

удаляет элементы <script>

выключено

Заменяет дублирующиеся элементы ссылками

выключено

Хотите узнать принципы работы и как написать свой плагин? Конечно же, да!

Как использовать

Выполнение:

Командная строка

  • с файлами:

    или:

  • со STDIN / STDOUT:

  • с папками

    или:

  • со строками:

    или даже с Data URI base64:

  • с SVGZ:

    из .svgz в .svg:

    из .svg в .svgz:

Другие способы использования SVGO

Лицензия и копирайты

Данное программное обеспечение выпускается под лицензией MIT.

Логотип – Егор Большаков.

Last updated

Was this helpful?