This page documents how the Nerd Fonts project records and displays contributor recognition: the tooling used, the configuration schema, the contribution type taxonomy, and the procedure for updating the contributor list. For information on the development workflow and CI/CD pipeline that contributors interact with, see 6.3. For guidance on submitting contributions such as new fonts or bug reports, see 6.1 and 6.2.
Nerd Fonts uses the all-contributors specification to acknowledge contributions of all kinds β not only code. The system consists of two files:
| File | Role |
|---|---|
.all-contributorsrc | Machine-readable configuration and contributor registry |
CONTRIBUTORS.md | Human-readable rendered output; auto-generated from .all-contributorsrc |
CONTRIBUTORS.md is not manually edited. Its content between the sentinel comments <!-- ALL-CONTRIBUTORS-LIST:START --> and <!-- ALL-CONTRIBUTORS-LIST:END --> is regenerated by the all-contributors CLI whenever the registry is updated.
Sources: CONTRIBUTORS.md1-10 .all-contributorsrc1-10
.all-contributorsrc Configuration SchemaThe .all-contributorsrc file is a JSON document at the repository root. It contains both project-level settings and the full contributor registry.
| Field | Value | Description |
|---|---|---|
projectName | "nerd-fonts" | Repository name used when generating links |
projectOwner | "ryanoasis" | GitHub organization or user that owns the repo |
files | ["CONTRIBUTORS.md"] | Files that the CLI will update |
imageSize | 100 | Avatar image width in pixels |
commit | false | Whether the CLI auto-commits after updating |
repoType | "github" | Version control host type |
repoHost | "https://github.com" | Base URL for profile and commit links |
skipCi | false | Whether to append [skip ci] to generated commits |
contributorsPerLine | 7 | Number of contributor cards per table row in CONTRIBUTORS.md |
commitConvention | "angular" | Commit message format used when commit is true |
commitType | "docs" | Angular commit type prefix used for generated commits |
Sources: .all-contributorsrc1-24
Each entry in the contributors array has the following shape:
{
"login": "<GitHub username>",
"name": "<Display name>",
"avatar_url": "<GitHub avatar URL>",
"profile": "<URL to personal site or GitHub profile>",
"contributions": ["<type>", ...]
}
Contributor Object Data Flow Diagram
Sources: .all-contributorsrc9-2017 CONTRIBUTORS.md8-303
The contributions array on each contributor object is a list of one or more type strings. Each type maps to an emoji displayed in CONTRIBUTORS.md.
| Type key | Emoji | Meaning | Example in .all-contributorsrc |
|---|---|---|---|
code | π» | Source code commits | Most contributors |
doc | π | Documentation updates | "doc" |
design | π¨ | Visual design work | ryanoasis, Grazfather |
review | π | Pull request reviews | sharkusk, ryanoasis |
bug | π | Bug reports | chrissimpkins, Fxzzi |
ideas | π€ | Ideas, planning, and feedback | chrissimpkins, delphinus |
translation | π | Translated content | magauran, pgrimaud |
infra | π | Infrastructure (hosting, build tools) | b- |
maintenance | π§ | Repository maintenance | mdsanima, pgoslatara |
tool | π§ | Tools and utilities | loichyan, jpawlowski |
a11y | βΏοΈ | Accessibility improvements | kazerniel |
Sources: .all-contributorsrc15-2016 CONTRIBUTORS.md14-297
Contribution Type to Contributor Object Mapping
Sources: .all-contributorsrc9-2017
CONTRIBUTORS.md Is StructuredCONTRIBUTORS.md is an HTML-in-Markdown file. The all-contributors CLI writes a <table> block inside the sentinel comment pair:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%">
<!-- contributor card: avatar, name, contribution emoji links -->
</td>
...
</tr>
</tbody>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Each contributor card contains:
avatar_url)nameloginThe contributorsPerLine setting in .all-contributorsrc (currently 7) controls how many <td> elements appear per <tr>.
Sources: CONTRIBUTORS.md8-303 .all-contributorsrc21
The all-contributors CLI (all-contributors-cli npm package) reads .all-contributorsrc and rewrites the sentinel block in CONTRIBUTORS.md. The configuration sets "commit": false, so the CLI does not auto-commit; the contributor must stage and commit changes manually.
Update Process Diagram
npm install -g all-contributors-cliall-contributors add <github-login> <contribution-type>[,<type2>...]
all-contributors add ryanoasis code,doc,design,reviewcontributors array in .all-contributorsrc.CONTRIBUTORS.md.The commitConvention is set to "angular" and commitType to "docs", so if auto-commit were enabled, the generated message would follow the pattern docs: update contributors.
Sources: .all-contributorsrc1-24 CONTRIBUTORS.md305
As of the current state of .all-contributorsrc, the project recognizes contributors across all contribution types. The table below summarizes the distribution of contribution types:
| Contribution Type | Approximate Count of Contributors |
|---|---|
code | ~120 |
doc | ~60 |
translation | ~15 |
bug | ~30 |
review | ~8 |
ideas | ~5 |
maintenance | ~3 |
infra | ~1 |
tool | ~2 |
design | ~2 |
a11y | ~1 |
Note: individual contributors may have multiple types listed; counts above reflect the number of contributor entries that include each type, not unique people.
Sources: .all-contributorsrc9-2017
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.