電書ちゃんねる

あんたとあたしのメディア論

帰ってきたSigil ― プラグイン機構でワンチャンある?

しばらく活動が停滞していたEPUBオーサリンツールSigilだが、最近少しだけ開発が活発化しているようだ。新しく導入されたプラグイン機構を利用すればEPUB 3の出力もできる。

以前このブログでは次の記事でSigilの開発が行き詰まっていると伝えた。

ところが、2014年後半から開発が活発化してきたようだ。

開発体制

多忙な中、独力でSigilをメンテナンスしてきたJohn Schember氏はブログで、2014年8月頃にKevin Hendricks氏による協力を得られたことを明かしている。Kevin Hendricks氏は幾つかのバグ修正の他、Sigilにプラグインを追加するフレームワークの導入も進めている。

Making epub happen: Sigil Status Update

また、新たにSigilのウェブサイトも立ち上げられている。

リリース

Hendricks氏の協力もあってか、小規模なアップデートが随時行われている。内容はプラグイン機構の追加を除いてはバグフィックを中心としたものだ。EPUB 3への公式対応は未だに行われていない。

  • 2015/02/02 ver 0.8.4
  • 2015/01/16 ver 0.8.3
  • 2014/11/29 ver 0.8.2
  • 2014/10/12 ver 0.8.1
  • 2014/09/28 ver 0.8.0

プラグイン機構

新しく導入されたプラグイン機構によってユーザーは任意の機能を追加することができる。プラグインに使う言語は現在のところPythonしかサポートされていないが、他のプログラム言語にも対応する意向はあるようだ。プラグインMobileReadのフォーラムに投稿されることが多い。

もしかしたらSigilにEPUB 3を出力できるようにするプラグインもあるのでは?と思い調べてみたら早速見つかった。

epub3 output plugin for Sigil - MobileRead Forums

折角なので、これを例にプラグインの使い方を示す。上記のリンクからePub3-itizer_v022.zipというファイルをダウンロードしておくこと。なおこちら環境は以下のとおり。

手順

  1. メニューから Plugins -> Manage Plugins をクリック。次のウィンドウが立ち上がる。

    Preferencesウィンドウの画像

  2. 図の①。 Interpreters Path to Interpreter Executable のPython2.7の欄にPythonのパスを記述する。となりのAutoボタンを押すと/usr/bin/pythonが自動的に挿入される。特に環境をいじってなければこれでよいはずだ。

    パスはターミナルでwhich pythonを実行すれば確認できる。

  3. 図の②。Pluginsの項目の Add Plugin ボタンを押す。プラグインの場所を聞かれるので、前述の ePub3-itizer_v022.zipを選択する。

  4. このPluginはSigilで作成したEPUB 2をEPUB 3に変換するものだ。メニューから Plugins -> Output -> ePub3-itizer が選べるようになっているので、EPUBの作成が済んだら押してみよう。

  5. Plugin Runnerウィンドウの Startボタンを押すと変換処理が走る。変換が済むとEPUB 3の出力先を聞かれるので、 任意の値を入力する。

    Plugin Runnerウィンドウの画像

  6. 出力されたファイルを確認する。次の処理が行われているようだ。

    • パッケージ文書(content.opf)をEPUB 3のものに変換
    • ナビゲーション文書(nav.xhtml)の作成
    • コンテンツ文書(*.xhtml)のHTML5

ナビゲーション文書とは別にHTML目次が存在する場合、ナビゲーション文書をspineから除外してくれるあたり、思ったより賢い。

逆にナビゲーション文書をHTML目次として利用する場合、勝手にTable of Contentsという見出しが入ってしまう。日本人なら目次として欲しいところだが、それを修正するにはまたEPUBを編集する必要があるので本末転倒だ。コードが書ける人ならプラグインをカスタマイズするほうがマシだろう。

EPUB Validatorでチェックすると、NCXから外部DTD宣言を除外せよとのエラーが出た。元のSigilのNCXがこうなってるんだろうけど、詰めが甘い印象。

EPUB ValidatorではNCXにエラーあり

おわりに

当ブログでは、仕様に準拠したEPUB 3の作成ができないためSigilの利用を推奨してこなかったが、開発に活気が戻ってきたのは純粋に嬉しい出来事だ。プラグインのエコシステムがうまく回れば開発者の手の及ばないニーズに応えることができるかもしれない。


電書ちゃんが出て行ってしまったので、しばらくは僕のソロプレイが続きます。