13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitHub のシンタックスハイライト判定を上書きする

Last updated at Posted at 2017-04-08

tl;dr

  • GitHub :octocat: は Emacs や Vim の modelines に沿ったシンタックスハイライトをしてくれます
  • .gitattributes でも設定できるはずですが、いまのところ有効ではないようです
    (2017-04-08 時点)

背景

「このファイルは実質 YAML なんだし、 GitHub 上でもそう表示してほしいなあ」なんてことありますよね。(たとえば salt-ssh の Saltfile ですとか)

王道は linguistlanguages.yml へ Pull Request を出すことかと思いますが、ほかになにか手っ取り早い方法がないかと探したところ、 README にこんな記載がありました。

Using gitattributes

Add a .gitattributes file to your project and use standard git-style path matchers for the files you want to override to set linguist-documentation, linguist-language, and linguist-vendored. .gitattributes will be used to determine language statistics and will be used to syntax highlight files. You can also manually set syntax highlighting using Vim or Emacs modelines.

検証

実際に検証してみました。

素の状態

  • シンタックスハイライトされません
  • HTML のクラスは type-text です

https://github.com/elim/test-gh-linguist-overriding/blob/1ae6834/Saltfile

plain.png

plain-type.png

.gitattributes

下記の内容を用意しました

.gitattributes
Saltfile linguist-language=YAML
  • シンタックスハイライトされません
  • HTML のクラスが type-yaml になります

https://github.com/elim/test-gh-linguist-overriding/blob/62cf59f/.gitattributes
https://github.com/elim/test-gh-linguist-overriding/blob/62cf59f/Saltfile

gitattributes-type.png

Emacs 形式の modeline

  • シンタックスハイライトされます
  • HTML のクラスが type-yaml になります

https://github.com/elim/test-gh-linguist-overriding/blob/2be0582/Saltfile

emacs-style-modelines.png

emacs-style-modelines-type.png

Vim 形式の modeline

https://github.com/elim/test-gh-linguist-overriding/blob/76a9ada/Saltfile

vim-style-modelines.png

vim-style-modelines-type.png


以上です。

まだマイナーな環境や自作言語、自作 DSL に適用すると便利かもですね :diamond_shape_with_a_dot_inside:

13
7
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?