ソースコードをハイライトして Keynote に貼り付けられる highlight にはいろんなテーマが同梱されている

f:id:superbrothers:20151118225243p:plain

vimTOhtml して貼り付ける方法を使っていたけど、highlight コマンドを使うと簡単にソースコードをハイライトして貼り付けられてべんり。

OSX なら brew コマンドでインストールできる。

% brew install highlight

highlight コマンドにソースコードを喰わせて出力形式をリッチテキストフォーマットを指定してやると Keynote に貼り付けた時にいい感じになる。

% highlight -O rtf server.js | pbcopy

デフォルトのテーマも悪くないんだけど、--style -s オプションでテーマを指定することができる。テーマはデフォルトで相当数入っているので気に入るモノがひとつはあると思う。-w オプションで使えるテーマを確認できる。

% highlight -O rtf -s molokai server.js | pbcopy

現時点で同梱されている全てのテーマでハイライトしたファイルを置いておく。ここから気に入ったモノを選ぶとよいだろう。 https://cdn.rawgit.com/superbrothers/159573a12664ccbee44b/raw/831493f867c0119f6265fe1b9403a86cfce2ced0/highlight-themes.html

このファイルは以下のコマンドから生成した。新しいテーマが追加されているかもしれないので気になる人は手元で実行後にブラウザで http://localhost:5000/ を開くと確認できる。

% cat << EOS > test.js
var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');
EOS
% ls /usr/local/Cellar/highlight/3.22/share/highlight/themes | sed -e 's/.theme//g' | while read THEME; do highlight -s "$THEME" --inline-css --syntax js < <(echo "// theme: ${THEME}\n$(cat test.js | sed -e 's/\\/\\\\/g')"); done | nc -l 5000

// それにしても長いタイトルになってしまった

参考