どんなデータでもdata URIでパックする「Knapsack」
Knapsackはdata URIを使ってオンラインリソースをパックする。
[/s2If]
KnapsackはRuby/Sinatra製のフリーウェア(ライセンスはDo What The Fuck You Want To Public License)。個人的にWebアーカイブは便利な技術だと思っている。Webページをアーカイブにまとめ、後でいつでも閲覧することができる。画像などのファイルがまとまっているので移動したりするのも楽だ。
任意のデータをパック
サイト内で使われている画像であれば、data URIを使えばページ内に埋め込むことができる。これは何も画像に限ったものではない。どんなデータでもパックすることができるのだ。それを実現するWebアプリケーションがKnapsackだ。
KnapsackはシンプルなWebアプリケーションで、URLを指定して実行すると外部コンテンツを取得し、data URIでパックする。結果はdata URIとして表示されるので、その内容を全てコピーして保存すれば良い。画像に限らずHTMLを指定することもできる。
画像をパック
ユーザエージェントはiPhoneとして判断されるようで、iPhoneに最適化されているWebサイトの場合はPC向けとは異なるコンテンツが返ってくる。HTMLの場合はその中にある画像も全てdata URIに変換された上で得ることができる。まるでWebアーカイブだ。Spriteのような画像はうまく処理されないので注意してほしい。
[s2If !current_user_can(access_s2member_level1)]
MOONGIFTは読者の皆さまのサポートによって運営されています。ぜひプレミアム登録お願いします!月 額500円の他、半年(3,000円)、年間パック(6,000円)もあります。!
[/s2If]
Webサイトをパックした例
MOONGIFTはこう見る
現状では再現性はそれほど高くないが、画像やJavaScriptも含めて全て一つのファイル内にまとめることができるのはWebアーカイブと同じだ。data URIによるパックならばiPhoneやAndroidでの表示も問題ないだろう。新しいWebアーカイブ技術ともいえるかも知れない。
data URIを使うとWebサーバへのコネクション回数が減るので表示高速化につながる可能性がある(キャッシュが使えない不便さがある)。Knapsackをそのままでなくとも技術的に活かせる場面はありそうだ。
[/s2If]
joseph’s knapsack at master - GitHub