D3.js の作者 Mike Bostock 氏の最新サンプルが多数見られる bl.ocks.org ですが、GitHub アカウントを持っているユーザならば誰でも投稿が可能です。
http://bl.ocks.org/<GitHub id>
にアクセスすれば、過去に自分の書いた gist を自動的に取ってきて表示されると思います。
自分も時々投稿しています。
http://bl.ocks.org/osoken
手順
- public gist を新規に書く
- ファイルは何でもいいけど、
index.html
が良さそうです - [Gist description] は記事のタイトルとして扱われます。blocks一覧に表示されるのと、blocksのタイトルとして使われます。
- gist を
clone
します -
readme.md
とindex.html
とthumbnail.png
をリポジトリ内に作ってpush
します
-
readme.md
は blocks のiframe
のすぐ下に説明文として表示されます -
index.html
は blocks のiframe
内に展開されます。解像度は960px*500px
です(固定?) -
thumbnail.png
は blocks 一覧の表示に使われます。解像度は230px*120px
です - 同じ gist 内であれば、相対パスでアクセスできます。データを gist に一緒に置くことが多い
- 異なる gist のリソースにアクセスするには
/<GitHub id>/raw/<gist id>/<リソース名>
でできます
Tips
ローカルで blocks に似たディレクトリ構成を再現する
ローカル環境に bl.ocks.org と同じディレクトリ構成を作って localhost を立てるとデバグやサムネイルの生成が楽です。自分は gist/<GitHub id>/raw/
に gist を clone
しています。自分の今のディレクトリ構成はこんな感じ。
gist/
└ osoken/
└ raw/
├ 8fd61d9bf581691a794a/
| ├ data.json
| ├ index.html
| ├ readme.md
| └ thumbnail.png
├ 9e5ec69346e972c54884/
| └ ...
└ ...
そしてgistディレクトリが/
になるようにlocalhostを立てています。
[osoken@somewhere gist]$ python -m SimpleHTTPServer
こうしておくと、他の gist のリソースのURLがblocks上でのURL, /<GitHub id>/raw/<gist id>/<リソース名>
と一致します。例えば 8fd61d9bf581691a794a
で使ったdata.json
を他のgistでも使いたいときは /osoken/raw/8fd61d9bf581691a794a/data.json
で利用できる、という感じです。
サムネイルの生成
phantomjs
コマンド が便利です。Web ページのスクリーンショットを撮ってくれる rasterize.js
というスクリプトが同梱されているので、それを使って960px*500px
で作ってからimagemagick
のmogrify
コマンドで230px*120px
に縮小しています。
[osoken@somewhere gist]$ phantomjs rasterize.js http://localhost:8000/osoken/raw/8fd61d9bf581691a794a/ osoken/raw/8fd61d9bf581691a794a/thumbail.png 960px*500px
[osoken@somewhere gist]$ mogrify -resize 230x120 osoken/raw/8fd61d9bf581691a794a/thumbnail.png