Skip to content

Iconify 图标集包

您可以从以下来源获取最新版本的开源图标数据:

您也可以获取更小的包,但本文档未涵盖相关内容。请参阅图标数据文档

内容

该包包含:

  • 位于 collections.json 中的图标集列表。
  • 位于 json/{prefix}.json 中的图标集,其中 "{prefix}" 是图标集前缀,例如 json/mdi-light.json
  • 适用于 PHP 和 Node.js 的辅助函数
  • 其他文件,如包定义文件、README 以及人类可读的图标集列表。

图标集列表

图标集列表存储在 collections.json 中。

内容是一个简单的对象,其中键是图标集前缀,值是以 IconifyInfo 格式存储的图标集信息。信息包括图标集名称、作者信息、许可证、文件数量以及 3 个用于展示的示例文件。

此外,collections.md 包含相同的数据,但采用人类可读的格式。

图标集

每个图标集都存储在一个文件中,位于 json/ 目录下。文件名与图标集前缀匹配,您可以在 collections.json 的图标集列表中将其作为键找到。

内容以 IconifyJSON 格式存储。

图标集文件包含所有图标集数据,包括信息和元数据。如果您想获取不包含额外内容的最小版本,请改用小型包

维护

该包每隔几天会自动更新一次,因此始终包含最新的图标。如果您想使用最新的图标,只需保持项目中的依赖项为最新即可。

如果您正在使用 Iconify API,则无需执行任何操作,因为更改会在发布后几分钟内自动推送到 API 服务器。

读取数据

要读取图标集,您可以使用:

要将图标集包与 Iconify Utils 配合使用,请按照以下步骤操作:

  • 从特定图标集的 JSON 文件中读取图标数据。如果您使用的是返回字符串的文件系统函数,请使用 JSON.parse() 将其转换为 IconifyJSON 对象。
  • 提取数据。要提取多个图标,请使用 getIcons();要提取单个图标,请使用 getIconData()。点击函数链接可查看代码示例。

辅助函数

该包包含适用于 Node.js 和 PHP 的简单辅助函数。

Node.js 函数

@iconify/json 的 Node.js 版本中,函数是异步的:

  • lookupCollections() 返回集合列表。它是一个简单的对象,其中键是前缀,值是以 IconifyInfo 格式存储的图标集信息。
  • lookupCollection(prefix) 加载一个图标集。结果为 IconifyJSON 对象。

上述所有函数均为异步函数,需要在函数名前使用 await(见下方示例)。

此外还有少数同步函数:

  • locate(prefix) 返回图标集 JSON 文件的位置。

PHP 函数

PHP 是一种同步语言,因此适用于 PHP 的函数在版本 1 和版本 2 中是相同的。

使用 Iconify\IconsJSON\Finder 类,该类包含以下静态函数:

  • collections() 返回集合列表。它是一个简单的对象,其中键是前缀,值是图标集信息。对于版本 1,数据采用 LegacyIconifyInfo 格式;对于版本 2,数据采用 IconifyInfo 格式。
  • locate(prefix) 返回图标集 JSON 文件的位置。
  • rootDir() 返回包根目录的位置。

示例

示例:

Node.js
js// Installation: npm install --save @iconify/json
import { lookupCollections, locate } from '@iconify/json';

(async () => {
   // Get list of all icon sets
   const iconSets = await lookupCollections();
   const prefixes = Object.keys(iconSets);
   console.log(`Available ${prefixes.length} icon sets`);

   // List icon sets in format: "prefix: name (total icons)"
   console.log(
       prefixes
           .map((prefix) => {
               const item = iconSets[prefix];
               // prefix: name (total icons)
               return prefix + ': ' + item.name + ' (' + item.total + ' icons)';
           })
           .join('\n')
   );

   // Get location of Taber Icons JSON file
   const tabler = locate('tabler');
   console.log('Tabler icons JSON file is located at:', tabler);
})();
PHP
php<?php
require './vendor/autoload.php';

// Installation: composer require iconify/json
use Iconify\IconsJSON\Finder;

// Get list of all icon sets
$iconSets = Finder::collections();
$prefixes = array_keys($iconSets);
echo 'Available ', count($prefixes), " icon sets\n";

// List icon sets in format: "prefix: name (total icons)"
echo implode("\n", array_map(function ($prefix) use ($iconSets) {
   $item = $iconSets[$prefix];
   return $prefix . ': ' . $item['name'] . ' (' . $item['total'] . ' icons)';
}, $prefixes)), "\n";

// Get location of Taber Icons JSON file
$tabler = Finder::locate('tabler');
echo 'Tabler icons JSON file is located at: ', $tabler, "\n";

这些辅助函数仅用于列出和定位图标集。

要读取图标集,您可以使用 Iconify Utils

添加图标集

您是否知道某个优秀的开源图标集尚未收录在 Iconify 图标集中?在 GitHub 上提交 Issue 以请求将其添加到 Iconify 图标集中。

许可证

Iconify 集合中提供的所有图标集均在免费或开源许可证下发布,允许重新分发。有关详细信息,请参阅每个图标集的信息。