PythonでMarkdownからEPUBをつくろう

この連載について

 この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。

 本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。

 姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。

目次に戻る

item/content.opfの内容

公開:2025-02-25

 次はitem/content.opfです。META-INF/container.xmlで示したルート ファイルです。

 OPFは、Open Package Formatの略です。中身はテキスト ファイル(XML形式)になっています。

 このファイルはボリュームが大きいので、ある程度省略して掲載します。

▶ item/content.opf
 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" />
1819        <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" />
2324        <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" />
3031        <itemref idref="doc-9" />
32    </spine>
33</package>

 このファイルは3つのブロックに分かれています。

metadata

 <metadata>~</metadata>の部分は書籍情報です。

manifest

 <manifest>~<manifest>の部分は収録ファイルの一覧です。

 各項目は<item>で記載します。それぞれの項目には、メディアの種類であるmedia-type、一意の名前であるidcontent.opfからの相対パスであるhrefの情報を書きます。

 hrefの値は絶対パスで書いてはいけません。必ずcontent.opfからの相対パスにします。

 また、properties="svg"properties="nav"といった設定を追加することもあります。

 svgはSVG形式での記載を意味します。navはナビゲーションに利用することを意味します。

spine

 <spine>~</spine>の部分には本のページの順番を書きます。

 ここではpage-progression-direction="ltr"のようにページ送りの方向を設定できます。

 各項目は<itemref>で記載します。<itemref idref="doc-0" />という項目なら、<manifest>id="doc-0"のファイルを参照するという意味になります。


目次に戻る

この連載について

 この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。

 本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。

 姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。

 技術系同人誌など まとめページ


トップページに戻る
Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2025 Cronus Crown (c)1997-2025 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について