この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。
≫ 目次に戻る config.yamlのdocsで指定した.mdファイルです。このファイルを増やしていくことで、本の原稿を作っていきます。
Markdown形式の例を示します。
1# 前書き
2
3## 挨拶
4
5 ここは文章です。
6
7 改行2つで段落が変わります。**強調**はアスタリスク2つで囲います。
8
9[リンク](chapter_xx.xhtml)
10
11
12
13* リスト1
14* リスト2
15 * リスト2-1
16 * リスト2-2
17* リスト3
18
19<div class="right">HTMLのタグも使えます。</div>
20
21<div class="with-border" markdown="1">
22
23* リスト1
24* リスト2
25 * リスト2-1
26 * リスト2-2
27* リスト3
28
29</div>
上の内容は、Markdown記法で使う装飾の一例です。実際にはもっと数が多いのですが、テキスト中心の原稿でよく使いそうなものを選びました。
「#+半角スペース+テキスト」は大見出しです。HTMLの<h1>テキスト</h1>に変換されます。
「##+半角スペース+テキスト」は中見出しです。HTMLの<h2>テキスト</h2>に変換されます。
以降#が増えるほど階層が下の見出しになります。
Markdownでは、改行2つで段落が変わります。段落は、HTMLタグの<p>~</p>で囲まれます。段落の間は1行隙間が空きます。
1行隙間を空けずに改行したい場合は、行末に半角スペースを2つ書きます。そうすると行末に<br />タグが挿入されます。
各段落の先頭の半角スペース、全角スペースは削除されます。
強調方法はいくつかあります。*(アスタリスク)2つで囲うと強調になります。_(アンダースコアー)2つで囲う方法もあります。
*や_1つで囲うと斜体になります。ただし、日本語では変化がありません。3つで囲うと斜体と強調の両方が適用されます。
電子書籍では目次などでリンクを使います。またWebのリンクを入れることもあります。ただし、BOOK☆WALKERのように、書籍販売サイトによってはリンク機能を禁止していることもあります。
リンクは[リンク](chapter_xx.xhtml)の形式で書きます。[リンク]の部分が表示文字で、(chapter_xx.xhtml)の部分がURLです。
この部分は<a href="chapter_xx.xhtml">リンク</a>のようにHTML化されます。
画像も挿入できます。画像の書式はリンクに似ています。先頭に!を書き、と書きます。[画像]の部分がALTテキスト(代替テキスト)で、(image/dummy.jpg)の部分がURLです。
この部分は<img src="image/dummy.jpg" alt="画像" />のようにHTML化されます。
*や+や-を書き、半角スペースを空けて行を書くとリストになります。次の行でインデントすると、階層が1つ下がります。
1.のように数字とドットを書き、半角スペースを空けて行を書くと連番リストになります。次の行でインデントすると、階層が1つ下がります。
MarkdownではHTMLタグをそのまま書けます。
Kindle用の電子書籍を作る際に注意しなければならないのは、style属性が使えないことです。style属性を使うとエラーになります。
そのためstyle="text-align: right;"(テキストを右寄せ)のような効果を使いたい時は、class="right"のようにクラスを書き、CSSファイルで.right { text-align: right; }のようにスタイルを指定します。
PythonのMarkdownパッケージでは、HTMLタグの内側にMarkdown記法を書いても無視されます。HTMLに変換されず、ただのテキストになります。
HTMLタグの内側でもMarkdown記法を変換させたい時は、HTMLタグにmarkdown="1"という属性を書きます。
このmarkdown="1"の属性は、Markdownパッケージがテキストを変換するときに除去されます。
この連載は、『PythonでMarkdownからEPUBをつくろう』を一部抜粋して編集したものです。
本編には、全てのソースコードや、生成する原稿のサンプルが付属しています。ぜひ、こちらもご購入ください。
姉妹版の『PythonとPygameで作る レトロ風RPG 全コード』もあります。