diff --git a/packages/output-components-as-svg/index.js b/packages/output-components-as-svg/index.js index 83c01977..842fd354 100644 --- a/packages/output-components-as-svg/index.js +++ b/packages/output-components-as-svg/index.js @@ -4,8 +4,8 @@ const makeDir = require('make-dir'); module.exports = ({ output, - getDirname = (options) => options.dirname, - getBasename = (options) => `${options.pageName}-${options.basename}.svg`, + getDirname = (options) => `${options.pageName}${path.sep}${options.dirname}`, + getBasename = (options) => `${options.basename}.svg`, }) => { return async (pages) => { pages.forEach(({ name: pageName, components }) => { diff --git a/packages/output-components-as-svg/index.test.js b/packages/output-components-as-svg/index.test.js index 5f0a5871..660fb5d1 100644 --- a/packages/output-components-as-svg/index.test.js +++ b/packages/output-components-as-svg/index.test.js @@ -24,8 +24,8 @@ describe('outputter as svg', () => { })(pages); expect(writeFileSync).to.be.calledTwice; - expect(writeFileSync.firstCall).to.be.calledWithMatch('output/page1-Figma-Logo.svg'); - expect(writeFileSync.secondCall).to.be.calledWithMatch('output/page1-Search.svg'); + expect(writeFileSync.firstCall).to.be.calledWithMatch('output/page1/Figma-Logo.svg'); + expect(writeFileSync.secondCall).to.be.calledWithMatch('output/page1/Search.svg'); }); it('should create folder if component names contain slashes', async () => { @@ -38,7 +38,7 @@ describe('outputter as svg', () => { })(pages); expect(writeFileSync).to.be.calledOnce; - expect(writeFileSync.firstCall).to.be.calledWithMatch('output/icon/fakePage-eye.svg'); + expect(writeFileSync.firstCall).to.be.calledWithMatch('output/fakePage/icon/eye.svg'); }); describe('options', () => { @@ -50,11 +50,11 @@ describe('outputter as svg', () => { await outputter({ output: 'output', - getBasename: (options) => `${options.basename}.svg`, + getBasename: (options) => `${options.pageName}-${options.basename}.svg`, })(pages); expect(writeFileSync).to.be.calledOnce; - expect(writeFileSync.firstCall).to.be.calledWithMatch('output/icon/eye.svg'); + expect(writeFileSync.firstCall).to.be.calledWithMatch('output/fakePage/icon/fakePage-eye.svg'); }); it('should be able to customize "dirname"', async () => { @@ -62,12 +62,12 @@ describe('outputter as svg', () => { await outputter({ output: 'output', - getBasename: (options) => `${options.basename}.svg`, - getDirname: (options) => `${options.pageName}/${options.dirname}`, + getBasename: (options) => `${options.pageName}-${options.basename}.svg`, + getDirname: (options) => `${options.dirname}`, })(pages); expect(writeFileSync).to.be.calledOnce; - expect(writeFileSync.firstCall).to.be.calledWithMatch('output/fakePage/icon/eye.svg'); + expect(writeFileSync.firstCall).to.be.calledWithMatch('output/icon/fakePage-eye.svg'); }); }); }); diff --git a/packages/output-components-as-svgstore/README.md b/packages/output-components-as-svgstore/README.md index 1d324155..49621def 100644 --- a/packages/output-components-as-svgstore/README.md +++ b/packages/output-components-as-svgstore/README.md @@ -10,7 +10,8 @@ This is a sample of the output: $ tree output/ # output/ # ├── icons.svg -# └── monochrome.svg +# ├── monochrome.svg +# └── unit-test.svg ``` Probably you already know what CSS Sprites are, basically you can combine multiple images into a single image file and use it on a website. diff --git a/packages/output-components-as-svgstore/index.js b/packages/output-components-as-svgstore/index.js index 46b70b15..e16e1dee 100644 --- a/packages/output-components-as-svgstore/index.js +++ b/packages/output-components-as-svgstore/index.js @@ -14,7 +14,7 @@ module.exports = ({ const sprites = svgstore(options); components.forEach(({ name: componentName, svg }) => { - sprites.add(`${iconPrefix}${pageName}-${componentName}`, svg); + sprites.add(`${iconPrefix}${pageName}/${componentName}`, svg); }); const filePath = path.resolve(output, `${pageName}.svg`); diff --git a/packages/website/.figmaexportrc.js b/packages/website/.figmaexportrc.js index 45a954e2..42569fc4 100644 --- a/packages/website/.figmaexportrc.js +++ b/packages/website/.figmaexportrc.js @@ -36,7 +36,7 @@ module.exports = { require('../output-components-as-svgstore')({ output: './output/svgstore-monochrome', - iconPrefix: 'unfilled-', + iconPrefix: '[unfilled] ', options: { cleanSymbols: ['fill'] } diff --git a/packages/website/src/output-components/ComponentsAsSvgstore_default.js b/packages/website/src/output-components/ComponentsAsSvgstore_default.js index 94842f05..125d5a6a 100644 --- a/packages/website/src/output-components/ComponentsAsSvgstore_default.js +++ b/packages/website/src/output-components/ComponentsAsSvgstore_default.js @@ -41,12 +41,12 @@ const SvgAsSvgstoreComponent = () => (
- - - - - - + + + + + + ); diff --git a/packages/website/src/output-components/ComponentsAsSvgstore_monochrome.js b/packages/website/src/output-components/ComponentsAsSvgstore_monochrome.js index 107d955c..e657e765 100644 --- a/packages/website/src/output-components/ComponentsAsSvgstore_monochrome.js +++ b/packages/website/src/output-components/ComponentsAsSvgstore_monochrome.js @@ -41,8 +41,8 @@ const SvgAsSvgstoreMonochromeComponent = () => (
- - + + );