オープンソースのEPUBビューア「BiB/i」を試してみたら、なかなか良かった。

とあるサイトでEPUB形式でのコンテンツ掲載を検討することになり、WordPress 用のプラグインを探したのですが、WordPressコンテンツを EPUB 形式で保存するものばかりでした。プラグインにこだわらずに探していたら「BiB/i」を発見し、使ってみたら結構よかったので紹介します。

BiB/i についての詳細は公式サイトをご覧ください。

デモ

BiB/i公式サイトの Demo と同様、EPUB3 Sample Documents の EPUBファイルを使用しました。ライセンスは CC-BY-SA 3.0 です。

デモ 1

ガリ版の話

上記サンプルは、EPUBファイルを展開した状態でサーバーに置いたものを指定しています。

各種設定のデフォルト値は、/bib/i/presets フォルダの default.js で設定できますが、 ページに埋め込むアンカータグに data-bibi-* 属性値を付けて指定することもできます。上記サンプルでは、アンカータグに下記の属性を付けて、常にページ内に埋め込んだ状態で表示するように設定しています。

data-bibi-start-in-new-window="no"

ちなみに、data-bibi-start-in-new-window="desktop" にすればパソコンのみウィンドウ表示、data-bibi-start-in-new-window="mobile" にすればモバイルデバイスのみウィンドウ表示にできます。

デモ 2

次は、EPUBファイルを展開せずにそのまま置いて指定した例です。


2018/3/09: 下記デモがなぜか Chrome で動かなくなりました。現在、原因究明中です。
2018/3/20: [追記] どうやら Chrome 65 になってから動かなくなったようです。
2018/3/26: facebookグループのBiB/iフォーラムで開発者の松島さんにご報告
2018/4/03: 問題を解消した v0.999.9-r8 リリース。松島さん、ありがとうございます!!

ガリ版の話

ダウンロードしたEPUBファイルをローカルデバイス上で展開する処理が必要になるので、ページが表示されるまでに (デモ1よりも) 少し余計に時間がかかります。このサンプルで使った EPUBファイルは、ファイルサイズ260KB、ファイル数22程度なので大したことはありませんが、ファイルサイズが大きかったり、含まれるファイル数が多かったりすると、「重さ」を感じるようになってきます。もちろん、デバイスの性能にも依りますが。

ダウンロードして展開するまでは中のページを表示できないので、デモ1と違ってカバーページの表示がありません。

ブラウザ互換性

BiB/i は javascript で書かれていて、ローカルデバイスのWebブラウザ内で動作するので、挙動はブラウザに依存します。あまり古いブラウザだと動きません。

パソコンの場合は、主要なモダンブラウザの最新版と IE11 で動作するので、問題ないでしょう。

また、手持ちのモバイルデバイスのいくつかで試してみたところ、iOS は、iOS7 や iOS8 のモバイルSafariでは動作しませんでしたが、iOS9 以上なら大丈夫でした。Android は、4.1 の Chrome では動作せず、5.1.1 では OK でした。

以上のことから、ほぼ問題ないといえるでしょう。