My blog

Add intelligent tagline here

魔王「この我のものとなれ、勇者よ」勇者「断る!」 を ePub化

でも、電車の中で読むときに、iPhoneからsafariで読むと読み込みに時間がかかってしまうし、なにより途中でやめると最初からやり直しなのがつらい。1スレが長い一つのhtmlで書かれているので、例えば700から読みなおそうと思ったときにものすごくスクロールが大変なわけです。

というわけで、epub版を作ってみました。htmlをとってきて、UTF-8にして、reStructuredText形式にpythonで変換および日付やIDなどを除去して、sphinxでePub化。元々がHTMLなんだからsphinxを使わなくても簡単にePub化できると思いますが、まあその辺は置いといて。

古いiPhone 3Gで、Stanzaを使って読みましたが問題ありません。一行が長いので、フォントをちょっと小さめにして横持ちすると読みやすいです。

配布していいのかな…

問題があればコメントください。速攻消します。 また、単に自動変換しただけなので、どこか変な場所があるかもしれません。まだ7スレ目までしか読んでないので全部をチェックはしていません(ですが、今のところ問題はありません)。ご了承ください。

変換方法

    1. 配布元サイトから、全てのスレをそれぞれCtrl-Aで全選択、Ctrl-Cでコピー
  • 2. UTF-8が扱えるエディタにペースト。それぞれ、1.html、2.html .. とする * 本当は単なるテキストなんですけどね… * コピーは全部できていないことがあるので、最後の番数をちゃんとチェックすること
    1. 12スレまで保存したら、以下のスクリプトを実行
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import re


def convert(filename):
  outputf = filename.replace(".html",".rst")
  f = open(outputf,'w')

  f.write(filename.split(".")[0])
  f.write("\n")
  f.write("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n")

  p = re.compile('^([0-9]+)')

  for line in open(filename, 'r'):
    #    line = line.rstrip()
    if ("inserted by FC2 system" in line):
      continue
    if ("INDEX" in line):
      continue
    if ("NEXT" in line):
      continue
    if (line.startswith("ID:")):
      continue
    if ("魔王「この我のものとなれ、勇者よ」" in line): # 最初の行は飛ばす
      continue

    m = p.match(line)
    if (m):
      s = "\n**" + m.group(1) + " --- --- --- --- :**\n\n"
    else:
      s = "| " + line

    f.write(s)

  f.close()

if __name__ == '__main__':
  print os.path.dirname(__file__)
  files = os.listdir(".")

  for file in files:
    if (file.endswith(".html")):
        convert(file)
    1. {1-12}.rstが出来ているので、あとはこれを sphinx でmake epubしてあげればOK。

sphinxのepub作成を試したかったのでこうしたのですが、普通にePubを作るのであれば、HTML形式で保存し、 sigil を使った方がいいと思います。