今日はコンピューターの話。

Iomega Vorderseite
 まだまだ電子書籍の執筆、でんでんコンバーターによるEPUB化を行っている。
 先日、EPUB Validatorによるバリデーションエラーを、どのようにつぶすかについての記事を書いた。

イジハピ! : 【第955回】EPUBのValidationエラーについて

 ぼくはマークダウンで書いた原稿を、でんでんコンバーターに渡してEPUBファイルに変換し、EPUB Validatorで検証をするという作業を繰り返していた。
 普通にマークダウンで原稿を書いて、でんでんコンバーターで変換するという作業を行う分には、あまりエラーは発生しない。
 でも、さいきんちょっと進行上トリッキーな原稿を書いていると、エラーが続出するので、エラー検証にまつわる下記の作業を自動化したくなってきた。

* EPUBファイルnandoka.epubの拡張子をzipに変えてnantoka.zipとする
* それをunzipしてフォルダーnantokaに入れる
* 中身のファイルを検証し、エラーの箇所を突き止めて直す
* nantokaをzipに圧縮する。このとき以下のような手順を踏まなければならない。
 $ cd nantoka
 $ zip -0 -X ../nantoka.epub mimetype
 $ zip -r ../nantoka.epub -x mimetype

 さて、これ、Mac/UNIXでやるぶんにはなんてことない作業だが、Windowsでやりたい。理由はWindowsベースのハウツー本を書いているからで、なるべくWindowsで作業を完結したいと思ったのだ。

 まず、コマンドラインで実行できるUNIX互換のzipコマンドおよびunzipコマンドを入手する。
 以下から入手出来た。

Zip for Windows

UnZip for Windows

 Cygwinとかそういうしちめんどくさいものを入れる必要はなくて、単に上からインストーラー(Complete package except sources)をダウンロードして実行するだけだ。
 以下にzip.exeとunzip.exeが格納される。

 C:\Program Files\GnuWin32\bin

 ところで、なぜかPATH環境変数にこのパスが自動で入らないので、手動でWindowsを設定してPATH環境変数に上記のフォルダーを追加する。
 具体的には「PC」を右クリックして「プロパティ」を選択し、「システムの詳細設定」をクリックし、「環境設定」をクリックし、「システム環境変数」から「Path」をクリックし、「編集」をクリックする。
 ここで、昔は「値」ボックスが編集可能になるだけで、既存の「Path」の値をこわごわ変更して、セミコロン区切りで新しいフォルダーを追加しなければならなかったが、たぶんWindows 10からだと思うけど、グッと使いやすくなっていて、「環境変数名の編集」というボックスが出来て値の追加、編集、フォルダー参照、削除、優先順位の変更が個々の値ごとにボタンで出来るようになった。

12525432_919562468151784_4769719532248086893_o

 こいつはいいね!>Windows

 cmd.exeが拡充したという話もあって、Windowsにコマンドライン回帰の波が来ているんだろうか。今後もいろいろ期待である。

 話が長くなったが、以下のバッチファイルを書いた。
 まず、EPUBを解凍してフォルダーに入れる。
 デスクトップにdensho.epubという名前でEPUBがあるという前提である。
REM unzip_epub.bat
del C:\Users\query1000\Desktop\densho.zip
rmdir /S /Q C:\Users\query1000\Desktop\densho
copy C:\Users\query1000\Desktop\densho.epub C:\Users\query1000\Desktop\densho.zip
unzip C:\Users\query1000\Desktop\densho.zip -d densho
 まずdelコマンドでさっき作業したzipファイルを削除する。最初の1回はエラーが返る。
 次にrmdirコマンドでさっき作業したフォルダーを削除する。最初の1回はエラーが返る。/SというのはSubfolderの略で、サブフォルダーを再帰的に処理する。/QはQuietの略で、いちいち確認を求めないという意味らしい。
 次にcopyコマンドでEPUBをZIPファイルに名前を変えてコピーする。
 最後にdensho.zipをunzipする。-dはフォルダーを作ってその中に解凍したファイルを入れることで、ここではdenshoというフォルダーを作成している。

 これでdenshoフォルダーの中にEPUBの中身が展開されるので、いろいろファイルをエラーに従って検証し、場合によっては、修整を試みる。本来はソースファイルであるでんでんマークダウンのファイルを修正してでんでんコンバーターによるビルドからやり直すのがスジであるが、原因がよく分からない時にEPUBのHTMLをいろいろいじって試験的にビルドしてみたいことがある。

 さて、HTMLをいじってしまったフォルダーをもう一度zipし、EPUBに変換する。これは以下のようなバッチファイルを使ってみた。
REM zip_epub.bat
C:
cd C:\Users\query1000\Desktop\densho
zip -0 -X ..\densho.epub mimetype
zip -r..\densho.epub * -x mimetype
 原理は分からないのだが、これでうまくいく。

 ということで、書き出すと面倒なようだが、実際はバッチファイルが2個デスクトップにあって、片っぽをダブルクリックするとEPUBがフォルダー化され、もう片っぽをダブルクリックするとフォルダーがEPUB化
するだけの話である。要はフォルダー名、ファイル名が決め打ちなので、バッチファイルを書くとうまくいく。いちいちファイルやフォルダーを指定したり、ドラッグ&ドロップする手間がないのである。コマンドライン、バッチファイルというとアレルギー反応を示す人も、1つでも作ってみると便利さを実感されると思う。

 さて、現在執筆中の電書のサイズが10MBを超えてしまい、Webサービスの<idpf>EPUB Validatorでは検証が出来なくなってしまった。
 そこで、デスクトップ アプリケーションのpagina EPUB-Checkerというのを使ってみた。

pagina GmbH Publikationstechnologien: EPUB-Checker

 JREを入れないと動かないが、ダウンロードしてunzipすると実行形式ができ、EPUBをドラッグ&ドロップすると検証が出来る。今後はこれを使おう。
 今日もチラ裏でゴメンナサイ。