Iconify 图标集包
您可以从以下来源获取最新版本的开源图标数据:
- 来自 GitHub:https://github.com/iconify/icon-sets
- 来自 NPM:@iconify/json
- 来自 Packagist:iconify/json
您也可以获取更小的包,但本文档未涵盖相关内容。请参阅图标数据文档。
内容
该包包含:
- 位于 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 服务器。
读取数据
要读取图标集,您可以使用:
- 适用于 JavaScript 的 Iconify Utils。
- 适用于 PHP 的 Iconify JSON Tools,已弃用且不再维护。
要将图标集包与 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() 返回包根目录的位置。
示例
示例:
// 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);
})();
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 集合中提供的所有图标集均在免费或开源许可证下发布,允许重新分发。有关详细信息,请参阅每个图标集的信息。