github repositoryのプログラミング言語情報が認識されないことがあり、その際に.gitattributeとlinguistを使って解決できたので、ついでに他も色々調べてみました。
以下のようなリポジトリの言語統計情報はList repository languages APIによって各言語のコードバイト数に基づき算出されるらしい。
github : https://github.com/github-linguist/linguist/tree/master
書き方の前提
// 有効化
{path} linguist-{name}
// or
{path} linguist-{name}=true
// 無効化
{path} -linguist-{name}
// or
{path} linguist-{name}=false
{path}は.gitattributesファイルからの相対パスで対象のディレクトリやファイルを指定
linguist-language
*.rb linguist-language=Ruby
*.es linguist-language=js
*.es linguist-language=JS
リポジトリに存在するファイルに対する言語情報を明示的にオーバーライドする
指定できるのはlanguages.ymlに定義されているもの。
(意図せず認識されない場合はこれで解決することも)
linguist-detectable
# 有効化
*.sch linguist-detectable
*.hoge linguist-language=HogeLang linguist-detectable
# 無効化
tools/export_bom.py -linguist-detectable
デフォルトで認識されるのはlanguages.ymlで定義されている中のtypeがprograming
or markup
のものだけなので、設定を更新したい場合は上記のように指定する。
*.hoge linguist-language=HogeLang linguist-detectable
のようにlinguist-language
と組み合わせてオリジナルの情報を加えることも可能。
linguist-documentation
# 有効化
docs/* linguist-documentation
# 無効化
docs/formatter.rb -linguist-documentation
デフォルトでdocumentation.ymlに定義されているドキュメント用ディレクトリは言語統計から除外されているが、設定を更新したい場合は上記のように指定する。
linguist-vendored
# 有効化
path/to/vender/* linguist-vendored
# 無効化
node_modules/* -linguist-vendored
jsライブラリなどの第三者から提供されたコードはデフォルトでvender.ymlに定義されており、言語統計から除外されているが、設定を更新したい場合は上記のように指定する。
linguist-generated
*.gen.dart linguist-generated
*.min.js -linguist-generated
コンパイルなどで自動生成されたファイルはデフォルトでgenerated.rbで定義されており、言語統計かつdiffから除外されるが、設定を更新したい場合は上記のように指定する
diffが多すぎるけど.gitignoreに指定するのはなんか違う場合とかに使える