epubをルビありのテキストにする(calibre変換前に秀丸マクロでルビを括弧化)

この記事について

環境calibre、秀丸エディタ
目的epubをテキスト化するときにルビを「漢字(かんじ)」形式にする
結果変換前にhtml内のrubyタグを秀丸マクロで括弧に置換して解決

つまずきポイント要約

  • calibreでそのままテキスト化するとルビが「漢字かんじ」のように漢字とルビがつながる
  • 隣り合うrubyタグは先に結合してから括弧化しないとうまく置換できない

calibreを使ってepubをテキストにすると「漢字かんじ」のように漢字とルビがつながる。「漢字(かんじ)」のようにルビを括弧でかこいたいのでcalibreで変換前にひと手間加える。

1.epubをzip形式に変換して、本文が書かれたhtmlファイルを取り出す。

2.htmlファイルを秀丸マクロで変換。

//隣り合うルビを結合する
replaceallfast"<ruby>([^<]*?)<rt>([^<]*?)<¥/rt><¥/ruby><ruby>([^<]*?)<rt>","<ruby>¥¥1¥¥3<rt>¥¥2",regular;

//隣り合うルビタグがなくなるまで置換
while (result != 0) {

replaceallfast"<ruby>([^<]*?)<rt>([^<]*?)<¥/rt><¥/ruby><ruby>([^<]*?)<rt>","<ruby>¥¥1¥¥3<rt>¥¥2",regular;

//#a = result;
//$a = str(#a);
//message $a;

}

//ルビを括弧でかこう
replaceallfast"<rt>","(";
replaceallfast"</rt>",")";

//不要なrubyタグを削除
replaceallfast"<ruby>","";
replaceallfast"</ruby>","";
message "終了";

3.変換後のhtmlファイルをzipの中に戻し、epub形式に戻す。そのepubをcalibreでテキスト変換する。

関連記事

タイトルとURLをコピーしました