저는 최근에 JavaScript와 C ++ 모두에서 github 프로젝트를 작업하고 있었는데 github가 프로젝트에 C ++ 태그를 붙인 것을 발견했습니다. 단일 언어를 선택해야한다면 C ++ 코드가 JavaScript 라이브러리로 컴파일 되었기 때문에 이것이 올바른 지정일 것입니다.하지만 이로 인해 궁금해졌습니다. github는 각 프로젝트에 태그를 지정할 언어를 어떻게 알아낼까요?
저는 최근에 JavaScript와 C ++ 모두에서 github 프로젝트를 작업하고 있었는데 github가 프로젝트에 C ++ 태그를 붙인 것을 발견했습니다. 단일 언어를 선택해야한다면 C ++ 코드가 JavaScript 라이브러리로 컴파일 되었기 때문에 이것이 올바른 지정일 것입니다.하지만 이로 인해 궁금해졌습니다. github는 각 프로젝트에 태그를 지정할 언어를 어떻게 알아낼까요?
답변:
nuclearsandwich (GitHub 지원 팀 또는 " supportocat ")에 의해 2013 년 4 월 업데이트 :
도움말 페이지 " My repository is Mark as the wrong language "는 이제 linguist 라이브러리 를 사용하여 구문 강조 및 repo 통계를위한 파일 언어를 결정 하는 방법을 언급 합니다. Linguist는 특정 공급 업체 파일 및 디렉토리를 제외하고 통계에서 특정 파일 이름과 경로를 제외합니다 .
도움말 페이지 " 내가 좋아하는 언어가 인식되지 않는 이유는 무엇입니까? "는 다음을 추가합니다.
원하는 언어가 구문 강조 표시를받지 못하는 경우 Linguist 라이브러리에 기여하여 추가 할 수 있습니다.
(원래 답변, 2012 년 10 월)
GitHub 지원에 대한 이 스레드 는 이에 대해 설명합니다.
각 확장자에 대한 파일 크기를 요약합니다. 가장 큰 것이 "승리"합니다.
둘 다 프로세스 속도를 늦추기 때문에 파일을 열고 내용을 구문 분석하는 것을 피하고 싶지만, 이것이 이와 같은 충돌을 해결하는 유일한 방법 일 수 있습니다.
이것은 100 % 정확하지 않기 때문에 일부 사람들은 다음을 추가했습니다.
나도 추측이 잘못된 경우에 대해 간단한 수동 오버라이드 스위치에 투표합니다.
참고 : Mark Rushakoff가 답변 에서 언급 했듯이 (upvoted), 그 이후로 언어 학자 프로젝트 (2011 년 6 월부터 오픈 소스 )를 통해 추측이 더 좋아 졌습니다.
그래도 여전히 문제가 있음을 알 수 있습니다. GitHub Linguist Issues .
자세한 내용은 여기를 참조하십시오 .
현재 Github의 언어 학자 프로젝트 는 이 Github 블로그 게시물 (이 질문이 처음 질문 된 후 몇 달 후에 나옴)에 설명 된대로 언어 통계를 결정하는 데 사용됩니다 .
먼저 Linguist overrides를 사용하여 저장소의 파일에 대해 감지 된 언어를 재정의 할 수 있습니다 .
이제 간단히 말해서
언어학자는 언어를 어떻게 감지합니까?
언어학자는 다음 전략 을 순서대로 사용하고 완벽하게 일치하는 것을 찾으면 즉시 언어를 반환합니다 (단일 언어를 반환하는 전략).
Makefile
).#!/bin/bash
이있는 은 Shell로 분류됩니다..h
)는 후속 전략에 의해 구체화됩니다.^[^#]+:-
Prolog ).공급 업체가없는 문서 파일이란 무엇입니까?
Linguist는 일부 파일을 공급 업체 로 간주합니다 . 즉, 언어 통계에 포함되지 않습니다. 여기에는 jQuery와 같은 타사 라이브러리가 포함되며 vendor.yml
구성 파일에 정의되어 있습니다. Linguist 재정의를 사용하여 저장소의 파일을 공급 업체 또는 공급 업체 취소 할 수도 있습니다 .
마찬가지로 문서 파일은에서 정의되며 Linguist 재정의를documentation.yml
사용하여 변경할 수 있습니다 .
생성 된 파일은 어떻게 감지됩니까?
Linguist 는 파일의 경로와 내용을 모두 사용하여 생성 된 파일을 감지하는 간단한 규칙 에 의존 합니다. 생성 된 파일은 언어 통계에 포함되지 않으며 github.com의 diff에 표시되지 않습니다.
프로그래밍 및 마크 업 언어는 어떻습니까?
Linguist에서는 각 언어에 유형이 지정됩니다. 이러한 유형은 기본 구성 파일 인 languages.yml
. 프로그래밍 및 마크 업 언어 만 통계에 포함됩니다.
파일 확장자는 가장 먼저 떠오르는 것입니다.
.js
와 .cc
파일이 모두 포함되어 있습니다.