mcpField
F
Format numbers

Format numbers

github.com/tryghost开发55.6k49 次安装今天更新
代码仓库

关于 Format numbers

面向 Ghost UI 开发的技能,规定在 `.tsx` 文件中使用 `@tryghost/shade/utils` 的 `formatNumber` 格式化用户可见数字,并介绍相关工具。

主要功能

  1. 01使用 `formatNumber` 格式化显示值
  2. 02避免直接或手动格式化数字
  3. 03使用百分比和缩写工具
  4. 04格式化货币前转换美分

适用场景

  1. 01显示会员或订阅者数量
  2. 02展示邮件互动和文章分析数据
  3. 03格式化界面中的收入金额

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tryghost/ghost --skill format-numbers

安装后在 Claude Code 中输入/format-numbers确认已加载。

详细介绍

格式化数字

在编辑 .tsx 文件时,确保所有面向用户的数字都使用 @tryghost/shade/utils 中的 formatNumber 工具进行格式化。

导入

import { formatNumber } from '@tryghost/shade/utils';

何时使用 formatNumber

在渲染任何向用户展示的数值时,都应使用 formatNumber(),包括:

  • 成员数、访客数、订阅者数
  • 邮件互动指标(打开数、点击数、退信数)
  • 收入金额(货币值需与 centsToDollars() 结合使用)
  • 文章分析数据(浏览量、链接点击数)
  • UI 中显示的任何计数或数量

正确用法

<span>{formatNumber(totalMembers)}</span>
<span>{formatNumber(link.count || 0)}</span>
<span>{`${currencySymbol}${formatNumber(centsToDollars(mrr))}`}</span>
<span>{post.members > 0 ? `+${formatNumber(post.members)}` : '0'}</span>

应避免的反模式

在 TSX 文件中格式化数字时,请勿使用以下任何一种模式:

// BAD: raw .toLocaleString()
<span>{count.toLocaleString()}</span>

// BAD: manual Intl.NumberFormat
<span>{new Intl.NumberFormat('en-US').format(count)}</span>

// BAD: raw number without formatting
<span>{memberCount}</span>

// BAD: manual regex formatting
<span>{count.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')}</span>

相关工具

  • formatPercentage() - 用于百分比(例如打开率、点击率)
  • abbreviateNumber() - 用于紧凑表示法(例如 1.2M、50k)
  • centsToDollars() - 在传给 formatNumber 之前将分转换为元

所有这些都从 @tryghost/shade/utils 导入。

评论

支持 Markdown