私は最近、JavaScriptとC++の両方でgithubプロジェクトに取り組んでいましたが、githubがプロジェクトにC++のタグを付けていることに気付きました。単一の言語を選択する必要がある場合、C++コードはJavaScriptライブラリとしてコンパイルされるため、これはおそらく正しい指定です。
nuclearsandwich (GitHubサポートチームまたは「supportocat」)による2013年4月の更新:
ヘルプページ " 私のリポジトリは間違った言語としてマークされています "現在 linguist library を使用して言及しています=構文の強調表示およびレポ統計のファイル言語を決定します。 Linguistは特定のファイル名とパスを統計から除外します 特定のベンダーのファイルとディレクトリを除く 。
ヘルプページ " なぜ私のお気に入りの言語が認識されないのですか? "を追加:
希望する言語が構文の強調表示を受け取っていない場合は、Linguistライブラリに貢献して追加できます。
(元の回答、2012年10月)
この GitHubサポートのスレッド で説明しています:
各拡張子のファイルサイズを合計するだけです。最大のものが「勝ち」ます。
ファイルを開いてコンテンツを解析することは避けたいのですが、どちらもプロセスを遅くしますが...それがこのような競合を解決する唯一の方法かもしれません。
これは100%正確ではないため、追加する必要がありました。
私も、推測が間違っている場合には、単純な手動オーバーライドスイッチに投票します。
注: Mark Rushakoff が his answer (vovoted)で言及しているように、それ以降 linguistプロジェクト (6月からオープンソース化された2011)。
まだ問題があります: GitHub Linguist Issues 。
を参照してください 詳細はこちら :
現在、Githubの 言語プロジェクト は、 このGithubブログの投稿 (この質問が最初に尋ねられてから数か月後に出された)で説明されているように、言語統計を決定するために使用されます。
最初に、 Linguist overrides を使用して、リポジトリ内のファイルに対して検出された言語をオーバーライドできることを知っている。
さて、一言で言えば、
Linguistはどのように言語を検出しますか?
言語学者は 戦略に従う を順番に使用し、完全に一致する言語を返すとすぐに言語を返します(単一言語が返される戦略)。
Makefile
と考えてください)。#!/bin/bash
Shebang はShellに分類されます。.h
)は、後続の戦略によって改良されます。^[^#]+:-
for Prolog )。非ベンダーおよびドキュメントファイルとは何ですか?
言語学者は、一部のファイルをvendoredと見なします。つまり、言語統計に含まれていません。これらにはjQueryなどのサードパーティライブラリが含まれ、 vendor.yml
構成ファイル。 Linguist overrides を使用して、リポジトリ内のファイルをベンダーまたはアンベンダーすることもできます。
同様に、ドキュメントファイルは documentation.yml
および Linguist overrides を使用して変更できます。
生成されたファイルはどのように検出されますか?
Linguistは、パスとファイルのコンテンツの両方を使用して、生成されたファイルを検出するために 単純な規則 に依存しています。生成されたファイルは言語統計にカウントされず、github.comの差分には表示されません。
プログラミング言語とマークアップ言語はどうですか?
言語学者では、各言語にタイプが与えられます。これらのタイプは、メイン構成ファイル languages.yml
。統計では、プログラミング言語とマークアップ言語のみがカウントされます。