
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
grunt-svgstore
Advanced tools
Merge SVGs from a folder.
Because Chris Coyer asked.
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-svgstore --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-svgstore');
In your project's Gruntfile, add a section named svgstore
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
svgstore: {
options: {
prefix : 'icon-', // This will prefix each ID
svg: { // will be added as attributes to the resulting SVG
viewBox : '0 0 100 100'
}
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
Type: String
Default value: ''
A string value that is used to prefix each filename to generate the id.
Type: Object
Default value: {}
An object that is used to generate attributes for the resulting svg
file.
{
viewBox: '0 0 100 100'
}
will result in:
<svg viewBox="0 0 100 100">
[...]
Type: Object
Default value: {}
Just like options.svg
but will add attributes to each generated <symbol>
.
Type: Object
or boolean
Default value: false
Formatting options for generated code.
To format the generated HTML, set formatting
with options like: {indent_size : 2}
, which in context looks like:
default: {
options: {
formatting : {
indent_size : 2
}
}
See js-beautify for more options.
Type: boolean
Default value: false
This will include a demo HTML (named like destName + -demo.html
) from where you can copy your <use>
blocks.
Type: boolean
Default value: false
Clean up all inline style definitions that may jeopardise later stylesheet-based colouring (fill
).
This example will merge all elements from the svgs
folder into the <defs>
-Block of the dest.svg
. You can use that SVG in HTML like:
<!-- Include dest.svg -->
[...]
<svg><use xlink:href="#filename" /></svg>
grunt.initConfig({
svgstore: {
options: {},
default : {
files: {
'dest/dest.svg': ['svgs/*.svg'],
},
},
},
});
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
options.clean
to remove inline styles from source svgs. (Thanks to ain)options.symbol
to add attributes to generated <symbol>
s (#30)name.min.svg
becomes name
. (Fixes #29)viewBox
in outputted svg (fix #26)<symbol>
-tag out of <defs>
-tag (see the spec)<defs>
-tag if needed (e.g. <linearGradient>
is used)<symbol>
-tag for representing icons (See TxHawks Comment.)viewBox
attribute to the <symbol>
-tag,title
and desc
elements in the generated svg for each <symbol>
title
url()
(fix #12)options.formatting
to format svg via js-beautifyFAQs
Merge SVGs from a folder
The npm package grunt-svgstore receives a total of 8,001 weekly downloads. As such, grunt-svgstore popularity was classified as popular.
We found that grunt-svgstore demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.