Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
grunt-svgstore
Advanced tools
Merge SVGs from a folder.
Because Chris Coyier 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');
Chris made a screencast, using grunt-svgstore
in a real project, you can find it here.
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
or Array
Default value: false
Clean up all inline style definitions that may jeopardise later stylesheet-based colouring (fill
).
Apart from true / false, the value of this property can be an array of attributes.
All attributes in the array are removed from all elements in the SVG.
Type: boolean
Default value: false
When set to false, no cleanup is performed on the <defs>
element.
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.
linearGradient
, radialGradient
and pattern
elements out of the <symbol>
tag. (See #49)<defs>
element. (#41)<g>
elements are removed since they have no effect in a document. (#42)Thanks to Frank3K for the PRs
svgstore
. (Thanks to #38)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-beautify0.3.2
linearGradient
, radialGradient
and pattern
elements out of the
<symbol>
tag.
(See #49)FAQs
Merge SVGs from a folder
The npm package grunt-svgstore receives a total of 9,908 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
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.