@broberg/gravatar

中文文档
0.2.1发布于 2026/08/23MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 3005

Isomorphic Gravatar helper (SHA-256) + 首字母回落. 无头核心 + React and Preact 适配器组件有3级倒置:上传图片 → Gravatar → 生成首字母.

中文使用文档
文档目录4 节
  1. gravatarLookup() ——三种结果,因为有三种
  2. getInitials() ——字母,而非字符
  3. 核心点是 async ,目的
  4. API 密码

@broberg/重力

Gravatar URL和Avatar为舰队首字母缩写. 零运行时间依赖性,同位素.

npm i @broberg/gravatar
import { gravatarUrl, gravatarLookup, getInitials } from "@broberg/gravatar";

await gravatarUrl("[email protected]", { size: 80, default: "404" });
await gravatarLookup("[email protected]");   // 'yes' | 'no' | 'unknown'
getInitials("Christian Broberg");          // 'CB'

还有船 @broberg/gravatar/react 财务报告和审定财务报表 @broberg/gravatar/preact。 。 。 .

gravatarLookup() ——三种结果,因为有三种

const presence = await gravatarLookup("[email protected]");
if (presence !== "unknown") cache.set(email, presence);   // never cache a guess
回应结果含义
404no绝对不是虚构的
200yes
5xx 抛出 超时 出奇状态unknown不要将此缓存为否

为什么它存在(v0.2.0. 古老的布林把三个事实折叠成两个:一个503来自Automattic,一个中断的连接都回来了 false,其内容如下: "没有照片"。 。 。 .

还有你 缓存 这个答案,你必须, 或者你要求自动在每一页渲染。 因此,一个十秒打嗝使得一个用户花费了他们的Avatar,直到缓存到期,在呼叫站没有任何信息可以透露. 一个消费者在他们通过这个包裹的那天发现的.

gravatarExists() 现有呼叫者保持不变 他俩还是分不清 两者都是 false。如果存储结果,您会存储每一次失败的猜测。 使用 gravatarLookup 任何你缓存的东西.

getInitials() ——字母,而非字符

getInitials("Lens (verifikation)");   // 'LV'    (was 'L(' before v0.2.0)
getInitials(null, "[email protected]");   // 'X'     (was 'X@')
getInitials("  ");                    // '??'    (was two spaces)
getInitials("李 明");                  // '李明'
getInitials("José");                  // 'JO'

在非字母/非数字,unicode-aware上进行分拆——因此CJK和重音拉丁语作品,只有ASCII的测试套房是永远不会抓到的.

电子邮件分支拿走 前缀 在此之前 @。这就是它的文件总是声称的;代码读取了整个地址,只看对了,因为大多数地址都是从两个字母开始的.

邮件在 name 插槽工程(v0.2.1). getInitials("[email protected]") → CB,与 getInitials(null, "[email protected]") - 因为.. navn = bruger.navn || bruger.email 是一个普通的呼叫站,两个论点必须同意。 侦测是保守的: 完全是一个 @,两侧无空和白空,所以 "Anne @ Hansen" 保持一个名字.

0.2.0 得到这个错误并运出它: 名字槽中的每一个地址都出现在TLD的第一个字母中([email protected] → CD) (中文(简体) ). 本来应该被它抓住的接受标准,在《公约》中也坚持了同样的标准 电子邮件 论点只是——索赔涉及的是普通案件,检验标准涉及的是一种论点,两者都是绿色的.

众所周知的限制,故意的. getInitials("Jens Hansen, direktør") 返回时 JD - 它以标题为姓氏。 在第一个逗号上断线就能修好丹麦人 "名字,标题" 表格和表格 换行 同样常见的 "苏姓,名出" 输出。 两会相会相会,相会相会相会,而弦中无所分辨. 独自一人 而不是猜测.

核心点是 async,目的

gravatarHash 财务报告和审定财务报表 gravatarUrl 返回承诺,因为使用 crypto.subtle - 在Node, Bun, Deno, 工人中存在的一个散列API 财务报告和审定财务报表 浏览器.

仅限节点的消费者期望同步 createHash 将惊讶。 这就是同位素税,这是刻意的:替代办法是每个消费者有两个代码路径和一个捆绑条件.

API 密码

导出
gravatarHash(email)SHA-256 修饰后,小写地址
gravatarUrl(email, { size?, default? })完整图像 URL
gravatarLookup(email, size?)'yes' | 'no' | 'unknown'
gravatarExists(email, size?)boolean 损失;见上文
getInitials(name?, email?)最多两个大写字符,或 '??'

版本与发布记录

@broberg/gravatar 共发布 3 个版本,首次发布于 2026/06/30;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.1latest2026/08/232 个月前
0.2.02026/08/232 个月前
0.1.02026/06/304 个月前

关于 @broberg/gravatar 的常见问题

@broberg/gravatar 是什么?

Isomorphic Gravatar helper (SHA-256) + 首字母回落. 无头核心 + React and Preact 适配器组件有3级倒置:上传图片 → Gravatar → 生成首字母.

如何安装 @broberg/gravatar?

在项目目录运行 npm install @broberg/gravatar,或使用 pnpm add / yarn add / bun add。

@broberg/gravatar 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@broberg/gravatar 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@broberg/gravatar 可以商用吗?

@broberg/gravatar 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@broberg/gravatar 的下载量有多少?

根据 npm 官方下载统计,@broberg/gravatar 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,005 次,日均约 100 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@broberg/gravatar 还在维护吗?

最新版本 0.2.1 发布于 2026/08/23(2 个月前);至今共发布 3 个版本,其中过去 12 个月发布了 3 个;首次发布于 2026/06/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。