Welcome to QuoteIt’s documentation!¶
Contents:
QuoteIt について¶
QuoteIt は、さまざな Web サービスのサムネイル・埋め込みドキュメントを 取得するための Web API です。 プラグインはユーザ同士で共有され、誰でも自由に追加・変更を行なうことができます。
QuoteIt の利用方法¶
QuoteIt を利用するためには、以下の2つの方法があります。
プラグイン開発¶
QuoteItで引用できるサービスは、プラグインにより自由に拡張できます。 プラグインはユーザ同士で共有され、誰でも自由に追加・変更を行なうことができます。
プラグインの種類¶
プラグインにはサムネイルプラグインとClipプラグインの2種類が存在します。
- サムネイルプラグイン
- Twitpicなどの画像共有サービスから、画像を引用するためのプラグインです。 結果は 画像 のURLでなければなりません。
- Clipプラグイン
- 任意のWebサービスから引用するためのプラグインです。 結果には任意のHTMLタグを利用できます。 埋め込み HTML を引用する場合には、Clip プラグインが便利です。
プラグインの定義¶
サムネイルプラグインの場合¶
url
- 該当サービスの代表的なURLです。プラグイン一覧を表示する際に利用されます。
regexp
本プラグインが対象とするURLの正規表現です。
( )
により正規表現をグループ化し、thumbnail
から参照できます。使える文法は Rubyの正規表現 を参照してください。
thumbnail
- 画像のURLです。
$1
,$2
,$3
, ... でregexp
の n番目にマッチしたテキストを参照できます(nは1から9まで)。 また、$$1
,$$2
,$$3
, ... とすることで、URL エンコードされた値を参照することもできます。
Clipプラグインの場合¶
url
- 該当サービスの代表的なURLです。プラグイン一覧を表示する際に利用されます。
regexp
本プラグインが対象とするURLの正規表現です。
( )
により正規表現をグループ化し、clip
から参照できます。使える文法は Rubyの正規表現 を参照してください。
clip
- 引用するデータのURLです。
$1
,$2
,$3
, ... でregexp
の n番目にマッチしたテキストを参照できます。(nは1から9まで) transform
clip
からHTMLコードを生成する方法を定義します。 制限されたRubyコードが利用できます。Rubyの制限については Rubyのセキュリティモデル のセーフレベル4を参照してください。
また transform
内で利用できるメソッドは以下の通りです。
original_url
regexp
にマッチしたURLclip_url
- マッチしたURLを
clip
によって変換したURL content
clip_url
の指すページの内容json
content
をJSONとしてパースしたハッシュテーブル
プラグインのテスト¶
プラグインの動作は、 Sandboxページ にて確認できます。
プラグインの登録・反映¶
完成したプラグインをWedataに登録することで、QuoteItに反映させることができます。
- サムネイルプラグインは QuoteIt-thumbnail DB に、Clipプラグインは QuoteIt-clip DB に登録します。 なお登録にはOpenIDが必要です。
- Upgradeページ から反映させます。
セットアップ¶
ここでは、インハウスに QuoteIt をデプロイする方法を説明します。 QuoteIt で、インハウスのリソースを引用したい場合に参照してください。 そうでない場合には、Heroku 版の QuoteIt を利用してください。
動作環境¶
QuoteIt を利用するためには、以下のソフトウェアが必要です。
- Ruby 1.9.2
- Bundler 1.0.7 or later
- MongoDB 1.8.1 or later
- memcached 1.4.9 or later
デプロイ方法¶
1. QuoteIt をダウンロードします。
$ git clone git://github.com/codefirst/QuoteIt.git
2. MongoDB を立ち上げます。
$ mongod --dbpath <dir_name>
3. memcached を立ち上げます。
$ memcached -vv
4. 必要な gem をインストールします。
$ bundle install --path vendor/bundle
5. QuoteIt を立ち上げます。
$ bundle exec padrino start
6. QuoteIt にアクセスします。
http://localhost:3000
プラグインの追加¶
インハウスにデプロイした QuoteIt へのプラグインの追加は CUI から行います。 ここでは例として debeso を引用するプラグインを作成します。
QuoteIt にはローカルのプラグインを追加する機構がないため、 コンソールを利用して、プラグインを追加します。
$ bundle exec padrino console
以下のコードを実行します。
Html.create(:name => 'debeso', :regexp => 'http://localhost/debeso/codes/edit/(\d+)', :clip => 'http://localhost/debeso/api/v1/snippets/$1.json', :url => 'http://localhost/debeso/', :transform => 'json["content"]')
Heroku QuoteIt へのリレー¶
インハウス QuoteIt で処理されなかった URL を Heroku QuoteIt へ 移譲することもできます。
$ bundle exec padrino console
以下のコードを実行します。
Html.create(:name => 'QuoteIt', :regexp => '(.+)', :clip => 'http://quoteit.heroku.com/clip.html?u=$$1', :url => 'http://quoteit.heroku.com', :transform => 'content')
注釈
QuoteIt は、プラグインが登録された順に処理をしていくため、 QuoteIt プラグインは必ず最後に登録して下さい。
クレジット¶
コミッタ¶
ライセンス¶
The MIT License.
Copyright (c) 2011-2012 mzp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.