{"id":31031686,"url":"https://github.com/cssnr/vitepress-plugin-contributors","last_synced_at":"2026-04-14T07:03:57.310Z","repository":{"id":314526324,"uuid":"1055846440","full_name":"cssnr/vitepress-plugin-contributors","owner":"cssnr","description":"VitePress Plugin to easily display GitHub contributors and automatically updated on every install/deploy","archived":false,"fork":false,"pushed_at":"2025-09-13T02:17:29.000Z","size":48,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-13T02:23:56.659Z","etag":null,"topics":["vitepress-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cssnr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"cssnr"}},"created_at":"2025-09-12T22:46:54.000Z","updated_at":"2025-09-13T01:23:35.000Z","dependencies_parsed_at":"2025-09-13T02:24:01.168Z","dependency_job_id":"a73a03ab-5300-43f7-a32d-f9de1b4b55b8","html_url":"https://github.com/cssnr/vitepress-plugin-contributors","commit_stats":null,"previous_names":["cssnr/vitepress-plugin-contributors"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cssnr/vitepress-plugin-contributors","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fvitepress-plugin-contributors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fvitepress-plugin-contributors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fvitepress-plugin-contributors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fvitepress-plugin-contributors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cssnr","download_url":"https://codeload.github.com/cssnr/vitepress-plugin-contributors/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cssnr%2Fvitepress-plugin-contributors/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275047902,"owners_count":25396334,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["vitepress-plugin"],"created_at":"2025-09-14T00:35:48.987Z","updated_at":"2026-04-14T07:03:57.305Z","avatar_url":"https://github.com/cssnr.png","language":"JavaScript","funding_links":["https://ko-fi.com/cssnr"],"categories":[],"sub_categories":[],"readme":"[![NPM Version](https://img.shields.io/npm/v/%40cssnr%2Fvitepress-plugin-contributors?logo=npm)](https://www.npmjs.com/package/@cssnr/vitepress-plugin-contributors)\n[![GitHub Release Version](https://img.shields.io/github/v/release/cssnr/vitepress-plugin-contributors?logo=github)](https://github.com/cssnr/vitepress-plugin-contributors/releases)\n[![NPM Downloads](https://img.shields.io/npm/dm/%40cssnr%2Fvitepress-plugin-contributors?logo=npm)](https://npm-stat.com/charts.html?package=%40cssnr%2Fvitepress-plugin-contributors)\n[![Bundlephobia Size](https://img.shields.io/bundlephobia/min/%40cssnr%2Fvitepress-plugin-contributors?logo=bookstack\u0026logoColor=white)](https://bundlephobia.com/package/@cssnr/vitepress-plugin-contributors)\n[![Deployments NPM](https://img.shields.io/github/deployments/cssnr/vitepress-plugin-contributors/npm?logo=npm\u0026label=deploy)](https://github.com/cssnr/vitepress-plugin-contributors/deployments/npm)\n[![Deployments Docs](https://img.shields.io/github/deployments/cssnr/vitepress-plugin-contributors/docs?logo=vitepress\u0026logoColor=white\u0026label=docs)](https://github.com/cssnr/vitepress-plugin-contributors/deployments/docs)\n[![Workflow Release](https://img.shields.io/github/actions/workflow/status/cssnr/vitepress-plugin-contributors/release.yaml?logo=norton\u0026logoColor=white\u0026label=release)](https://github.com/cssnr/vitepress-plugin-contributors/actions/workflows/release.yaml)\n[![Workflow Lint](https://img.shields.io/github/actions/workflow/status/cssnr/vitepress-plugin-contributors/lint.yaml?logo=norton\u0026logoColor=white\u0026label=lint)](https://github.com/cssnr/vitepress-plugin-contributors/actions/workflows/lint.yaml)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/cssnr/vitepress-plugin-contributors?logo=listenhub\u0026label=updated)](https://github.com/cssnr/vitepress-plugin-contributors/pulse)\n[![GitHub Repo Size](https://img.shields.io/github/repo-size/cssnr/vitepress-plugin-contributors?logo=buffer\u0026label=repo%20size)](https://github.com/cssnr/vitepress-plugin-contributors?tab=readme-ov-file#readme)\n[![GitHub Top Language](https://img.shields.io/github/languages/top/cssnr/vitepress-plugin-contributors?logo=devbox)](https://github.com/cssnr/vitepress-plugin-contributors?tab=readme-ov-file#readme)\n[![GitHub Contributors](https://img.shields.io/github/contributors-anon/cssnr/vitepress-plugin-contributors?logo=southwestairlines)](https://github.com/cssnr/vitepress-plugin-contributors/graphs/contributors)\n[![GitHub Issues](https://img.shields.io/github/issues/cssnr/vitepress-plugin-contributors?logo=codeforces\u0026logoColor=white)](https://github.com/cssnr/vitepress-plugin-contributors/issues)\n[![GitHub Discussions](https://img.shields.io/github/discussions/cssnr/vitepress-plugin-contributors?logo=theconversation)](https://github.com/cssnr/vitepress-plugin-contributors/discussions)\n[![GitHub Forks](https://img.shields.io/github/forks/cssnr/vitepress-plugin-contributors?style=flat\u0026logo=forgejo\u0026logoColor=white)](https://github.com/cssnr/vitepress-plugin-contributors/forks)\n[![GitHub Repo Stars](https://img.shields.io/github/stars/cssnr/vitepress-plugin-contributors?style=flat\u0026logo=gleam\u0026logoColor=white)](https://github.com/cssnr/vitepress-plugin-contributors/stargazers)\n[![GitHub Org Stars](https://img.shields.io/github/stars/cssnr?style=flat\u0026logo=apachespark\u0026logoColor=white\u0026label=org%20stars)](https://cssnr.github.io/)\n[![Discord](https://img.shields.io/discord/899171661457293343?logo=discord\u0026logoColor=white\u0026label=discord\u0026color=7289da)](https://discord.gg/wXy6m2X8wY)\n[![Ko-fi](https://img.shields.io/badge/Ko--fi-72a5f2?logo=kofi\u0026label=support)](https://ko-fi.com/cssnr)\n\n# VitePress Plugin Contributors\n\n\u003ca title=\"VitePress Plugin Contributors\" href=\"https://vitepress-contributors.cssnr.com/\" target=\"_blank\"\u003e\n\u003cimg alt=\"VitePress Plugin Contributors\" align=\"right\" width=\"128\" height=\"auto\" src=\"https://vitepress-contributors.cssnr.com/images/logo.png\"\u003e\u003c/a\u003e\n\n- [Install](#Install)\n- [Usage](#Usage)\n- [Options](#Options)\n- [Demos](#Demos)\n- [Support](#Support)\n- [Contributing](#Contributing)\n\nA [VitePress](https://vitepress.dev/) Plugin to Easily generate, update and display repository Contributors.\nSupports GitHub (including Enterprise) and Forgejo (Gitea, Codeberg, etc.).\n\nThis [package](https://www.npmjs.com/package/@cssnr/vitepress-plugin-contributors) includes two components that can be use together or individually.\n\n1. [get-contributors](src/get-contributors.js) - script to generate the `contributors.json` file.\n2. [Contributors.vue](src/Contributors.vue) - component to display the contributors in VitePress.\n\nAlso includes a detailed [Installation](#install) guide with available [Support](#support).\n\n[![View Documentation](https://img.shields.io/badge/view_documentation-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](https://vitepress-contributors.cssnr.com/)\n\n## Install\n\n[![View Install Guide](https://img.shields.io/badge/view_install_guide-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](https://vitepress-contributors.cssnr.com/guides/get-started#install)\n\n1. Install directly into your VitePress from [npmjs](https://www.npmjs.com/package/@cssnr/vitepress-plugin-contributors).\n\n```shell\nnpm i @cssnr/vitepress-plugin-contributors\n```\n\n2. Add the [get-contributors](src/get-contributors.js) script to your `package.json`.\n\n```json\n{\n  \"scripts\": {\n    \"get-contributors\": \"npx get-contributors user/repo\",\n    \"postinstall\": \"npm run get-contributors\"\n  }\n}\n```\n\n_If you don't add the `postinstall` script you need to add `get-contributors` to your build._\n\n\u003cdetails\u003e\u003csummary\u003eClick Here to View Usage - \u003cb\u003eget-contributors\u003c/b\u003e\u003c/summary\u003e\n\n[![View Get Contributors Docs](https://img.shields.io/badge/view_get_contributors_docs-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](https://vitepress-contributors.cssnr.com/docs/get-contributors)\n\nShow help: `npx get-contributors -h`\n\nBasic usage, all contributors excluding bot users.\n\n```shell\nnpx get-contributors user/repo\n```\n\nLimit to top 20 contributors, specify output file, and include bot users.\n\n```shell\nnpx get-contributors user/repo -m 20 -f .vitepress/contributors.json -b\n```\n\nOnly the `user/repo` is required. All other arguments are optional.\n\n| Argument\u0026nbsp;Flag | Default\u0026nbsp;Value             | Description\u0026nbsp;of\u0026nbsp;the\u0026nbsp;Argument |\n| :----------------- | :----------------------------- | :----------------------------------------- |\n| `-f`/`--file`      | `.vitepress/contributors.json` | Output file relative to project root       |\n| `-m`/`--max-users` | `0`                            | Max users to fetch, 0 is unlimited         |\n| `-b`/`--bots`      | -                              | Include bot users in the results           |\n| `-e`/`--error`     | -                              | Throw errors during generation             |\n| `-k`/`--keys`      | `login,avatar_url`             | Contributor keys to save to file           |\n| `-G`/`--github`    | `https://api.github.com`       | GitHub API URL (for Enterprise)            |\n| `-F`/`--forgejo`   | -                              | Forgejo API URL (for Gitea/Codeberg)       |\n\nNote: This script makes 1 request to the GitHub API for every 100 contributors on the repository (or `max-users`).\nBecause of this if you have a lot of contributors (200+) running this back-to-back may hit\nthe [GitHub rate limit](https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-primary-rate-limits) for unauthenticated requests, which is 60 requests per hour.\nIf this occurs the script will generate a partial or empty contributors so development can continue.\n\n**This does not affect GitHub Action runs which are authenticated with the `GTIHUB_TOKEN`.**\n\n---\n\n\u003c/details\u003e\n\n3. Add the `contributors.json` file location to your `.gitignore`.\n\n```txt\n.vitepress/contributors.json\n```\n\n4. Generate the `contributors.json` file.\n\n```shell\nnpm run get-contributors\n```\n\nAlternatively, if you did not add the `get-contributors` script from step #2.\n\n```shell\nnpx get-contributors user/repo\n```\n\n5. Import the components in your `.vitepress/theme/index.js`.\n\n```javascript\nimport DefaultTheme, { VPBadge } from 'vitepress/theme' // only if using VPBadge\n\nimport Contributors from '@cssnr/vitepress-plugin-contributors' // ADD this line\nimport '@cssnr/vitepress-plugin-contributors/style.css' // ADD this line\n\nimport contributors from '../contributors.json' // OPTIONAL - Global\n\nexport default {\n  ...DefaultTheme,\n  enhanceApp({ app }) {\n    app.component('Badge', VPBadge) // only if using VPBadge\n    app.component('Contributors', Contributors) // ADD this line\n    app.config.globalProperties.$contributors = contributors // OPTIONAL - Global\n  },\n}\n```\n\n`Global` - If you are unsure about this [usage](#usage), add these lines for simplicity.\n\n`VPBadge` - Only required if you are using the VitePress [Badge](https://vitepress.dev/reference/default-theme-badge#badge).\n\n\u003cdetails\u003e\u003csummary\u003eMore Details on the \u003cb\u003econtributors.json\u003c/b\u003e path\u003c/summary\u003e\n\nNote, you may need to modify the `../contributors.json` import location to match your setup.\nIf your VitePress configuration directory is located at `.vitepress` then the default output\npath of `.vitepress/contributors.json` will import from the relative path `../contributors.json`.\n\nIf you are not importing `contributors` as a Global, this path will be relative to the file you are importing it in.  \nSee the [Usage](#usage) for more details.\n\n---\n\n\u003c/details\u003e\n\n6. Finally, use the [Contributors.vue](src/Contributors.vue) component in your markdown or component.\n\n```markdown\n\u003cContributors :contributors=\"$contributors\" /\u003e\n```\n\nSee the [Usage](#usage) for more details...\n\n## Usage\n\n[![View Usage Guide](https://img.shields.io/badge/view_usage_guide-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](https://vitepress-contributors.cssnr.com/guides/get-started#usage)\n\nTo use, simply add the `\u003cContributors\u003e` tag to your markdown file (or component).\n\nIf you added `contributors` as a global component, you only need the `\u003cContributors\u003e` tag.\n\n```markdown\n\u003cContributors :contributors=\"$contributors\" /\u003e\n```\n\nOtherwise, import the `contributors.json` and add a `\u003cContributors\u003e` tag.\n\n```markdown\n\u003cscript setup\u003e\nimport contributors from '../.vitepress/contributors.json'\n\u003c/script\u003e\n\n\u003cContributors :contributors=\"contributors\" /\u003e\n```\n\nThe `contributors.json` file is relative to the file you are importing it in.\n\nSee the [Options](#options) for more details...\n\n## Options\n\n[![View Contributors Docs](https://img.shields.io/badge/view_contributors_docs-blue?style=for-the-badge\u0026logo=googledocs\u0026logoColor=white)](https://vitepress-contributors.cssnr.com/docs/contributors)\n\nOnly the `:contributors` parameter is required, everything else is optional.\n\n| Parameter         |   Default    |  Type  | Description\u0026nbsp;of\u0026nbsp;the\u0026nbsp;Parameter                                                |\n| :---------------- | :----------: | :----: | :----------------------------------------------------------------------------------------- |\n| **:contributors** | **Required** | Array  | `contributors.json` file import data                                                       |\n| **max-users**     |      -       | String | Max Number of users to display                                                             |\n| **heading**       |      -       | String | Optional Heading text                                                                      |\n| **size**          |     `64`     | String | Size of Icons in pixels                                                                    |\n| **margin**        |      -       | String | [CSS margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) string for container |\n\nExample with all arguments.\n\n```markdown\n\u003cContributors\n    :contributors=\"$contributors\"\n    heading=\"VitePress Contributors\"\n    max-users=\"98\"\n    size=\"48\"\n    margin=\"36px 0 96px\"\n/\u003e\n```\n\n[![VitePress Contributors](https://raw.githubusercontent.com/smashedr/repo-images/refs/heads/master/vp-contributors/shots/contributors98.jpg)](https://github.com/cssnr/vitepress-plugin-contributors?tab=readme-ov-file#readme)\n\n## Demos\n\nThe plugin is running on these pages:\n\n- https://django-files.github.io/ and [/team](https://django-files.github.io/team)\n- https://docker-deploy.cssnr.com/\n- https://portainer-deploy.cssnr.com/\n\nIf you have a live demo, [let us know](#support) and we will post it here...\n\n## Support\n\nLogs can be found inspecting the page (Ctrl+Shift+I), clicking on the Console, and;\nFirefox: toggling Debug logs, Chrome: toggling Verbose from levels dropdown.\n\nIf you run into any issues or need help getting started, please do one of the following:\n\n- Report an Issue: \u003chttps://github.com/cssnr/vitepress-plugin-contributors/issues\u003e\n- Q\u0026A Discussion: \u003chttps://github.com/cssnr/vitepress-plugin-contributors/discussions/categories/q-a\u003e\n- Request a Feature: \u003chttps://github.com/cssnr/vitepress-plugin-contributors/issues/new?template=1-feature.yaml\u003e\n- Chat with us on Discord: \u003chttps://discord.gg/wXy6m2X8wY\u003e\n\n[![Features](https://img.shields.io/badge/features-brightgreen?style=for-the-badge\u0026logo=rocket\u0026logoColor=white)](https://github.com/cssnr/vitepress-plugin-contributors/issues/new?template=1-feature.yaml)\n[![Issues](https://img.shields.io/badge/issues-red?style=for-the-badge\u0026logo=southwestairlines\u0026logoColor=white)](https://github.com/cssnr/vitepress-plugin-contributors/issues)\n[![Discussions](https://img.shields.io/badge/discussions-blue?style=for-the-badge\u0026logo=livechat\u0026logoColor=white)](https://github.com/cssnr/vitepress-plugin-contributors/discussions)\n[![Discord](https://img.shields.io/badge/discord-5865F2?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://discord.gg/wXy6m2X8wY)\n\n### More VitePress Plugins\n\n- [SwiperJS](https://github.com/cssnr/vitepress-swiper) - Photo Gallery\n- [Contributors](https://github.com/cssnr/vitepress-plugin-contributors) - GitHub Contributors\n- [Copy Button](https://github.com/cssnr/vitepress-plugin-copybutton) - Copy Text Button\n\n# Contributing\n\nAll contributions are welcome including [bug reports](https://github.com/cssnr/vitepress-plugin-contributors/issues), [feature requests](https://github.com/cssnr/vitepress-plugin-contributors/issues/new?template=1-feature.yaml), or pull requests.\n\nFor instructions on creating a PR for the [Package](https://www.npmjs.com/package/@cssnr/vitepress-plugin-contributors) or [Documentation](https://vitepress-contributors.cssnr.com/),\nsee the [CONTRIBUTING.md](#contributing-ov-file).\n\nPlease consider making a donation to support the development of this project and additional open source projects.\n\n[![Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/cssnr)\n\nFor a full list of current projects visit: [https://cssnr.github.io/](https://cssnr.github.io/)\n\n\u003ca href=\"https://github.com/cssnr/vitepress-plugin-contributors/stargazers\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=cssnr/vitepress-plugin-contributors\u0026type=date\u0026legend=bottom-right\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=cssnr/vitepress-plugin-contributors\u0026type=date\u0026legend=bottom-right\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=cssnr/vitepress-plugin-contributors\u0026type=date\u0026legend=bottom-right\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcssnr%2Fvitepress-plugin-contributors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcssnr%2Fvitepress-plugin-contributors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcssnr%2Fvitepress-plugin-contributors/lists"}