Skip to main content

format-numbers

Format numbers using the formatNumber function from Shade whenever someone edits a TSX file.

معلومات المصدر

المستودع
TryGhost/Ghost
آخر نشاط في المصدر
٢٦ أغسطس ٢٠٢٦ في ١٨:١٨
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥٥٬٧٨٥
التفرعات
١٢٬١٢١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
Format numbers
description
Format numbers using the formatNumber function from Shade whenever someone edits a TSX file.
autoTrigger
[{"fileEdit":"**/*.tsx"}]
# Format Numbers When editing `.tsx` files, ensure all user-facing numbers are formatted using the `formatNumber` utility from `@tryghost/shade/utils`. ## Import ```typescript import { formatNumber } from '@tryghost/shade/utils'; ``` ## When to use formatNumber Use `formatNumber()` when rendering any numeric value that is displayed to the user, including: - Member counts, visitor counts, subscriber counts - Email engagement metrics (opens, clicks, bounces) - Revenue amounts (combine with `centsToDollars()` for monetary values) - Post analytics (views, link clicks) - Any count or quantity shown in UI ## Correct usage ```tsx <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> ``` ## Antipatterns to avoid Do NOT use any of these patterns for formatting numbers in TSX files: ```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> ``` ## Related utilities - `formatPercentage()` - for percentages (e.g., open rates, click rates) - `abbreviateNumber()` - for compact notation (e.g., 1.2M, 50k) - `centsToDollars()` - convert cents to dollars before passing to `formatNumber` All are imported from `@tryghost/shade/utils`.
عرض على GitHub