字体图标生成(字体图标生成工具)

字体图标生成(字体图标生成工具)上一篇 Flutter 知识集锦 Dart 开发命令行工具 介绍了 如何通过 Dart 开发一个命令行脚本工具 本篇将结合一个具体的场景 介绍一下它的使用 toly 命令行工具目前已经开源并上传到 pub github 地址 https github com toly toly pub 地址 https pub dev packages toly 安装

大家好,我是讯享网,很高兴认识大家。




上一篇 《Flutter 知识集锦 | Dart 开发命令行工具》 介绍了,如何通过 Dart 开发一个命令行脚本工具。本篇将结合一个具体的场景,介绍一下它的使用。toly 命令行工具目前已经开源并上传到 pub :

github 地址: https://github.com/toly/toly pub 地址: https://pub.dev/packages/toly

安装 toly 工具的命令:

dart pub global activate toly

jvideo

bilibli 视频: https://www.bilibili.com/video/BV1Pa4y127V6/


1. 图标字体工具的使用

我们的目的是通过脚本工具,可以非常便利地使用 iconfont 的图标字体。

| 内置图标 | 自定义图标 | | ——————————————————————————————————————————————————————————— | ———————————————————————————————————————————————————————————- | | image.png
讯享网 | image.png |

将下载的字体图标放入指定目录后,命令行输入: toly icon ,即可做到

  • [1]. 自动提取 压缩包的字体文件
  • [2]. 自动生成 字体图标的访问代码
  • [3]. 自动配置 pubspec.yaml 文件的字体图标节点

image.png


也就是说,对于开发者而言,只要准备好下载的资源,然后执行命令,就可以调用生成代码的常量,展示对应的图标。这样将极大地方便开发者对字体图标的使用:

image.png

通过修改配置信息,也可以实现:一个项目中使用多个图标字体资源的目的

image.png


2. toly icon 配置方式

另外, toly icon 支持在 Flutter 项目中通过 ,配置一些路径信息。如果不指定,会使用默认值:


3. 图标字体资源准备

在 iconfont.cn 挑选图标,通过加入购物车,创建项目:

image.png

在项目界面中,下载压缩包,将资源放在指定目录即可:

image.png


4. toly icon 的代码实现

在前在 FlutterUnit 里已经实现过交互界面的字体图标生成工具,这里只需要将用户的输入转换读取配置,在命令行执行而已,总体来说并不是非常困难。

1677288888998.png

对于图标字体的代码生成,最早可以追溯到我接触 Flutter 的第七天(2018-12-22):

  • 《Flutter第7天–字体图标+综合小案例+Android代码交互》

这里在 toly 项目中添加了 src/icon 文件夹,用于放置 icon 命令处理的代码:

image.png

在 的 mian 函数中,顺便加了查看版本信息和帮助信息的功能。当 的第一个参数是 时,通过 方法完成任务:

 void main(List 
arguments) { if (arguments.isEmpty) { print(getHelpText()); return; } 

讯享网 String cmd = arguments.first; if (cmd == ‘-V’ || cmd == ‘–version’) { print(‘toly version: \(kVersion&#39;); return; }</p> <p>if (cmd &#61;&#61; &#39;icon&#39;) { const IconGen().gen(); return; } &#96;&#96;&#96;</p> <hr /> <p>IconGen 中创建 &#xff0c;并通过 读取配置信息&#xff0c;得到 配置对象&#xff0c;最后通过解析器的 gen 方法处理具体逻辑&#xff1a;</p> <p>&#96;&#96;&#96;dart class IconGen{ const IconGen();</p> <p>void gen(){ final IconFontClassParser parser &#61; IconFontClassParser(); var configResult &#61; ConfigReader().readIconConfig(); IconFontGenConfig? config &#61; configResult.\)1; if (config == null) { print(configResult.\(2); return; } parser.gen(config); print(&#39;生成代码成功&#xff01;\){config.distFilePath}’); } } ```
配置读取器中,首先查看当前文件夹下是否有 ,来确定是否是 Flutter 项目,如果没有,返回并输出错误信息;另外需要校验一下下载的字体资源是否存在: ```dart class ConfigReader { (IconFontGenConfig?, String) readIconConfig() { String projectPath = Directory.current.path; File yamlFile = File(path.join(projectPath, ‘pubspec.yaml’)); if (!yamlFile.existsSync()) { return (null, ‘no pubspec.yaml in current Directory’); } dynamic doc = loadYaml(yamlFile.readAsStringSync()); dynamic configs = doc?[‘toly’]?[‘icon’]; String assetsDist = configs?[‘assetsdir’]??‘assets/iconfont’; String fileDist = configs?[‘distfile’]??‘lib/tolygen/tolyicon.dart’; String srcZip = configs?[‘src_zip’]??‘assets/download.zip’;

} } ```

解析器生成代码的部分在 《FlutterUnit 工具集录 | IconFont 类代码自动生成》 中有详细介绍,这里就不赘述了。


可以看出 dart 的命令行工具在 Flutter 项目中使用是非常优雅的,自动生成一些固定的代码非常方便。当然你也可以使用 dart 来其他有趣便捷地小工具。比如计算两个日期之间的期间间隔、获取一个文件的 MD5 、解析一个 json 文件,甚至通过创建模板项目等。希望 toly 的命令行工具可以给大家更多启发,那本文就到这里,谢谢观看 ~

小讯
上一篇 2025-05-08 23:57
下一篇 2025-06-16 08:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/183717.html