この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。
≫ 目次に戻る出力するEPUBファイルの構造を示します。作り方は人によって異なります。ここでは、この本のプログラムで出力する構成を掲載します。
epub/
item/
image/
cover.jpg
…… 表紙画像xhtml/
…… 原稿の出力先css/
main.css
…… 主要なCSSファイルadd.css
…… 書籍固有の追加CSSファイルimage/
cover.xhtml
…… 表紙ページtoc.xhtml
…… 目次ページd_000.xhtml
…… 原稿ページ 1d_900.xhtml
…… 原稿ページ Xcontent.opf
…… 収録内容情報META-INF/
container.xml
…… メタ情報mimetype
…… ファイル情報 mimetype
とMETA-INF/container.xml
は固定です。プログラムで書き換えることはありません。
プログラムで生成するのはepub/item/xhtml
の中身です。また、content.opf
も生成します。
EPUBファイルを作る際は、このような構造のディレクトリーを作ったあと、epub
ディレクトリーの中身をZIPで圧縮します。
その際、注意する点が2つあります。1つは、ZIPの先頭にmimetype
を無圧縮で格納することです。他のファイルは圧縮して格納します(圧縮しなくてもよいですが、ふつうは圧縮します)。
もう1つは、epub
ディレクトリーを圧縮するのではなく、epub
ディレクトリーの中身だけをZIPに格納することです。
間違ったZIPの中身と、正しいZIPの中身の例を示します。ZIP内にepub
ディレクトリーがないことが分かると思います。
epub/mimetype
epub/META-INF/container.xml
epub/item/content.opf
epub/item/image/cover.jpg
epub/item/image/xhtml/css/main.css
mimetype
META-INF/container.xml
item/content.opf
item/image/cover.jpg
item/image/xhtml/css/main.css
この2つの注意点があるため、通常の圧縮ソフトで単純にZIP化しても、正しいEPUBファイルにはなりません。プログラムを使ってZIPにするか、少し面倒な手順を踏む必要があります。
この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。