README.ru

english | русский


logo

SVGO NPM version Build Status Coverage Status

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

Зачем?

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

Возможности

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

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

PluginDescriptionDefault
cleanupAttrsудаление переносов строк и лишних пробеловвключен
inlineStylesперенос стилей из элементов <style> в атрибуты styleвключен
removeDoctypeудаление doctypeвключен
removeXMLProcInstудаление XML-инструкцийвключен
removeCommentsудаление комментариеввключен
removeMetadataудаление <metadata>включен
removeTitleудаление <title>включен
removeDescудаление <desc>включен
removeUselessDefsудаление элементов в <defs> без idвключен
removeXMLNSудаление атрибута xmlns (для заинлайненных svg)выключено
removeEditorsNSDataудаление пространств имён различных редакторов, их элементов и атрибутоввключен
removeEmptyAttrsудаление пустых атрибутоввключен
removeHiddenElemsудаление скрытых элементоввключен
removeEmptyTextудаление пустых текстовых элементоввключен
removeEmptyContainersудаление пустых элементов-контейнероввключен
removeViewBoxудаление атрибута viewBox, когда это возможновключен
cleanupEnableBackgroundудаление или оптимизация атрибута enable-background, когда это возможновключен
minifyStylesуменьшает содержимое элементов <style> с помощью CSSO.включен
convertStyleToAttrsконвертирование стилей в атрибуте style в отдельные svg-атрибутывключен
convertColorsконвертирование цветовых значений: из rgb() в #rrggbb, из #rrggbb в #rgbвключен
convertPathDataконвертирование данных Path в относительные или абсолютные координаты, смотря что |короче; конвертирование одних типов сегментов в другие; удаление ненужных разделителей; умное округление и тому подобноевключен
convertTransformсхлопывание нескольких трансформаций в одну, конвертирование матриц в короткие алиасы |и многое другоевключен
removeUnknownsAndDefaultsудаление неизвестных элементов, контента и атрибутоввключен
removeNonInheritableGroupAttrsудаление ненаследуемых "презентационных" атрибутов группвключен
removeUselessStrokeAndFillудаление неиспользуемых атрибутов stroke-* и fill-*включен
removeUnusedNSудаление деклараций неиспользуемых пространств имёнвключен
prefixIdsдобавляет префикс в ID или классы в виде имени файла или произвольной строкивыключено
cleanupIDsудаление неиспользуемых и сокращение используемых IDвключен
cleanupNumericValuesокругление дробных чисел до заданной точности, удаление px как единицы |измерения по-умолчаниювключен
cleanupListOfValuesокругление числовых значений в атрибутах со списком чисел, таких как viewBox |или enableBackgroundвыключено
moveElemsAttrsToGroupперемещение совпадающих атрибутов у всех элементов внутри группы <g>включен
moveGroupAttrsToElemsперемещение некоторых атрибутов группы на элементы внутривключен
collapseGroupsсхлопывание бесполезных групп <g>включен
removeRasterImagesудаление растровых изображенийвыключено
mergePathsсклеивание нескольких Path в одну кривуювключен
convertShapeToPathконвертирование простых форм в Pathвключен
convertEllipseToCircleконвертирование вырожденного эллипса <ellipse> в круг <circle>включен
sortAttrsсортировка атрибутов элементов для удобочитаемостивыключено
sortDefsChildrenсортировка детей <defs> для лучшей компрессиивключен
removeDimensionsудаляет атрибуты width/height при наличии viewBox (противоречит removeViewBox — плагин должен быть выключен)выключено
removeAttrsудаляет атрибуты по указанному паттернувыключено
removeAttributesBySelectorудаляет атрибуты по CSS-селекторувыключено
removeElementsByAttrудаляет элементы по указанным ID или классамвыключено
addClassesToSVGElementдобавляет имена классов корневому элементу <svg>выключено
addAttributesToSVGElementдобавляет атрибуты корневому элементу <svg>выключено
removeOffCanvasPathsудаляет элементы вне отрисовываемой областивыключено
removeStyleElementудаляет элементы <style>выключено
removeScriptElementудаляет элементы <script>выключено
reusePathsЗаменяет дублирующиеся элементы ссылками выключено

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

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

$ [sudo] npm install -g svgo

Выполнение:

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

Запуск:
  svgo [OPTIONS] [ARGS]

Параметры:
  -h, --help : Помощь
  -v, --version : Версия программы
  -i INPUT, --input=INPUT : Входной файл, "-" для STDIN
  -s STRING, --string=STRING : Входная строка SVG
  -f FOLDER, --folder=FOLDER : Входная папка, оптимизирует и перезаписывает все файлы *.svg
  -o OUTPUT, --output=OUTPUT : Выходной файл или папка (совпадает с входным по умолчанию), "-" для STDOUT
  -p PRECISION, --precision=PRECISION : Число цифр после запятой, переопределяет параметры плагинов
  --config=CONFIG : Файл конфигурации (или строка JSON) для расширения и замены настроек
  --disable=PLUGIN : Выключение плагина по имени, "--disable=PLUGIN1,PLUGIN2" для отключения нескольких плагинов
  --enable=PLUGIN : Включение плагина по имени, "--enable=PLUGIN3,PLUGIN4" для отключения нескольких плагинов
  --datauri=DATAURI : Результат в виде строки Data URI (base64, URI encoded или unencoded)
  --multipass : Оптимизация в несколько проходов для применения всех возможных оптимизаций
  --pretty : Удобочитаемое форматирование SVG
  --indent=INDENT : Размер отступа для удобочитаемого форматирования
  -r, --recursive : Совместно с '-f'. Рекурсивно обрабатывать *.svg файлы в папках.
  -q, --quiet : Подавляет вывод информации, выводятся только сообщения об ошибках
  --show-plugins : Доступные плагины

Аргументы:
  INPUT : Аналогично --input
  • с файлами:

    $ svgo test.svg

    или:

    $ svgo *.svg
    $ svgo test.svg -o test.min.svg
    $ svgo test.svg other.svg third.svg
    $ svgo test.svg other.svg third.svg -o test.min.svg -o other.min.svg -o third.min.svg
  • со STDIN / STDOUT:

    $ cat test.svg | svgo -i - -o - > test.min.svg
  • с папками

    $ svgo -f ../path/to/folder/with/svg/files

    или:

    $ svgo -f ../path/to/folder/with/svg/files -o ../path/to/folder/with/svg/output
    $ svgo *.svg -o ../path/to/folder/with/svg/output
  • со строками:

    $ svgo -s '<svg version="1.1">test</svg>' -o test.min.svg

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

    $ svgo -s 'data:image/svg+xml;base64,…' -o test.min.svg
  • с SVGZ:

    из .svgz в .svg:

    $ gunzip -c test.svgz | svgo -i - -o test.min.svg

    из .svg в .svgz:

    $ svgo test.svg -o - | gzip -cfq9 > test.svgz

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值