と思ったので普段使っているVimのカラースキームからJekyll用のカラースキームをおこしたのの共有と、 その過程を書いておく。
参考:
Github pages / Jekyll のシンタックスハイライトにはRougeが使われており、 Rougeのシンタックスハイライトで用いられている各クラス名とその割り当てがWikiに一覧になっていた。
これとWeb上に転がっているPygments用のCSSを見比べてみたところ、どうやら互換性がありそうだと気づいた。
さらにいろいろ探していたら、Pygmentsのテーマを作成することができるサイトを見つけた。
これでたたき台を作って、必要な箇所は修正する、という方法でシンタックスハイライトを作ることにした。
このカラースキームを解読する。
後者の、構文ハイライトに使われるもののリストは、
: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 の画面から直接色をいじってカラースキームが生成できます。
いじれない部品もあったりして網羅的ではないのですが、各部位がなんという名前のハイライトグループか、などが触っててわかるのが良いです。簡単なカラースキームならこれでも作れそうです。
ここに紹介されているページで色を拾うのがとても楽だった。
Vimで利用されている名称一覧もここで確認できる。
これをSubmoduleとして読み込み、ハイライトのテーマを変更する。
git submodule add https://github.com/leico/Desert-css Submodules/Desert
追加した後、 _sass ディレクトリにシンボリックリンクを貼る
cd _sass
ln -sf ../Submodules/Desert Desert
...
@import "Desert/desert"
...
これでカラースキームが有効になる。