Je travaillais récemment sur un projet github en JavaScript et en C ++, et j'ai remarqué que github l'a étiqueté en tant que C ++. Si vous devez choisir une seule langue, il s'agit probablement de la désignation correcte puisque le code C ++ est compilé sous la forme d'une bibliothèque JavaScript, mais cela m'a fait me demander ... comment github détermine-t-il quelle langue marquer chaque projet?
Réponses
Trop de publicités?Mise à jour avril 2013, par nuclearsandwich (GitHub de l'équipe de soutien ou de "supportocat"):
l'aide de la page "Mon référentiel est marqué comme la mauvaise langue" mentionne l'utilisation de maintenant, le linguiste bibliothèque pour déterminer le fichier de langue pour la coloration syntaxique et les pensions de statistiques. Linguiste, d'exclure certains noms de fichiers et de chemins de statistique, à l'exclusion de certains fournisseurs de fichiers et de répertoires.
la page d'aide "Pourquoi n'est pas ma langue préférée reconnu?" ajoute:
Si la langue souhaitée n'est pas la réception de la syntaxe, vous pouvez contribuer à le Linguiste de la bibliothèque de l'ajouter.
(Réponse originale à cette question, Oct. 2012)
Ce thread sur GitHub l'appui , il explique:
Il a juste résume tailles de fichier pour chaque extension. Plus on "gagne".
Nous aimerions éviter l'ouverture de fichiers et l'analyse de leur contenu, à la fois de ralentir le processus... mais qui pourrait être la seule méthode de résolution des conflits comme celui-ci.
Puisque ce n'est pas précis à 100%, qui avait conduit certains à ajouter:
Moi aussi, je voterais pour un manuel simple-bouton du correcteur pour les cas où la conjecture est fausse.
Remarque: comme la Marque de Rushakoff mentionne dans sa réponse (upvoted), la deviner eu mieux depuis avec le linguiste projet (open-source à partir de juin 2011).
Vous pouvez le voir il y a encore des questions: GitHub Linguiste Questions.
Voir ici pour plus de détails:
Une fois que la langue a été détecté, il est passé à Albino, un Pygments wrapper, qui procède à la vérification de la syntaxe.
Actuellement, le projet linguiste de Github est ce qui est utilisé pour déterminer les statistiques linguistiques, comme décrit dans ce blog de Github (publié quelques mois après que cette question a été posée à l'origine).
Après quelques retouches avec linguistej' l'avoir remarqué.
Pour les fichiers avec un Shebang, l'Arborescence n'est pris en compte lors de la détermination de la langue, mais semble être uniformément pondérée contre les autres jetons. Cela semble être une grosse erreur, parce que le Shebang devrait définitivement définir l' la langue de fichier.
Cela peut causer des problèmesavec mise en évidence.