This library is a collection of tools for importing, exporting and processing SVG images.
Its main purpose is to convert icon sets and fonts to Iconify JSON collections, but it can be used for other purposes.
First install it by running this command:
npm install @iconify/tools --save
Functions incuded in Iconify Tools:
See Iconify Tools documentation.
This library is optinionated.
It does not allow the following content in icons:
All limitations listed above are by design.
Iconify Tools library is designed to export icons that are safe to use in any environment and render identically for all users.
The following code example does the following:
currentColor
.IconifyJSON
icon set.import { promises as fs } from 'fs'; import { importDirectory } from '@iconify/tools/lib/import/directory'; import { cleanupSVG } from '@iconify/tools/lib/svg/cleanup'; import { runSVGO } from '@iconify/tools/lib/optimise/svgo'; import { parseColors, isEmptyColor } from '@iconify/tools/lib/colors/parse'; (async () => { // Import icons const iconSet = await importDirectory('svg/test', { prefix: 'test', }); // Validate, clean up, fix palette and optimise iconSet.forEachSync((name, type) => { if (type !== 'icon') { return; } const svg = iconSet.toSVG(name); if (!svg) { // Invalid icon iconSet.remove(name); return; } // Clean up and optimise icons try { cleanupSVG(svg); parseColors(svg, { defaultColor: 'currentColor', callback: (attr, colorStr, color) => { return !color || isEmptyColor(color) ? colorStr : 'currentColor'; }, }); runSVGO(svg); } catch (err) { // Invalid icon console.error(`Error parsing ${name}:`, err); iconSet.remove(name); return; } // Update icon iconSet.fromSVG(name, svg); }); // Export as IconifyJSON const exported = JSON.stringify(iconSet.export(), null, '\t') + '\n'; // Save to file await fs.writeFile(`output/${iconSet.prefix}.json`, exported, 'utf8'); })();
Full documentation is too big for simple README file. See Iconify Tools documentation for detailed documentation with code samples.
Library is released with MIT license.
© 2021-PRESENT Vjacheslav Trushkin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4