feat(card): add S-tier cards — heatmap, streak, by-year, weekday, top-starred (#3)

Five new cards, all derived from data FetchProductive / FetchProfile already
pull, so zero additional API calls:

- contributions-heatmap: 7×53 calendar grid with a 5-bucket intensity ramp
  mixed from each theme's Background→Accent so palettes with no dedicated
  heat ramp still render sensibly.
- streak: current streak, longest streak with date ranges, active/total days.
- contributions-by-year: one bar per active year, peak year highlighted.
- productive-weekday + -all-time: 7-bar day-of-week mirror of the hour-of-day
  cards; FetchProductive now also fills Weekday / WeekdayAllTime histograms
  during the same commit-history pass.
- top-starred-repos: top 5 owned non-fork repos by stargazer count; threads
  Stars through RepoInfo.

Card count: 9 → 14. Registered in allCards grouped by recency (last-year
block, then all-time block). Render test extended to cover all new files
and realistic daily-series inputs.
This commit is contained in:
tiennm99 authored and GitHub committed 2026-04-19 08:58:59 +07:00
1 parent 9dffc2234b
commit fd4c70e53e
13 files changed
+805 -8

No files matched your search

+2 -2
View File
@@ -2,7 +2,7 @@
## One-liner
Single-binary Go CLI + GitHub Action that renders 9 themed SVG cards summarising a GitHub user's public (and optionally private) profile, for embedding in a profile README.
Single-binary Go CLI + GitHub Action that renders 14 themed SVG cards summarising a GitHub user's public (and optionally private) profile, for embedding in a profile README.
## Users
@@ -34,7 +34,7 @@ Distinguishing traits:
| # | Requirement |
| --- | --- |
| F1 | Render 9 cards per selected theme (see `docs/system-architecture.md`) |
| F1 | Render 14 cards per selected theme (see `docs/system-architecture.md`) |
| F2 | Support 65 themes ported from github-profile-summary-cards |
| F3 | Handle the full username→profile→cards flow in a single invocation |
| F4 | Package as GitHub Action with `commit_changes` auto-commit of output |