プレゼンテーションのスライド作りは面倒ですよね。特に開発系のスライドはテキストが主体になるので、後々メンテナンスのしやすさを考えるとPowerPointやKeynoteで作るのは面倒に感じてしまうはずです。 そこで自分の好きなフォーマットからKeynoteへ展開するのに使えそうなkeynote-clientを紹介します。これを使えばスライド作成の自動化も考えられるでしょう。

keynote-clientの使い方

インストールはRubygemsで行います。

gem install keynote-client

後は例えばこんな感じのコードを書きます。

require 'keynote-client'
include Keynote

# Fetch all themes
themes = Theme.all

# Fetch theme specified name
theme = Theme.find_by(name: 'ブラック').first

# Create a new document with theme
doc = Document.create(theme: theme, file_path: '/path/to/foo.key')

# Save a document at file_path
doc.save

# Initialize a new slide
slide = Slide.new("タイトル & 箇条書き", title: 'Pen', body: ["This is a pen", "Is this a pen?"].join("\n"))

# Append slides
doc.slides << slide

# Fetch last slide
slide = doc.slides.last

# Update a slide
slide.title = "About pen"
slide.body = "Hello, pen."

テーマを決めて、スライドの書き出し先を決めて、後はスライドを作ってdocに追加していくだけです。実行すると、Keynoteが立ち上がってスライドが生成されます。

筆者の環境ではsaveがエラーになったのですが、生成されたスライドはそのまま表示されていました。スライドを自動生成する際の基盤に使うと面白いのではないでしょうか。

keynote-clientはRuby製、MIT Licenseのオープンソース・ソフトウェアです。

katsuma/keynote-client