最近話題のePub形式という電子書籍データフォーマットを調べて、自分でいくつか作ってみたのですが、
「書籍」というよりも、『持ち運びできるようにパッケージ(zip圧縮)したWebサイト』という感じがしてきたので、試しにWordPressをePub形式で書き出すプラグインを作ってみました。
思いつきでやってみたレベルなので、動作は限定的です。
不具合等あると思いますので、ご注意・ご了承ください。
不具合等あると思いますので、ご注意・ご了承ください。
動作確認環境は、
WordPress 2.9.1
PHP 5.2.5
生成したePubの表示には、
●Adobe Digital Editions
●calibre – E-book management
を使用しました。

解凍すると、
プラグイン本体ファイル
「kysLab_makeEPub.php」
テンプレート的なファイルが3つ
「ePubContentHeader.tmpl」
「ePubContentHeader.tmpl」
「style.css」
zip圧縮に使用しているPEAR
File_Archive
※kysLab_makeEPub.phpファイル内に「ePub書籍のタイトル」や「著作者」など、設定的なものが少しあります。
変更しなくても動作します。
■使い方
フォルダごとWordPressのpluginディレクトリへアップロード
wordpressの設定 => プラグインの管理で「使用する」をクリック
「ePub形式でパック」というメニューが追加されます

これをクリックすれば、ePubが生成されます。
※仕様的なもの
・記事で「公開」となっているものの最新10件をePub形式でパッケージします・ePubでサポートされるxhtmlタグ以外は削除しています
・CSSは、プラグインに同包のstyle.cssをそのままepub内にコピーしています
・ePubの実際のコンテンツとなるXHTMLは、WordPressデータベースから取得したpost_contentを、プラグインに同包の「ePubContentHeader.tmpl」と「ePubContentFooter.tmpl」で挟んで出力しています。
・ePubとしてパック(zip圧縮)したものは、WordPress設定の「その他の設定」=>「アップロードするファイルの保存場所」で指定されているディレクトリに、「{タイムスタンプ}.zip」で保存(※1)を試みます
・拡張子を「.epub」とするとサーバの設定によっては、未知のMIMEタイプとなりややこしいので「.zip」としています
htaccessファイルが使用できるならば、「AddType application/zip epub」とするとよいかもしれません
・記事内の画像は、imgタグのsrcを読んでePub内に複製を試みます(※2)
※1 セーフモード制限やレンタルサーバのPHP設定によっては、うまくいかない場合があります。
※2 別サーバにある画像の場合やレンタルサーバのPHP設定によっては、うまくいかない場合があります。
※2 別サーバにある画像の場合やレンタルサーバのPHP設定によっては、うまくいかない場合があります。


せっかくDLできるようにして頂いたのですが、
レンタルサーバー(Heteml)に、「PHP PEARのFile_Archiveパッケージ」が、
インストールされてなく使用できませんでした。
WordPressからePub形式のファイルを生成する試み | KYS-LAB_ueda http://bit.ly/9nV7Ns
"「書籍」というよりも、『持ち運びできるようにパッケージ(zip圧縮)したWebサイト』という感じ" http://bit.ly/9nV7Ns
@hikobey_GORI 想像できるものは、たいていありますね^^ http://bit.ly/dk9EJB –WordPressからePub形式のファイルを生成する試み
結局みんな考える事は同じ….ツールもコンテンツもタダの時代かぁ WordPressからePub形式のファイルを生成する試み http://bit.ly/dkldTm
*YF*
RT @tomix: 結局みんな考える事は同じ….ツールもコンテンツもタダの時代かぁ WordPressからePub形式のファイルを生成する試み http://bit.ly/dkldTm
*YF*
さくらのサーバーを使っていますが、うまくいかないようです。
WordPressのVersionは2.9.1です。
何も生成されていませんでした。
ePubでの出力を試してみたかったのですが、残念です。
WordPress -> ePub って、結構前からみかける話題だよね。これとか http://bit.ly/90hGhF
: epub