UNPKG

ten-design-vue

Version:

ten-vue

55 lines (46 loc) 2.05 kB
"use strict"; /* eslint-disable */ var fs = require('fs'); var path = require('path'); var svgsPath = path.join(__dirname, '../svg/'); var targetJsonPath = path.join(__dirname, '../svg.json'); var svgMap = {}; var files = fs.readdirSync(svgsPath); files = files.filter(function (file) { return /[a-zA-Z_]+\.svg$/.test(file); }); // console.log(files); files.forEach(function (file) { var content = fs.readFileSync(path.join(svgsPath, file), { encoding: 'utf8' }); if (file.indexOf('loading_gradient') === -1) { content = content.replace(/<\?xml.+?>/, ''); content = content.replace(/<!--\s*Generator.+?-->/, ''); content = content.replace(/<title.+?>/, ''); content = content.replace(/<desc.+?>/, ''); content = content.replace('<rect fill="#FFFFFF" x="0" y="0" width="24" height="24"></rect>', ''); // content = content.replace(/fill(-rule)?=".*"/g, ''); content = content.replace(/"#000000"/gi, '"currentColor"'); content = content.replace(/"#333333"/gi, '"currentColor"'); content = content.replace(/fill="#.+?"/gi, 'fill="currentColor"'); content = content.replace(/\sid=".+?"/gi, ''); content = content.replace(/<svg.+?>/, function () { return "<svg fill=\"currentColor\" width=\"24px\" height=\"24px\" viewBox=\"0 0 24 24\">"; }); content = content.replace(/\n\s+?\n+/g, '\n'); } svgMap[file.replace('.svg', '')] = content; // console.log(content); }); // fs.writeFileSync('./keys.json', JSON.stringify(Object.keys(svgMap), null, 2), { encoding: 'utf8' }); fs.writeFileSync(targetJsonPath, JSON.stringify(svgMap, null, 2), { encoding: 'utf8' }); // rewrite demo keys var keysStr = JSON.stringify(Object.keys(svgMap)).replace(/\,/g, ', ').replace(/"/g, '\''); var demoFilePath = path.join(__dirname, '../demos/base.vue'); var demoStr = fs.readFileSync(demoFilePath, { encoding: 'utf8' }); var newDemoStr = demoStr.replace(/icons:\s\[.*?\]/, function (str) { return "icons: ".concat(keysStr); }); fs.writeFileSync(demoFilePath, newDemoStr, { encoding: 'utf8' });