From f884df631268c71a1a06395bee5136a83aec4c82 Mon Sep 17 00:00:00 2001 From: Martin <2026226+martin-mfg@users.noreply.github.com> Date: Sun, 3 May 2026 19:27:15 +0200 Subject: [PATCH 1/5] add top-langs customization to fork.md (#205) --- docs/fork.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/fork.md b/docs/fork.md index cb0d9350..c05f447b 100644 --- a/docs/fork.md +++ b/docs/fork.md @@ -1,6 +1,6 @@ # Fork Information -This project is an actively maintained fork of [github-readme-stats](https://github.com/anuraghazra/github-readme-stats). +This project is an actively maintained fork and extension of [github-readme-stats](https://github.com/anuraghazra/github-readme-stats). ## Key Differences @@ -25,6 +25,11 @@ The resolution of this most requested feature in github-readme-stats was [origin GitHub-Stats-Extended proactively precomputes and caches cards. This solves the problem where [cards wouldn't load on the first try](https://github.com/anuraghazra/github-readme-stats/issues/2603). It also gives GitHub-Stats-Extended more time while generating cards in the background, which allows it to fetch more repo data: +### Customization of top languages card +GitHub-Stats-Extended allows you to display your top languages without any numbers via the `hide_values` parameter. And the `prog_bar_bg_color` parameter allows you to customize the background color of the progress bars, e.g. by setting it to white: + +![anuraghazra's top languages without numbers](https://github-stats-extended.vercel.app/api/top-langs?username=anuraghazra&langs_count=4&hide_values=true&prog_bar_bg_color=fff) + ### Multi-page fetching for accurate star counts GitHub-Stats-Extended fetches up to 1000 of your starred repositories to accurately compute your stars count. In github-readme-stats, this is limited to 100 repos because github-readme-stats doesn't have the above-mentioned performance improvements. @@ -67,16 +72,12 @@ One of the valued maintainers [wrote](https://github.com/anuraghazra/github-read > > The volume is overwhelming for the small team, especially taking into account that right now I'm alone online and working only sometimes when I have a free hours, so it took some time to get to your PR. -So I decided to implement some of the highly requested features and make the enhanced project available to everyone. - -## Upstream Sync Strategy - -The maintainers of [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) keep their project up to date with dependency upgrades and do occasionally merge some pull requests. I regularly merge the latest upstream changes into this fork to keep it in sync with the upstream repo. - -I also try to structure my own changes in a way that minimizes merge conflicts with the upstream repo. So some of my changes might even be merged back into [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) if the upstream maintainers are interested. +So I decided to implement some of the highly requested features and make the enhanced project available to everyone. Since the initial release of this fork I have been in contact with the maintainers of [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) and we decided to join forces. github-stats-extended is now in the process of becoming the successor of github-readme-stats. ## Compatibility Notes +If there should be any changes in github-readme-stats in the future, they will be synced into this fork. + GitHub-Stats-Extended aims to be fully compatible with [github-readme-stats](https://github.com/anuraghazra/github-readme-stats). Generally, additional functionality introduced in this fork has to be explicitly enabled via some parameter. So you can change an existing stats card url from [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) to GitHub-Stats-Extended simply by changing the domain from `github-readme-stats.vercel.app` to `github-stats-extended.vercel.app`. The card will look the same. From e43e55c2b78d0e386425c2163ab31c4bf6e6fd23 Mon Sep 17 00:00:00 2001 From: Takuma IMAMURA <209989118+hyperfinitism@users.noreply.github.com> Date: Wed, 6 May 2026 18:00:11 +0900 Subject: [PATCH 2/5] feat: replace render-time text wrapping with browser-native wrapping (#191) This PR uses `foreignObject` with CSS line-clamp to let the browser handle text wrapping natively instead of manually wrapping on the server. This provides better font-aware wrapping while keeping server-side line estimation for SVG height calculation. Fixes https://github.com/anuraghazra/github-readme-stats/issues/4862. ### Example card hyperfinitism-sample-repo --------- Signed-off-by: Takuma IMAMURA <209989118+hyperfinitism@users.noreply.github.com> Co-authored-by: martin-mfg <2026226+martin-mfg@users.noreply.github.com> --- .../__snapshots__/gist.test.js.snap | 30 ++- .../__snapshots__/pin.test.js.snap | 28 +- docs/advanced_documentation.md | 2 + packages/core/package.json | 3 +- packages/core/src/api/gist.js | 2 + packages/core/src/api/pin.js | 2 + packages/core/src/cards/gist.js | 69 ++++- packages/core/src/cards/repo.js | 85 ++++-- packages/core/src/cards/types.d.ts | 2 + packages/core/src/common/fmt.js | 27 +- packages/core/src/common/render.js | 245 ++++++++++++++++-- packages/core/src/fetchers/stats.js | 2 +- packages/core/src/fetchers/top-languages.js | 2 +- packages/core/tests/fmt.test.js | 22 +- packages/core/tests/render.test.js | 76 +++++- packages/core/tests/renderGistCard.test.js | 24 +- packages/core/tests/renderRepoCard.test.js | 35 ++- packages/core/tests/renderStatsCard.test.js | 2 +- pnpm-lock.yaml | 3 - 19 files changed, 537 insertions(+), 124 deletions(-) diff --git a/apps/backend/tests/public-instance/__snapshots__/gist.test.js.snap b/apps/backend/tests/public-instance/__snapshots__/gist.test.js.snap index 6e8e2779..57e28a92 100644 --- a/apps/backend/tests/public-instance/__snapshots__/gist.test.js.snap +++ b/apps/backend/tests/public-instance/__snapshots__/gist.test.js.snap @@ -30,7 +30,7 @@ exports[`Test /api/gist contract > should match the private missing-id response exports[`Test /api/gist contract > should match the public happy-path response snapshot 1`] = ` { - "content": " + "content": "