この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。
≫ 目次に戻る 次はitem/content.opf
です。META-INF/container.xml
で示したルート ファイルです。
OPFは、Open Package Formatの略です。中身はテキスト ファイル(XML形式)になっています。
このファイルはボリュームが大きいので、ある程度省略して掲載します。
1<?xml version="1.0" encoding="utf-8"?>
2<package xmlns="http://www.idpf.org/2007/opf" version="3.0"
3 xml:lang="ja" unique-identifier="unique-id"
4 prefix="rendition: http://www.idpf.org/vocab/rendition/# ebpaj: http://www.ebpaj.jp/">
5 <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
6 <dc:title id="title">本のタイトル</dc:title>
7 <dc:creator id="creator01">著者名/dc:creator>
8 <dc:language>ja</dc:language>
9 <dc:description>本の説明</dc:description>
10 <meta property="dcterms:modified">2025-01-31T00:00:00Z</meta>
11 <meta content="cover" name="cover" />
12 <dc:identifier id="unique-id">XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</dc:identifier>
13 </metadata>
14 <manifest>
15 <item media-type="application/xhtml+xml" id="doc-0" href="./xhtml/cover.xhtml" properties="svg" />
16 <item media-type="application/xhtml+xml" id="doc-1" href="./xhtml/toc.xhtml" properties="nav" />
17 <item media-type="application/xhtml+xml" id="doc-2" href="./xhtml/d_000.xhtml" />
18 ︙
19 <item media-type="application/xhtml+xml" id="doc-9" href="./xhtml/d_900.xhtml" />
20 <item media-type="image/jpeg" id="cover" href="./image/cover.jpg"/>
21 <item media-type="text/css" id="f-0" href="./xhtml/css/add.css" />
22 <item media-type="text/css" id="f-1" href="./xhtml/css/code.css" />
23 ︙
24 <item media-type="image/jpeg" id="f-4" href="./xhtml/image/dummy.jpg" />
25 </manifest>
26 <spine page-progression-direction="ltr">
27 <itemref idref="doc-0" />
28 <itemref idref="doc-1" />
29 <itemref idref="doc-2" />
30 ︙
31 <itemref idref="doc-9" />
32 </spine>
33</package>
このファイルは3つのブロックに分かれています。
<metadata>~</metadata>
の部分は書籍情報です。
<manifest>~<manifest>
の部分は収録ファイルの一覧です。
各項目は<item>
で記載します。それぞれの項目には、メディアの種類であるmedia-type
、一意の名前であるid
、content.opf
からの相対パスであるhref
の情報を書きます。
href
の値は絶対パスで書いてはいけません。必ずcontent.opf
からの相対パスにします。
また、properties="svg"
やproperties="nav"
といった設定を追加することもあります。
svg
はSVG形式での記載を意味します。nav
はナビゲーションに利用することを意味します。
<spine>~</spine>
の部分には本のページの順番を書きます。
ここではpage-progression-direction="ltr"
のようにページ送りの方向を設定できます。
各項目は<itemref>
で記載します。<itemref idref="doc-0" />
という項目なら、<manifest>
のid="doc-0"
のファイルを参照するという意味になります。
この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。