ITエンジニア/デザイナ向けにオープンソースを毎日紹介

Knapsackはdata URIを使ってオンラインリソースをパックする。

[/s2If]

KnapsackはRuby/Sinatra製のフリーウェア(ライセンスはDo What The Fuck You Want To Public License)。個人的にWebアーカイブは便利な技術だと思っている。Webページをアーカイブにまとめ、後でいつでも閲覧することができる。画像などのファイルがまとまっているので移動したりするのも楽だ。


Screen-shot 332.png

任意のデータをパック

 

サイト内で使われている画像であれば、data URIを使えばページ内に埋め込むことができる。これは何も画像に限ったものではない。どんなデータでもパックすることができるのだ。それを実現するWebアプリケーションがKnapsackだ。

KnapsackはシンプルなWebアプリケーションで、URLを指定して実行すると外部コンテンツを取得し、data URIでパックする。結果はdata URIとして表示されるので、その内容を全てコピーして保存すれば良い。画像に限らずHTMLを指定することもできる。


Screen-shot 333.png

画像をパック

 

ユーザエージェントはiPhoneとして判断されるようで、iPhoneに最適化されているWebサイトの場合はPC向けとは異なるコンテンツが返ってくる。HTMLの場合はその中にある画像も全てdata URIに変換された上で得ることができる。まるでWebアーカイブだ。Spriteのような画像はうまく処理されないので注意してほしい。



Screen-shot 334.png

Webサイトをパックした例

 

MOONGIFTはこう見る

現状では再現性はそれほど高くないが、画像やJavaScriptも含めて全て一つのファイル内にまとめることができるのはWebアーカイブと同じだ。data URIによるパックならばiPhoneやAndroidでの表示も問題ないだろう。新しいWebアーカイブ技術ともいえるかも知れない。

data URIを使うとWebサーバへのコネクション回数が減るので表示高速化につながる可能性がある(キャッシュが使えない不便さがある)。Knapsackをそのままでなくとも技術的に活かせる場面はありそうだ。

[/s2If]

 

joseph's knapsack at master - GitHub

 https://github.com/joseph/knapsack

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2