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

Rabbit on Sinatra · Rabbit on Sinatra - プレゼン用PDF作成ツールrab2pdf Powered by Rabbit 2.1.2 自己紹介 ソフトウェア開発者 Webアプリの主戦場はSinatra

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

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

Rabbit on Sinatraプレゼン用PDF作成ツールrab2pdf

横山昌史Rabbitショッカー勉強会@Sinatra札幌

2013/11/24

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

自己紹介

ソフトウェア開発者

Webアプリの主戦場はSinatra

Rabbitショッカー札幌でRabbitを使っている

Rabbitコミッター札幌でRabbitにコミットしている

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

宣伝

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

札幌市中央区Ruby会議01 2014年2月8日(土)

札幌市中央区Ruby会議01 2014年2月8日(土)

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

話すこと

Rabbitを

Sinatraで動かした話

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

話すこと

Rabbitを

Sinatraで動かした話

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

Powered by

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

Rabbitとは

Rubyで書かれたプログラマー向けのプレゼンテーションツール

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

Rabbitの特徴

文章はテキストで記述

RD、Wiki、Markdownなど

装飾(テーマ)はRubyで記述RubyGemsで簡単に追加

バージョン管理しやすい

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

昨日機能が豊富

キーバインドの一部

一覧 情報 メニュー

i(小文字) I(大文字) 右クリックhttp://rabbit-shocker.org/ja/sample/rd/rabbit.html

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

インストールも簡単

gem install rabbit

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

だけど、インストールする前に試してみたいとか

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

借りたPCで、そもそもRubyが入ってないとか、

そんなとき

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

話すこと

Rabbitを

Sinatraで動かした話

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

Rabbit + Sinatra = rab2pdfRabbit + Sinatra = rab2pdf

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

rab2pdfとは

Webアプリケーション

RabbitのPDF生成機能を活用テキストからプレゼン用PDFを作成

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

サーバーの仕事

Rabbitはインストール済み

リクエストはSinatraで処理

SinatraからRabbitを実行PDFを生成

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

余談

RabbitはGUIアプリケーションですが、GUI環境がなくても動くように工夫されています。

なので、Webアプリケーションのバックグラウンドとしても使うことができます。

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

本題本題

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

作り方

テキストを書く1.

rab2pdfに送信2.

PDFをダウンロード3.

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

1. テキストを書く

現在はRD形式のみ対応RabbitはWikiやMarkdownに対応

rab2pdfでも対応したい

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

2. rab2pdfに送信

普通のフォーム普通のテキストエリア

普通の送信ボタン

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

3. PDFをダウンロード

ダウンロードリンクが表示される

PDFはしばらくサーバーに残る

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

隠し機能

Gitリポジトリ指定機能

ローカルテーマや画像に対応

http://myokoym.net/rab2pdf/git?url=https://github.com/user/repo

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

デモ

http://myokoym.net/rab2pdf/

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

使えるテーマ

Rabbit組み込みのテーマ

RubyGems.orgに公開されているテーマ

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

ソースコード

オープンソース(GPLv2+)

GitHubで公開https://github.com/myokoym/rab2pdf

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

トップページ

get "/" do @params ||= {} @params[:source] = slide_source haml :indexend

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

slide_source

= TITLE

: authorYour Name: date#{Time.now.strftime("%Y/%m/%d")}

= FIRST SLIDE

* ITEM 1* ITEM 2

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"}

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 :indexend

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

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

Thank you

rab2pdfはあくまで入門用&緊急用のツールなので、機能が少ないです。可能ならRabbitをインストールして使うことをおすすめします。 :-)http://rabbit-shocker.org/