何のことはない、電子書籍はHTMLで作れる、HTMLファイルを作成してamazonのダイレクト出版用コンソールにアップロードすれば電子書籍になる、おしまい、なのです。このやり方には欠点があります。それは、あまりにも簡便すぎるということです。なんでもそうですが、世の中にはだいたい2種類のやり方があります。簡単にできるやり方と難しいやり方です。簡単にできるやり方はとっかかりにはいいのですが、凝ったことをしようと思うとかえって難しかったり手間がかかったり時間がかかったりします。それに対して、簡単なやり方とは別に難しいやり方がわざわざ用意されている場合、いろいろと自分なりのやり方を工夫したい場合はこちらを選択したほうが結果的にいい場合が多いのです。amazonのダイレクト出版も後者のほうでした。難しくて手間のかかるやり方でやりました。最初にどこでつまずいたか、説明していきます。つまずいたポイントを並べているだけなので、読む人もわからなくて正解です。あとで正解の手法も書きます。さいしょにつまずいたのは、「amazonの公式のヘルプが自分の理解の範疇を超えていたということ」です。amazonのページには充実したヘルプがあります。このヘルプがわかりにくかったと言いたいわけではありません。非常に充実してわかりやすいとてもいいヘルプです。わたしの理解力が追いつかなかったのです。私個人の能力のほうの問題です。普通の人はこのamazonのヘルプさえ読めばその日にでもダイレクト出版をはじめられることは間違いないでしょう。わたしの理解力を超えてしまったポイントとしましては、html以外にもコンバートできるファイル形式が多くて、いろんな手法があり、例えばワードから電子書籍化する方法やpdfから電子書籍化する方法なども書かれており、自分のやりたい事を見つけるのに時間がかかったことです。あとは、すべきことと望ましいことの区別がつきにくかったことなんですが、例えば目次ファイルの作成は必須なんですが、文中目次は推奨なんです。何のことかわからないでしょ?目次用にtoc.htmlもしくはtoc.xhtmlという外部ファイルの添付が必須なんですが、それとは別に本文の中に目次ページを入れるのは推奨であって必須ではないんです。いうところのちょっとした表現の解釈につまずいて時間がかかってしまいました。あとは、htmlから電子書籍にコンバートする方法もいくつかあって、一番簡単なのがウェブ上でamazonのダイレクト出版コンソールにログインしてhtmlをアップロードする方法なんですが、これだとアップロードさえすればあとはコンソールが自動的に電子書籍を作ってくれます。アップロードするファイルはhtmlでもいいし、htmlやその他画像などの外部ファイルを含んだzipファイルでもOKです(ほら、また同じ結果を導く手法がいくつかあるからややこしくなった......)。この方法だと欠点があって、それは実際に電子書籍になったときの見た目を、いちいちアップロードしないと確認できないのです。後にも書きますが今回は一文字書き直すごとに確認作業を行うという、何百回何千回という作業が必要になることは必至だったので、なんとかローカルだけでコンバートできる方法を探っておく必要があります。コンソールにアップロードする手法とは別に、ローカルでツールを使って自分で電子書籍にコンバートする方法もあるんですが、これもいくつか方法があって、とくにサードパーティ製の変換ツールを使うやり方などがよく紹介されているのですが、こちらのコンテンツ制作継続性が完全にそのツールの公開状況などに依存してしまうため、この方法は選べません。できるだけamazonの公式ツールのみでコンバートできる方法を選ばなければなりません。課題はまだまだ山積みですが、現時点ではHTMLファイルを用意することだけははっきりしているので、まずはHTMLファイルの作成に取りかかります。縦書きによくウェブの文章をそのまま電子出版したような本に見られるんですが、そういう場合、電子書籍でも横書きレイアウトだったりするんですよね。自分の本はせっかくなので縦書きで出版したい。縦書き出版に関してはこちらの記事を参考にさせていただきました。ありがとうございます!!で、冒頭でもお話ししたように、わたしの文章ももとはウェブにアップしていた文章なので、それを縦書きに変換しなくてはいけないわけです。レイアウトそのものはCSSで縦書きになるのですが、英数字などが横に寝ているので、全部spanタグで囲って、縦書きに対応したCSSが効くようにマークアップし直す作業が必要になります。この作業を、次の章で説明するスクレイピングのときに同時に行うようにしました。ウェブにある文章を取得して原稿化させる文章そのものはすでにウェブ上にアップしてあるので、それをウェブスクレイピングの技術を使って再取得してきます。スクレイピング技術を使うべきか手作業でやったほうがいいかは悩みました。ファイル数=ページとして換算して26ページ(=26ファイル)程度なので、手作業でできなくもないわけです。手作業でルーチンワークをオペレーションするよりはプログラミングしたほうが比べるまでもなく面白いので、プログラミングできそうなところは積極的にプログラムを介して作業を行いました。notebookを使いました。notebookが最適だと思ったからです。結果的にこの選択は正しく、最後まで複雑だった電子書籍化を大いに助けてくれましたが、一点だけ困った事がありました。それは、Beautifulsoupは確かにウェブ上にあるHTMLからデータを取得するのは強力に便利なんだけど、HTMLデーターからHTMLを加工してさらにHTMLとして出力するには少し貧弱だったのです。出来ない訳じゃないんですが、DOMからデーターにアクセスするのは簡単なのに対してデーターをDOMにするのには少しだけ手間や制約が増えるのです。この点だけちょっと困りました。ローカルHTMLファイルとして手元に残すことにしました。スクレイピングにスクリプトを通しているのだから、その際に段落の字下げ。具体的には上マージンが一文字の高さだけ落ちたスタイルを持つクラスのpタグを入れる。段落の一文字目が開きかぎ括弧なら、会話文なので字下げを行わない。一人称などの表記ゆれの統一。おれ」「オレ」」などいろんなパターンの表記揺れを網羅して統一化させておく縦書きで読みやすいように数字は漢数字に変換しておく。「年」の文字の場合は「一九八〇」という変換ルールを先に適用させておく。三DCG」など、漢数字に変換されたらおかしい語句はあらかじめエスケープしておく。全角英数字を半角英数字に変換。三点リーダーなど半角にされるとまずい文字はあらかじめエスケープしておく半角英数字を全て、縦に回転するようスタイル設定したクラスを持つspanタグで囲む。エスケープしていた文字を元に戻すなどをプログラム上で処理しました。テストで電子書籍化ウェブ上にあるHTMLを、ローカルで縦書きHTMLとして取得できたので、ここらでいったん電子書籍化してみます。公式で用意されているツールのダウンロードページの中ごろから「KindleGen」というツールをダウンロードしてローカル縦書きHTMLファイルをkindle電子書籍化させてみます。