{"id":13621951,"url":"https://github.com/JacobLinCool/LeetCode-Stats-Card","last_synced_at":"2025-04-15T05:32:54.604Z","repository":{"id":37313204,"uuid":"375991819","full_name":"JacobLinCool/LeetCode-Stats-Card","owner":"JacobLinCool","description":"Show your dynamically generated LeetCode stats on your GitHub profile or your website!","archived":false,"fork":false,"pushed_at":"2025-04-11T17:58:18.000Z","size":1356,"stargazers_count":773,"open_issues_count":25,"forks_count":104,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-11T18:50:37.690Z","etag":null,"topics":["card","leetcode","leetcode-stats","profile","serverless","stats"],"latest_commit_sha":null,"homepage":"https://leetcard.jacoblin.cool","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JacobLinCool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-11T10:43:56.000Z","updated_at":"2025-04-11T11:51:18.000Z","dependencies_parsed_at":"2023-10-01T16:10:01.001Z","dependency_job_id":"6107c059-4c9a-4218-954b-cd6369fc6248","html_url":"https://github.com/JacobLinCool/LeetCode-Stats-Card","commit_stats":{"total_commits":149,"total_committers":6,"mean_commits":"24.833333333333332","dds":0.1476510067114094,"last_synced_commit":"f7fd2510de2ded65beef557aee42d231216bfda2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2FLeetCode-Stats-Card","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2FLeetCode-Stats-Card/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2FLeetCode-Stats-Card/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobLinCool%2FLeetCode-Stats-Card/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JacobLinCool","download_url":"https://codeload.github.com/JacobLinCool/LeetCode-Stats-Card/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248465256,"owners_count":21108242,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["card","leetcode","leetcode-stats","profile","serverless","stats"],"created_at":"2024-08-01T21:01:12.397Z","updated_at":"2025-04-15T05:32:54.597Z","avatar_url":"https://github.com/JacobLinCool.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# LeetCode Stats Card\n\n[![CodeFactor](https://www.codefactor.io/repository/github/jacoblincool/leetcode-stats-card/badge)](https://www.codefactor.io/repository/github/jacoblincool/leetcode-stats-card)\n\nShow your dynamically generated LeetCode stats on your GitHub profile or your website!\n\nLeetCode and LeetCode CN are both supported.\n\n[Playground: Try It Now](https://leetcard.jacoblin.cool/)\n\n[![LeetCode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=unicorn\u0026extension=activity)](https://leetcard.jacoblin.cool/JacobLinCool?theme=unicorn\u0026extension=activity)\n\n## Features\n\n- 📈 Clean and simple LeetCode stats, for both `us` and `cn` sites\n- 🎨 Multiple themes and 1,300+ fonts - [Theme](#theme-default-lightdark), [Font](#font-default-baloo_2)\n- 🪄 Fully customizable using CSS - [Custom Stylesheets](#sheets-default-)\n- ⚡️ Fast and global edge network - [Cloudflare Workers](https://workers.cloudflare.com/)\n- 🚫 No tracking, controllable cache - [Cache](#cache-default-60)\n- 🍀 Open source - [MIT License](./LICENSE)\n- ⚙️ Extended-cards: `activity`, `contest`, `heatmap`\n\nIt also has a [NPM package](https://www.npmjs.com/package/leetcode-card) and a [highly extensible system](./packages/core/src/index.ts), so you can easily customize it to your needs.\n\nWant to contribute? Feel free to open a pull request!\n\n## Self-hosting\n\nYou can also self-host this service using the [`jacoblincool/leetcode-stats-card`](https://hub.docker.com/r/jacoblincool/leetcode-stats-card) Docker image.\n\nTo build the image by yourself, use `pnpm build:image` script.\n\nSee [docker-compose.yml](./docker-compose.yml) for an example.\n\n## Usage\n\nSimply copy the code below, paste it into your `README.md`, and change the path to your leetcode username (case-insensitive).\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool)\n```\n\nCongratulation! You are now showing your LeetCode stats on your profile!\n\nWant a hyperlink? Try this:\n\n```md\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool)](https://leetcode.com/JacobLinCool)\n```\n\n### Endpoint\n\nThe endpoint of this tool is:\n\n\u003chttps://leetcard.jacoblin.cool/\u003e\n\n\u003e The legacy one: \u003chttps://leetcode.card.workers.dev/\u003e\n\n### Options\n\nThere are many options, you can configure them by passing a query string to the endpoint.\n\n#### `site` (default: `us`)\n\nData source, can be `us` or `cn`.\n\n```md\n![](https://leetcard.jacoblin.cool/leetcode?site=cn)\n```\n\n[![](https://leetcard.jacoblin.cool/leetcode?site=cn)](https://leetcard.jacoblin.cool/leetcode?site=cn)\n\n#### `theme` (default: `light,dark`)\n\nCard theme, see [Theme](#themes) for more information.\n\nUse a comma to separate the light and dark theme.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?theme=unicorn)\n![](https://leetcard.jacoblin.cool/jacoblincool?theme=light,unicorn)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?theme=unicorn)](https://leetcode.com/jacoblincool)\n\n#### `font` (default: `Baloo_2`)\n\nCard font, you can use almost all fonts on [Google Fonts](https://fonts.google.com/).\n\nIt is case-insensitive, and you can use `font=dancing_script` or `font=Dancing%20Script` to get the same result.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?font=Dancing_Script)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?font=Dancing_Script)](https://leetcard.jacoblin.cool/jacoblincool?font=Dancing_Script)\n\n#### `width` and `height` (default: `500` and `200`)\n\nChange the card size, it will not resize the content.\n\nBut it will be helpful if you want to use custom css.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?width=500\u0026height=500)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?width=500\u0026height=500)](https://leetcard.jacoblin.cool/jacoblincool?width=500\u0026height=500)\n\n#### `border` and `radius` (default: `1` and `4`)\n\nChange the card border and radius.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?border=0\u0026radius=20)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?border=0\u0026radius=20)](https://leetcard.jacoblin.cool/jacoblincool?border=0\u0026radius=20)\n\n#### `animation` (default: `true`)\n\nEnable or disable the animation.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?animation=false)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?animation=false)](https://leetcard.jacoblin.cool/jacoblincool?animation=false)\n\n#### `hide` (default: `\"\"`)\n\nHide elements on the card, it is a comma-separated list of element ids.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?hide=ranking,total-solved-text,easy-solved-count,medium-solved-count,hard-solved-count)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?hide=ranking,total-solved-text,easy-solved-count,medium-solved-count,hard-solved-count)](https://leetcard.jacoblin.cool/jacoblincool?hide=ranking,total-solved-text,easy-solved-count,medium-solved-count,hard-solved-count)\n\n#### `ext` (default: `\"\"`)\n\nExtension, it is a comma-separated list of extension names.\n\nNOTICE: You can only use one of extended-card extensions (`activity`, `contest`, `heatmap`) at a time now, maybe they can be used together in the future.\n\n\u003e Animation, font, theme, and external stylesheet are all implemented by extensions and enabled by default.\n\nWant to contribute a `nyan-cat` extension? PR is welcome!\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?ext=activity)\n```\n\n[![](https://leetcard.jacoblin.cool/jacoblincool?ext=activity)](https://leetcard.jacoblin.cool/jacoblincool?ext=activity)\n\n```md\n![](https://leetcard.jacoblin.cool/lapor?ext=contest)\n```\n\n[![](https://leetcard.jacoblin.cool/lapor?ext=contest)](https://leetcard.jacoblin.cool/lapor?ext=contest)\n\n```md\n![](https://leetcard.jacoblin.cool/lapor?ext=heatmap)\n```\n\n[![](https://leetcard.jacoblin.cool/lapor?ext=heatmap)](https://leetcard.jacoblin.cool/lapor?ext=heatmap)\n\n#### `cache` (default: `60`)\n\nCache time in seconds.\n\nNote: it will not be a good idea to set it to a long time because GitHub will fetch and cache the card.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?cache=0)\n```\n\n\u003e You can make `DELETE` request to `/:site/:username` to delete the cache.\n\n#### `sheets` (default: `\"\"`)\n\nExternal stylesheet, it is a comma-separated list of urls.\n\nYou can upload your custom CSS to gist and use the url.\n\n```md\n![](https://leetcard.jacoblin.cool/jacoblincool?sheets=url1,url2)\n```\n\nThey will be injected in the order you specified.\n\n#### Legacy Options\n\nStill work, but deprecated.\n\n| Key             | Description                  | Default Value |\n| --------------- | ---------------------------- | ------------- |\n| `border_radius` | Same as `radius`             | `4`           |\n| `show_rank`     | Display/Hide Rank: `Boolean` | `true`        |\n| `extension`     | Same as `ext`                | `\"\"`          |\n\n### Themes\n\nNow we have 6 themes. If you have any great idea, please feel free to open a PR!\n\n#### Light\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=light)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=light)](https://leetcard.jacoblin.cool/JacobLinCool?theme=light)\n\n#### Dark\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=dark)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=dark)](https://leetcard.jacoblin.cool/JacobLinCool?theme=dark)\n\n#### Nord\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=nord)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=nord)](https://leetcard.jacoblin.cool/JacobLinCool?theme=nord)\n\n#### Forest\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=forest)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=forest)](https://leetcard.jacoblin.cool/JacobLinCool?theme=forest)\n\n#### WTF\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=wtf)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=wtf)](https://leetcard.jacoblin.cool/JacobLinCool?theme=wtf)\n\n#### Unicorn\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=unicorn)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=unicorn)](https://leetcard.jacoblin.cool/JacobLinCool?theme=unicorn)\n\n#### Transparent\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=transparent)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?theme=transparent)](https://leetcard.jacoblin.cool/JacobLinCool?theme=transparent)\n\n### Fonts\n\nYou can now use almost all fonts on [Google Fonts](https://fonts.google.com/).\n\nSome examples:\n\n#### Milonga\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=milonga)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=milonga)](https://leetcard.jacoblin.cool/JacobLinCool?font=milonga)\n\n#### Patrick Hand\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=patrick_hand)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=patrick_hand)](https://leetcard.jacoblin.cool/JacobLinCool?font=patrick_hand)\n\n#### Ruthie\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=ruthie)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?font=ruthie)](https://leetcard.jacoblin.cool/JacobLinCool?font=ruthie)\n\n### Extensions\n\nExtension, it is a comma-separated list of extension names.\n\nNOTICE: You can only use one of extended-card extensions (`activity`, `contest`, `heatmap`) at a time now, maybe they can be used together in the future.\n\n\u003e Animation, font, theme, and external stylesheet are all implemented by extensions and enabled by default.\n\nWant to contribute a `nyan-cat` extension? PR is welcome!\n\n#### `activity`\n\nShow your recent submissions.\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?ext=activity)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/JacobLinCool?ext=activity)](https://leetcard.jacoblin.cool/JacobLinCool?ext=activity)\n\n#### `contest`\n\nShow your contest rating history.\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/lapor?ext=contest)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/lapor?ext=contest)](https://leetcard.jacoblin.cool/lapor?ext=contest)\n\n#### `heatmap`\n\nShow heatmap in the past 52 weeks.\n\n```md\n![Leetcode Stats](https://leetcard.jacoblin.cool/lapor?ext=heatmap)\n```\n\n[![Leetcode Stats](https://leetcard.jacoblin.cool/lapor?ext=heatmap)](https://leetcard.jacoblin.cool/lapor?ext=heatmap)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJacobLinCool%2FLeetCode-Stats-Card","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJacobLinCool%2FLeetCode-Stats-Card","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJacobLinCool%2FLeetCode-Stats-Card/lists"}