Jus*_*ier 79 github github-linguist
我最近在JavaScript和C++中开发了一个github项目,并注意到github将项目标记为C++.如果你必须选择一种语言,这可能是正确的名称,因为C++代码被编译为JavaScript库,但这让我想知道... github如何找出标记每个项目的语言?
Von*_*onC 79
2013年4月更新,由nuclearsandwich(GitHub支持团队或"supportocat"):
帮助页面" 我的存储库被标记为错误的语言 "提及现在使用语言库来确定语法高亮和回购统计的文件语言.语言学家将从统计信息中排除某些文件名和路径,但不包括某些供应商文件和目录.
帮助页面" 为什么我最喜欢的语言不被识别? "补充道:
如果您所需的语言没有收到语法高亮显示,您可以为Linguist库添加它.
(原始答案,2012年10月)
GitHub支持上的这个帖子解释了它:
它只是总结每个扩展的文件大小.最大的一个"胜利".
我们希望避免打开文件并解析其内容,因为两者都会减慢进程...但这可能是解决此类冲突的唯一方法.
由于这不是100%准确,这导致一些添加:
对于猜测错误的情况,我也会投票给一个简单的手动覆盖开关.
注意:正如Mark Rushakoff在他的回答(upvoted)中提到的那样,从那时起,语言学家项目(2011年6月开源)的猜测变得更好了.
你可以看到仍有问题:GitHub Linguist问题.
请参见此处了解详细信息:
首先,要知道您可以使用Linguist overrides来覆盖为存储库中的文件检测到的语言。
现在,简而言之,
Linguist 如何检测语言?
语言学家依序依赖以下策略,并在找到完美匹配后立即返回该语言(返回单一语言的策略)。
Makefile)。#!/bin/bashshebang的文件将被归类为 Shell。.h)由后续策略改进。^[^#]+:-对于 Prolog)。什么是非供应商和文档文件?
语言学家将某些文件视为vendored,这意味着它们不包含在语言统计数据中。这些包括第三方库,如 jQuery,并在vendor.yml配置文件中定义。您还可以使用语言学家覆盖在您的存储库中供应商或取消供应商文件。
同样,文档文件在 中定义documentation.yml并可使用语言学家覆盖进行更改。
如何检测生成的文件?
语言学家依靠简单的规则来检测生成的文件,同时使用文件的路径和内容。生成的文件不计入语言统计数据,也不会显示在 github.com 上的差异中。
编程和标记语言呢?
在语言学家中,每种语言都有一个类型。这些类型可以在主配置文件中找到,languages.yml. 统计中只计算编程和标记语言。
| 归档时间: |
|
| 查看次数: |
22819 次 |
| 最近记录: |