Slide 1

Slide 1 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbit on Sinatra プレゼン用PDF作成ツールrab2pdf 横山昌史 Rabbitショッカー 勉強会@Sinatra札幌 2013/11/24

Slide 2

Slide 2 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 自己紹介 ソフトウェア開発者 Webアプリの主戦場はSinatra Rabbitショッカー 札幌でRabbitを使っている Rabbitコミッター 札幌でRabbitにコミットしている

Slide 3

Slide 3 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 宣伝

Slide 4

Slide 4 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 札幌市中央区Ruby会議01 2014年2月8日(土) 札幌市中央区Ruby会議01 2014年2月8日(土)

Slide 5

Slide 5 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 話すこと Rabbitを Sinatraで動かした話

Slide 6

Slide 6 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 話すこと Rabbitを Sinatraで動かした話

Slide 7

Slide 7 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Powered by

Slide 8

Slide 8 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbitとは Rubyで書かれたプログラマー 向けのプレゼンテーションツール

Slide 9

Slide 9 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbitの特徴 文章はテキストで記述 RD、Wiki、Markdownなど 装飾(テーマ)はRubyで記述 RubyGemsで簡単に追加 バージョン管理しやすい

Slide 10

Slide 10 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 昨日機能 が 豊富 キーバインドの一部 一覧 情報 メニュー i(小文字) I(大文字) 右クリック http://rabbit-shocker.org/ja/sample/rd/rabbit.html

Slide 11

Slide 11 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 インストールも簡単 gem install rabbit

Slide 12

Slide 12 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 だけど、インストールする 前に試してみたいとか

Slide 13

Slide 13 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 借りたPCで、そもそも Rubyが入ってないとか、 そんなとき

Slide 14

Slide 14 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 話すこと Rabbitを Sinatraで動かした話

Slide 15

Slide 15 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbit + Sinatra = rab2pdf Rabbit + Sinatra = rab2pdf

Slide 16

Slide 16 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 rab2pdfとは Webアプリケーション RabbitのPDF生成機能を活用 テキストからプレゼン用PDFを作成

Slide 17

Slide 17 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 サーバーの仕事 Rabbitはインストール済み リクエストはSinatraで処理 SinatraからRabbitを実行 PDFを生成

Slide 18

Slide 18 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 余談 RabbitはGUIアプリケーションです が、GUI環境がなくても動くように工 夫されています。 なので、Webアプリケーションのバッ クグラウンドとしても使うことができ ます。

Slide 19

Slide 19 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 本題 本題

Slide 20

Slide 20 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 作り方 テキストを書く 1. rab2pdfに送信 2. PDFをダウンロード 3.

Slide 21

Slide 21 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 1. テキストを書く 現在はRD形式のみ対応 RabbitはWikiやMarkdownに対応 rab2pdfでも対応したい

Slide 22

Slide 22 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 2. rab2pdfに送信 普通のフォーム 普通のテキストエリア 普通の送信ボタン

Slide 23

Slide 23 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 3. PDFをダウンロード ダウンロードリンクが表示される PDFはしばらくサーバーに残る

Slide 24

Slide 24 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 隠し機能 Gitリポジトリ指定機能 ローカルテーマや画像に対応 http://myokoym.net/rab2pdf/git?url=https://github.com/user/repo

Slide 25

Slide 25 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 デモ http://myokoym.net/rab2pdf/

Slide 26

Slide 26 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 使えるテーマ Rabbit組み込みのテーマ RubyGems.orgに 公開されているテーマ

Slide 27

Slide 27 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 ソースコード オープンソース(GPLv2+) GitHubで公開 https://github.com/myokoym/rab2pdf

Slide 28

Slide 28 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 トップページ get "/" do @params ||= {} @params[:source] = slide_source haml :index end

Slide 29

Slide 29 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 slide_source = TITLE : author Your Name : date #{Time.now.strftime("%Y/%m/%d")} = FIRST SLIDE * ITEM 1 * ITEM 2

Slide 30

Slide 30 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 フォーム(Haml) %form{:action => url("/convert", false, true), :method => "post"} %p %textarea{:name => "source", :cols => 50, :rows => 10}= @params[:source] %p %input{:type => "text", :name => "filename", :size => 30, :value => @params[:filename]} %p %input{:type => "submit"}

Slide 31

Slide 31 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 PDF生成 post "/convert" do @download_url = convert(params[:source], params[:filename]) @params = params haml :index end

Slide 32

Slide 32 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Rabbit.run def convert(source, filename) ... Tempfile.open(["rab2pdf", ".rab"]) do |tempfile| tempfile.puts(source) tempfile.flush Rabbit::Command::Rabbit.run("--print", "--output-filename", pdf_path, tempfile.path) end ... end

Slide 33

Slide 33 text

Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 Thank you rab2pdfはあくまで入門用&緊急用 のツールなので、機能が少ないで す。可能ならRabbitをインストールし て使うことをおすすめします。 :-) http://rabbit-shocker.org/