今更読みたくなった人です。
Kindle で読みたいというよりは、iPad mini で読みたかったのですが、HTML を .mobi に変換出来る方法を見つけたので、Kindle アプリで読む事にしました。

変換作業自体は、下記リストらへんを読んだら書いています。

変換作業

実際に変換作業に入ったのは良いのですが、困った問題がありました。
元の文章が iso-2022-jp でエンコードされているのに対して、mobi 形式に変換するには UTF-8 に直す必要があったんです。
そして、miyagawa さんのスクリプトをそのまま使用するとエラーを吐かれます。
なので、このコードに少し変更を加えました。

nkf とか色々入れないといけないので、インストールしてください。

Mac ならこんな感じですかね。

$ brew install nkf
$ brew install kindlegen

あと、手直したコードは以下の通りです。

#!/usr/bin/env ruby

unless `nkf -g index.html`.chomp == 'UTF-8'
  puts "change Encoding"
  `find . -iname "*.html" -type f | xargs -n 10 nkf -J -w --overwrite`
end

file = File.open("index.html")
content = file.read

all_html = <<HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja-JP">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="Content-Language" content="ja-JP">
  <link rel="stylesheet" type="text/css" href="rhg.css">
  <link rev="made" href="mailto:aamine@loveruby.net">
  <meta name="Author" content="Aoki Minero">
  <title>Ruby Hacking Guide</title>
</head>
HTML

content.scan(%r[<li><a href="(.*?)">(.*?)</a>]) do |filename, title|
  chap = File.open(filename)
  html = chap.read
  html.sub!(/^.+?<h1>/m, %q[<h1 class="chapter">])
  html.gsub!(/<h2>/, "<h3>")
  html.sub!(%r[</body>.*]m, '')
  all_html << html
end

all_html << '</body></html>'

puts all_html

あとは、『Rubyソースコード完全解説』サポートページから HTML コードを取ってきて、下記コードを実行します。

$ ruby rhg-mobi.rb > all.html
$ kindleGen all.html -c2 -verbose -locale ja -o rhg.mobi

あとはデータを端末に移せば完了です。

u8x7co8