beni - code syntax highlighter written in golang
皆さんは code syntax highlighter (以下ハイライター)って知ってます? & 使ってますか? github や gist にコードを貼ると、言語の文法に応じてカラフルに表示してくれるアレですね。なのでこの記事を読むような人は、まず使ったことがあるんじゃないでしょうか。
ちなみに git はたぶん pygments です。私はこのサイトなどでは、最近 pure ruby な rouge を使うようになりました。jekyll から使う場合には、 python (しかも2.x限定) に依存してしまう pygments.rb よりは rouge のほうが非常に使いやすいのです。
で rouge を使ってみて pure XXX なハイライターの便利さに気が付きまして、golang にも欲しい! ってことで beni を書き起こしました。まぁアレコレ紹介するより見たほうが速いでしょう。
$ ./beni lexer/go.go | less -R
してスクロールしていくと、こんなふうに見えます。
var
や map
などのキーワード、string
といった埋込み型や文字列、それからちょっと見にくいですが、コメントにも色が付いています。
今はまだ対応言語が golang と Java だけ、しかも Java に至ってはかなりバグってます。また配色設定となるテーマも1種類のみ、出力フォーマットは256色対応ターミナルとHTMLだけです。あーあとライブラリとしてちゃんと使いやすくもしてない。正直なところまだまだゴミですね。
ボチボチと対応言語&フォーマット&テーマは増やしていくので、寛容の気持ちで見守って貰えたらならと思います。あ、pull requestはいつでも歓迎です!(笑