Primeiro, saiba que você pode substituir o idioma detectado para arquivos em seu repositório usando substituições do Linguist .
Agora, em poucas palavras,
- Cada repositório é marcado com o primeiro idioma das estatísticas de idioma .
- As estatísticas da linguagem contam o tamanho total dos arquivos para cada linguagem de programação ou marcação detectada. Arquivos de fornecedores, documentação e gerados não são contados.
- O idioma de cada arquivo é detectado pelo Linguist do projeto de código aberto .
Como o Linguist detecta os idiomas?
Linguist conta com as seguintes estratégias , em ordem, e retorna o idioma assim que encontra uma correspondência perfeita (estratégia com um único idioma retornado).
- Procure modelines Emacs e Vim .
- Nome de arquivo conhecido. Alguns nomes de arquivo são associados a idiomas específicos (pense
Makefile
).
- Procure um shebang. Um arquivo com um
#!/bin/bash
shebang será classificado como Shell.
- Extensão de arquivo conhecida. Os idiomas possuem um conjunto de extensões associadas a eles. Existem, no entanto, muitos conflitos com essa estratégia. Os resultados conflitantes (pense em C ++, C e Objective-C para
.h
) são refinados pelas estratégias subsequentes.
- Um conjunto de regras heurísticas . Eles geralmente contam com expressões regulares sobre o conteúdo dos arquivos para tentar identificar o idioma (por exemplo,
^[^#]+:-
para Prolog ).
- Um classificador bayesiano ingênuo treinado em arquivos de amostra . Última estratégia, menor precisão. O classificador bayesiano sempre leva um subconjunto de linguagens como entrada; não se destina a classificar entre todas as línguas. A melhor correspondência encontrada pelo classificador é retornada.
O que são arquivos não vendidos e arquivos de documentação?
O Linguist considera alguns arquivos como vendidos , o que significa que não são incluídos nas estatísticas do idioma. Isso inclui bibliotecas de terceiros, como jQuery, e são definidas no vendor.yml
arquivo de configuração. Você também pode fornecer ou cancelar o fornecimento de arquivos em seu repositório usando substituições do Linguist .
Da mesma forma, os arquivos de documentação são definidos documentation.yml
e podem ser alterados usando as substituições do Linguist .
Como os arquivos gerados são detectados?
O Linguist depende de regras simples para detectar os arquivos gerados, usando os caminhos e o conteúdo dos arquivos. Os arquivos gerados não são contados nas estatísticas do idioma e não são exibidos nos diffs em github.com.
E quanto às linguagens de programação e marcação?
Em Linguist, cada idioma recebe um tipo. Esses tipos podem ser encontrados no arquivo de configuração principal languages.yml
,. Apenas as linguagens de programação e marcação são contadas nas estatísticas.