Po pierwsze, wiedz, że możesz nadpisać język wykryty dla plików w twoim repozytorium za pomocą nadpisań Linguist .
Krótko mówiąc,
- Każde repozytorium jest oznaczone pierwszym językiem ze statystyk językowych .
- Statystyki językowe zliczają całkowity rozmiar plików dla każdego wykrytego języka programowania lub języka znaczników. Sprzedane, dokumentacja i wygenerowane pliki nie są liczone.
- Język każdego pliku jest wykrywany przez Linguist projektu open source .
W jaki sposób Lingwista wykrywa języki?
Lingwista polega na następujących strategiach w kolejności i zwraca język, gdy tylko znajdzie idealne dopasowanie (strategia z zwróceniem jednego języka).
- Poszukaj modeli Emacsa i Vima .
- Znana nazwa pliku. Niektóre nazwy plików są powiązane z określonymi językami (np
Makefile
).
- Poszukaj shebangu. Plik z
#!/bin/bash
hukiem zostanie sklasyfikowany jako Shell.
- Znane rozszerzenie pliku. Języki mają przypisany zestaw rozszerzeń. Istnieje jednak wiele konfliktów z tą strategią. Sprzeczne wyniki (pomyśl o C ++, C i Objective-C
.h
) są udoskonalane przez kolejne strategie.
- Zestaw reguł heurystycznych . Zwykle polegają na wyrażeniach regularnych w zawartości plików, aby spróbować zidentyfikować język (np.
^[^#]+:-
Dla Prologu ).
- Naiwny klasyfikator bayesowski wyszkolony na przykładowych plikach . Ostatnia strategia, najmniejsza dokładność. Klasyfikator Bayesa zawsze przyjmuje podzbiór języków jako dane wejściowe; nie ma na celu klasyfikowania wszystkich języków. Zwracane jest najlepsze dopasowanie znalezione przez klasyfikator.
Co to są pliki niezarejestrowane i pliki dokumentacji?
Lingwista uważa niektóre pliki za sprzedawane , co oznacza, że nie są one uwzględniane w statystykach językowych. Obejmują one biblioteki innych firm, takie jak jQuery i są zdefiniowane w vendor.yml
pliku konfiguracyjnym. Możesz także sprzedawać lub nie sprzedawać pliki w swoim repozytorium, używając nadpisań Linguist .
Podobnie, pliki dokumentacji są definiowane w programie documentation.yml
i można je zmieniać za pomocą nadpisań Linguist .
Jak są wykrywane wygenerowane pliki?
Lingwista opiera się na prostych zasadach wykrywania generowanych plików, wykorzystując zarówno ścieżki, jak i zawartość plików. Wygenerowane pliki nie są uwzględniane w statystykach językowych i nie są wyświetlane w różnicach na github.com.
A co z programowaniem i językami znaczników?
W Lingwistyce każdemu językowi nadaje się typ. Typy te można znaleźć w głównym pliku konfiguracyjnym languages.yml
. Statystyki uwzględniają tylko języki programowania i języki znaczników.