私は最近、JavaScript と C++ の両方で github プロジェクトに取り組んでおり、github がプロジェクトを C++ としてタグ付けしていることに気付きました。単一の言語を選択する必要がある場合、C++ コードは JavaScript ライブラリとしてコンパイルされるため、これはおそらく正しい指定ですが、これは疑問に思いました... github は各プロジェクトにタグを付ける言語をどのように判断するのでしょうか?
5 に答える
2013 年 4 月更新、nuclearsandwich (GitHub サポート チームまたは「supportocat」) による:
ヘルプページ「私のリポジトリは間違った言語としてマークされています」では、リンギストライブラリを使用して、構文の強調表示とリポジトリ統計のファイル言語を決定することが言及されています。Linguist は、特定のファイル名とパスを統計から除外し、特定のベンダー ファイルとディレクトリを除外します。
ヘルプ ページ「お気に入りの言語が認識されないのはなぜですか?」には次のように追加されています。
目的の言語が構文の強調表示を受けていない場合は、Linguist ライブラリに貢献して追加することができます。
(元の回答、2012 年 10 月)
GitHub サポートのこのスレッドでは、次のように説明されています。
各拡張子のファイルサイズを合計するだけです。最大のものは「勝つ」。
ファイルを開いてその内容を解析することはプロセスを遅くするため、避けたいと考えています... しかし、このような競合を解決するにはそれが唯一の方法かもしれません。
これは 100% 正確ではないため、次のように追加する人もいます。
私も、推測が間違っている場合に備えて、単純な手動オーバーライド スイッチに投票します。
注:マーク・ルシャコフが彼の回答で言及しているように(賛成)、それ以来、言語学者プロジェクト(2011年6月からオープンソース)で推測が改善されました。
ただし、まだ問題があることがわかります: GitHub Linguist Issues。
詳細については、こちらを参照してください。
言語が検出されると、実際の構文の強調表示を行うPygmentsラッパーであるAlbinoに渡されます。
現在、Githubの言語学者プロジェクトは、このGithubブログ投稿(この質問が最初に尋ねられてから数か月後に出てきた)で説明されているように、言語統計を決定するために使用されるものです。
ファイル拡張子が最初に頭に浮かぶものです。