普段の環境と同じテーマにしたい

と思ったので普段使っているVimのカラースキームからJekyll用のカラースキームをおこしたのの共有と、 その過程を書いておく。

参考:

RougeのCSSクラスはPygmentsのCSSクラスと互換性がありそうだ

Github pages / Jekyll のシンタックスハイライトにはRougeが使われており、 Rougeのシンタックスハイライトで用いられている各クラス名とその割り当てがWikiに一覧になっていた。

これとWeb上に転がっているPygments用のCSSを見比べてみたところ、どうやら互換性がありそうだと気づいた。

さらにいろいろ探していたら、Pygmentsのテーマを作成することができるサイトを見つけた。

これでたたき台を作って、必要な箇所は修正する、という方法でシンタックスハイライトを作ることにした。

Vimのカラースキームを調査する

このカラースキームを解読する。

後者の、構文ハイライトに使われるもののリストは、:help group-name で確認できる。

*Comment コメント
*Constant 定数
String 文字列定数: "これは文字列です"
Character 文字定数: 'c', '\n'
Number 数値定数: 234, 0xff
Boolean ブール値の定数: TRUE, false
Float 不動小数点数の定数: 2.3e10
*Identifier 変数名
Function 関数名(クラスメソッドを含む)
*Statement 命令文
Conditional if, then, else, endif, switch, その他
Repeat for, do, while, その他
Label case, default, その他
Operator sizeof, +, *, その他
Keyword その他のキーワード
Exception try, catch, throw
*PreProc 一般的なプリプロセッサー命令
Include #include プリプロセッサー
Define #define プリプロセッサー
Macro Defineと同値
PreCondit プリプロセッサーの #if, #else, #endif, その他
*Type int, long, char, その他
StorageClass static, register, volatile, その他
Structure struct, union, enum, その他
Typedef typedef 宣言
*Special 特殊なシンボル
SpecialChar 特殊な文字定数
Tag この上で CTRL-] を使うことができる
Delimiter 注意が必要な文字
SpecialComment コメント内の特記事項
Debug デバッグ命令
*Underlined 目立つ文章, HTMLリンク
*Ignore (見た目上)空白, 不可視 |hl-Ignore|
*Error エラーなど、なんらかの誤った構造
*Todo 特別な注意が必要なもの; 大抵はTODO FIXME XXXなど

この内容に沿って割り当てられている色をクラス割り当てしていけばよいらしい。

最後に

最初にも書きましたが、既存のカラースキームを見るとどんな感じか雰囲気が掴めると思います。 最後に便利サイトを紹介します。Vim の画面から直接色をいじってカラースキームが生成できます。

http://bytefluent.com/vivify/

いじれない部品もあったりして網羅的ではないのですが、各部位がなんという名前のハイライトグループか、などが触っててわかるのが良いです。簡単なカラースキームならこれでも作れそうです。

ここに紹介されているページで色を拾うのがとても楽だった。

Vimで利用されている名称一覧もここで確認できる。

置き換えてできあがったテーマ

これをSubmoduleとして読み込み、ハイライトのテーマを変更する。

サブモジュールとしてページに追加する

git submodule add https://github.com/leico/Desert-css Submodules/Desert

追加した後、 _sass ディレクトリにシンボリックリンクを貼る

cd _sass
ln -sf ../Submodules/Desert Desert

マスターとなるsassで読み込む

...
@import "Desert/desert"
...

これでカラースキームが有効になる。