GitHub の言語判定を手動で調整する
GitHub のリポジトリ一覧ページなどに、そのリポジトリの主なプログラミング言語が表示されている。リポジトリ内でコード行数が一番多いプログラミング言語を特定して表示しているようだが、CSS ライブラリのリポジトリなのに、デモ用の HTML コードの方が多く評価されて「HTML が主なリポジトリ」みたいに見えている、といったことが起きたりする。個人的な違和感だけで実害はないのだが、.gitattributes
に色々書くと、この言語判定を手動で調整できることを知ったので紹介する。
リポジトリの直下に .gitignore
なんかと同じ要領で .gitattributes
というファイルを作る。コメントは行頭シャープ #
で書ける。以下に記載例を紹介する。
- 例 : 全てのファイルを無視するが、
.js
なファイルだけ言語判定の対象にする → コード行数の割合に関わらず「JavaScript なリポジトリ」と見せられるlinguist-vendored
がfalse
で「言語判定の対象にする」となる。
* linguist-vendored
*.js linguist-vendored=false
- 例 :
.html
ファイルを言語判定から除外する → その他のファイル形式はそのままになり、「HTML」の割合が 0% となる
*.html linguist-detectable=false
他にも対象のディレクトリやファイルを「ドキュメント扱い」とする linguist-documentation
、指定の拡張子を別のプログラミング言語と指定する linguist-language
など、いくつかの設定が存在する。この仕様は GitHub の Linguist という言語判定ライブラリのドキュメントに記載されているので、詳細はそちらを参照してほしい。
- 参考 : linguist/overrides.md at master · github/linguist … Linguist の
.gitattributes
解説 - 参考 : Githubにて、表示される言語情報を、自分で指定する方法 | ベンキョーベヤダベヤ
- 参考 : GitHub 上のリポジトリでコードの言語を設定する方法 | gotohayato.com
.gitattributes
は本来、EditorConfig の簡易版的な感じで、Git 管理上での改行コードの扱いを指定したりできるファイルなのだが、今回は GitHub Linguist による言語判定を調整するために利用した、という次第。
ちなみに、最近拙作の List Repos にも言語名を表示するようにしたので、よかったらコチラもご覧いただきたい。