当前位置: 首页 > Web前端 > CSS

svgtofont.js自动生成图标字体和彩色图标文件

时间:2023-03-30 22:15:41 CSS

一般我都是用iconfont或者icomoon来实现图标管理和生成字体,导入到项目中使用。┌──────────┐┌────────────┐│iconfont│──┐│项目│└──────────┘│┌───────────────┐┌────────┐│┌──────────┐│├──?│创建字体│─?│下载│──?││使用字体│...│──┘└──────────────┘└──────────┘说明图标字体只能以单色呈现,并且无法生成彩色图标。图标会在平台上维护,字体文件会下载到项目中使用,所以团队维护和生成字体的成本会非常高。通过图标平台网站下载svg图标,将图标放入项目管理,通过svgtofont.js工具生成。这将是新的字体图标使用方法:┌──────────────────────────┐│项目│││┌────────────┐┐┌────────────┐││iconfont│──┐││svg│──┐...──?│┌──────────────┐││┌──────────┐│└──────────────┘│┌──│创建字体│?─┘││icomoon│──┘││└────────────┘│└──────────┘││┌────────────────└││?─?│使用字体│││└───────────────────────────────────────┘新增维护方式优点:无需懂第三方平台账号维护,下载图标到项目维护图标,不再维护字体文件生成彩色图标文件SVGSymbol中使用svgtofont项目读取一组SVG图标,并从SVG图标中提取出TTF/EOT/WOFF/WOFF2/SVG字体,字体生成器。功能支持的字体格式:WOFF2、WOFF、EOT、TTF和SVG。支持SVG符号文件。自动生成模板(如css、less等),直接使用即可。自动生成预览网站和预览字体文件。示例https://github.com/uiwjs/iconshttps://github.com/uiwjs/file...使用constsvgtofont=require("svgtofont");的简单方法安装npmisvgtofontsvgtofont({src:path.resolve(process.cwd(),"icon"),//svg图标目录路径dist:path.resolve(process.cwd(),"fonts"),//输出到指定目录fontName:"svgtofont",//设置字体名称css:true,//生成字体文件}).then(()=>{console.log('done!');});高级用法constsvgtofont=require("svgtofont");constpath=require("path");svgtofont({src:path.resolve(process.cwd(),"icon"),//svg图标目录路径dist:path.resolve(process.cwd(),"fonts"),//输出到指定目录fontName:"svgtofont",//设置字体名称css:true,//生成字体文件startNumber:20000,//unicode起始编号svgicons2svgfont:{fontHeight:1000,normalize:true},//website=null,无演示htmlfilewebsite:{title:"svgtofont",//必须是.svg格式image.logo:path.resolve(process.cwd(),"svg","git.svg"),version:pkg.version,meta:{描述:"将SVG字体转换为TTF/EOT/WOFF/WOFF2/SVG格式。”,关键字:“svgtofont,TTF,EOT,WOFF,WOFF2,SVG”},描述:``,链接:[{title:“GitHub”,url:“https://github.com/jaywcjlove/svgtofont"},{title:"反馈",url:"https://github.com/jaywcjlove/svgtofont/issues"},{title:"字体类",url:"index.html"},{title:"Unicode",url:"unicode.html"}],footerInfo:`在麻省理工学院获得许可。(是的,它是免费的并且开源`}}).then(()=>{console.log('done!');});;APIsvgtofont提供API,可以一个一个生成,也可以通过上面的方法自动生成const{createSVG,createTTF,createEOT,createWOFF,createWOFF2}=require("svgtofont/src/utils");constoptions={...};createSVG(options)//SVG=>SVG字体.then(UnicodeObjChar=>createTTF(options))//SVGFont=>TTF.then(()=>createEOT(options))//TTF=>EOT.then(()=>createWOFF(options))//TTF=>WOFF.then(()=>createWOFF2(options))//TTF=>WOFF2.then(()=>createSvgSymbol(options))//SVGFiles=>SVGSymboloptionssvgtofont(options)distType:String默认值:distsvg图标路径srcType:String默认值:svg输出到指定目录fontNameType:String默认值:iconfont你想要的字体名称unicodeStartType:Number默认值:10000Unicode起始编号clssaNamePrefixType:String默认值:字体名称创建字体类名称前缀,默认值为字体名称。cssType:Boolean默认值:false创建CSS/LESS文件,默认为“true”。svgicons2svgfont这是svgicons2svgfont的设置svgicons2svgfont.fontNameType:String默认值:'iconfont'你要的字体的名字,和前面的fontName一样。svgicons2svgfont.fontIdType:String默认值:options.fontName值你想要的字体ID。svgicons2svgfont.fontStyleType:String默认值:''你想要的字体样式。svgicons2svgfont.fontWeightType:String默认值:''你想要的字体粗细。svgicons2svgfont.fixedWidthType:布尔值默认值:false创建具有最大输入图标宽度的等宽字体。svgicons2svgfont.centerHorizo??ntallyType:布尔值默认值:false计算字形的边界并将其水平居中。svgicons2svgfont.normalizeType:布尔值默认值:false通过将图标缩放到最高图标的高度来规范化图标。svgicons2svgfont.fontHeightType:Number默认值:MAX(icons.height)输出字体高度(默认为最高输入图标的高度)。svgicons2svgfont.roundType:Number默认值:10e12设置SVG路径舍入。svgicons2svgfont.descentType:Number默认值:0字体下降。自己修复字体基线很有用。警告:drop为正值!svgicons2svgfont.ascentType:Number默认值:fontHeight-下降字体上升。仅当您知道自己在做什么时才使用此选项。为您计算出合适的值。svgicons2svgfont.metadataType:字符串默认值:未定义字体元数据。您可以设置任何字符数据,但这是提及版权的适当位置。svgicons2svgfont.logType:Function默认值:console.log允许您提供自己的日志记录功能。settofunction(){}disableloggingsvg2ttf这是svg2ttf的设置svg2ttf.copyrightType:Stringcopyrightstringsvg2ttf.tsType:StringUnixtimestamp(inseconds)usedtooverridecreationtimesvg2ttf.versionType:Numberfontversionstring,canbeVersionx.y或x.y.website定义预览网页内容。示例:{...//网站=null,无演示html文件网站:{标题:“svgtofont”,徽标:path.resolve(process.cwd(),“svg”,“git.svg”),版本:pkg.version,meta:{描述:“将SVG字体转换为TTF/EOT/WOFF/WOFF2/SVG格式。”,关键字:“svgtofont,TTF,EOT,WOFF,WOFF2,SVG”,favicon:“./favicon。png"},footerLinks:[{title:"GitHub",url:"https://github.com/jaywcjlove/svgtofont"},{title:"反馈",url:"https://github.com/jaywcjlove/svgtofont/issues"},{title:"FontClass",url:"index.html"},{title:"Unicode",url:"unicode.html"}]}}website.templateType:String默认值:index.ejs自定义模板可以自定义参数。您可以根据默认模板定义自己的模板。{website:{template:path.join(process.cwd(),"my-template.ejs")}}website.indexType:String默认值:font-class,Enum{font-class,unicode,symbol}setdefault主页。字体使用假设字体名称定义为svgtofont,默认主页为unicode,会生成:font-class.htmlindex.htmlsymbol.htmlsvgtofont.csssvgtofont.eotsvgtofont.lesssvgtofont.svgsvgtofont.symbol.svgsvgtofont.ttfsvgtofont.woffsvoff2-demon-preview.fwont。html、symbol.html和index.html。自动生成样式svgtofont.css和svgtofont.less。符号svgUnicode?ClassName支持.less和.css样式引用。根据MIT许可获得许可。