# 生成 packages/chat-ui/src/keyline-avatars.ts(机器人头像图标) # 用法:npm pack @iconify-json/keyline-icons@1.2.18 && tar xzf iconify-json-keyline-icons-1.2.18.tgz # python3 scripts/gen-keyline-avatars.py package/icons.json packages/chat-ui/src/keyline-avatars.ts import json, re, sys src, out = sys.argv[1], sys.argv[2] d = json.load(open(src))['icons'] groups = [ ('助手', 'bot bot-simple bot-square bot-circle bot-message bot-heart bot-star bot-cloud'), ('智能', 'bot-droplet brain brain-sparkles brain-circuit brain-cog cpu-sparkles message-sparkles wand-sparkles'), ('人物', 'user user-cog user-sparkles user-shield user-search user-pen user-voice headset'), ('数据', 'bar-chart chart-pie chart-area database table calculator coins scale'), ('文档', 'file file-chart-column book-open notebook-pen pen clipboard-list sticky-note folder-open'), ('技术', 'code terminal server cloud cpu bug wrench toolbox'), ('运维', 'shield-check lock key-round settings plug briefcase factory truck'), ('沟通', 'mail message megaphone bell calendar clock send inbox'), ('目标', 'rocket lightbulb target trophy crown sparkles flame star'), ('探索', 'globe compass map search flask-conical atom palette puzzle'), ] icons = {} for _, names in groups: for n in names.split(): body = d[n]['body'] # 只允许纯图形:没有脚本、事件属性、外部引用 assert not re.search(r' = {'] for n, b in icons.items(): lines.append(f" {json.dumps(n)}: {json.dumps(b, ensure_ascii=False)},") lines += ['}', ''] open(out, 'w').write('\n'.join(lines).replace("['", "['").replace("', '", "', '")) print(len(icons), 'icons')