mcpField
M
miniprogram-iconfont

miniprogram-iconfont

github.com/shyxinDesign & UI563 installsUpdated 1d ago
Repository

About miniprogram-iconfont

miniprogram-iconfont is a skill for integrating iconfont.cn fonts into WeChat Mini Program projects. It guides icon selection, font and WXSS updates, emoji replacement, and build verification, including a dry run before edits.

Key features

  1. 01Guided iconfont icon selection
  2. 02Update font files and WXSS
  3. 03Check and add icon class names
  4. 04Preview and replace emoji in WXML/JS
  5. 05Build verification and troubleshooting

Use cases

  1. 01Add iconfont icons to a WeChat Mini Program
  2. 02Replace page emoji with font icons
  3. 03Review replacements and diagnose display issues

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/shyxin/skills --skill miniprogram-iconfont

After installing, type/miniprogram-iconfontin Claude Code to confirm it loaded.

Bundled filesscripts/replace-emoji.jsscripts/update-iconfont.js

Details

From the project README

小程序 Iconfont 图标集成技能

将 iconfont.cn 图标集成到微信小程序的完整流程,分 5 步执行。

前置信息

  • iconfont 项目 ID:5170982(佳馨心理咨询小程序)
  • 字体文件目录:{project}/images/font_icon/
  • CSS 文件:{project}/styles/iconfont.wxss
  • emoji 对照表:{project}/emoji-icon-mapping.md

流程

Step 1:确认需要哪些图标
  1. 读取 {project}/emoji-icon-mapping.md,列出所有 emoji 及其对应的搜索关键词
  2. 询问用户:
    • 要新增哪些图标?(按分类展示对照表供选择)
    • 还是全部未替换的图标都处理?
  3. 生成精确的 iconfont 搜索链接,例如:
    https://www.iconfont.cn/search/index?q=设置&type=icon
    
  4. 提示用户:
    • 登录 iconfont.cn
    • 搜索关键词 → 添加入库
    • 右上角购物车 → 添加至项目 → 选择项目 5170982
    • 项目页 → 下载至本地
    • 解压后将所有文件覆盖到 {project}/images/font_icon/
Step 2:替换字体文件

用户下载完成后,检查 {project}/images/font_icon/ 目录:

ls {project}/images/font_icon/
# 应包含:iconfont.ttf, iconfont.woff, iconfont.woff2, iconfont.css, iconfont.js, iconfont.json

如果用户只提供了 .ttf,也可以只替换 .ttf(脚本只需要它)。

Step 3:运行更新脚本

使用技能自带的参数化脚本:

node {skill-dir}/scripts/update-iconfont.js \
  --ttf  {project}/images/font_icon/iconfont.ttf \
  --wxss {project}/styles/iconfont.wxss

如果项目已有 scripts/update-iconfont.js,也可以直接用项目的版本:

cd {project}
node scripts/update-iconfont.js

检查输出:确认脚本报告 "IconFont 更新完成"。

Step 4:确认 CSS 类名
  1. 打开 {project}/iconfont.css(下载包里的),查看所有图标的类名
  2. 打开 {project}/styles/iconfont.wxss,确认新图标的 CSS 类名已存在
  3. 如果 wxss 中缺少某些类名,从 iconfont.css 中复制对应的 .icon-xxx:before 规则到 wxss
Step 5:替换 WXML/JS 中的 emoji

使用技能自带的替换脚本:

node {skill-dir}/scripts/replace-emoji.js {project} --dry-run
  1. 先 dry-run:扫描所有 .wxml 和 .js 文件,输出变更清单
  2. 给用户确认:展示每个文件的替换详情(文件、行号、emoji → 类名)
  3. 执行替换:
node {skill-dir}/scripts/replace-emoji.js {project}

用户确认后执行实际替换。

替换规则:⚙️ → <text class="iconfont icon-settings"></text>

Step 6:重新编译验证

提示用户在微信开发者工具中:

  1. 点击「编译」
  2. 检查图标是否正常显示
  3. 如果显示为方框 → 回到 Step 4 检查 CSS 类名

常见问题

问题原因解决方案
图标不显示wxss 未更新重新运行 node scripts/update-iconfont.js
图标显示为方框CSS 类名不存在从 iconfont.css 复制类名到 iconfont.wxss
图标颜色不对未设置 color添加 color: var(--primary) 或具体色值
图标尺寸不对未设置 font-size设置 font-size: 32rpx(根据场景调整)
替换后页面报错WXML 中 emoji 在属性值里手动检查并修复属性值中的 emoji

注意事项

  1. 先备份:替换 WXML/JS 前建议用户提交 git 或备份
  2. 分批替换:如果图标很多,按分类分批替换,降低风险
  3. 特殊位置:JS 中动态拼接的 emoji(如 pages/management/index.js)需要手动处理,脚本只处理字面量
  4. 成对图标:❤️(实心)和 🤍(空心)可能映射到相同类名,需手动区分

Comments

Markdown supported