MarkdownファイルをGitHubの言語統計のカウント対象に設定する方法を説明する。
特にMarkdownがメインのリポジトリは、この方法を適用して「Markdownがメインであること」を明示すると親切。

before

多数あるMarkdownファイルがカウントされず、Gemfileなどわずかなコード片から言語統計が作られてしまっている

after

リポジトリ一覧の言語表示もJavaからMarkdownに変わった

先に答え

  1. .gitattributes ファイルが存在しなければ作る
  2. そのファイルに *.md linguist-detectable=true を追記する(Markdownの拡張子として .md を使っている場合)
  3. git管理対象にしてGitHubにpushする

仕組み

GitHubでの言語判定や統計算出にはLinguistが使われている。
Linguistでは、各言語の拡張子やカラー、typeなどが予め設定されている。

type

type属性では、その言語で記述されたファイルに対し、data, programming, markup, prose といった種別を指定する。

デフォルトでは、Markdownのtypeは prose となっているが、

By default only languages of type programming or markup in languages.yml are included in the language statistics.

https://github.com/github/linguist/blob/master/docs/overrides.md#detectable

の通り、 type:prose は統計対象外にされている。このため、Markdownはカウントされない。

設定のオーバーライド

linguistの挙動は上記リンクに記載の通り、 .gitattributes ファイルによってオーバーライドすることができる。

今回は、指定に合致するファイルをtypeによらず統計の対象とするlinguist-detectableを使う。

*.md linguist-detectable=true

上記内容を含む .gitattributes ファイルをGitHubに置くことで、拡張子mdのファイルを統計対象にできる という仕組み。

Tags:

Categories:

Updated: