pirosikick's diary

君のハートにunshift

Keynoteにソースコードを貼る

小ネタ。毎回調べてる気がするので書いておく。

Code highlighting for Keynote presentations

# 1. brewでhighlightをインストール
$ brew install highlight

# 2. 貼り付けたいソースコードをクリップボードにコピーしhighlight実行
$ pbpaste| highlight --syntax=js -O rtf | pbcopy

# ファイルの場合はcat
$ cat file.js | highlight --syntax=js -O rtf | pbcopy

# 3. クリップボードにコピーされているので、Keynoteに貼り付け

オプションがいろいろあるので各自好みで調整する。

# デフォルトだと白系のテーマなので、--styleで変更する
# styleの一覧は highlight -w で表示できる
$ pbpaste| highlight --style=molokai --syntax=js -O rtf | pbcopy

# デフォルトのフォントサイズはかなり小さいので、--font-sizeで指定
$ pbpaste| highlight --font-size 24 --style=molokai --syntax=js -O rtf | pbcopy

# keynoteに合わせてフォントをRictyに変更
$ pbpaste| highlight --font=Ricty --font-size 24 --style=molokai --syntax=js -O rtf | pbcopy

こんな長いの覚えられないし面倒なので、上のGistのコメントに書いている関数を.zshrcに定義して楽をする。

# たぶんbashでも動く
function light() {
    if [ -z "$2" ]; then
        src="pbpaste"
    else
        src="cat $2"
    fi

    $src | highlight -O rtf --syntax $1 --font=Ricty --style=molokai --font-size 24 | pbcopy
}
# こういう感じで実行する
$ light js
$ light html index.html

オプションいっぱいあるのでhighlight -hで見ましょう。