自動ルビ振りマクロ
エディター上で選択した文字にルビをふるマクロを作った。青空文庫や小説家になろうやカクヨムにも使える。100KBまで大丈夫なので、大体3万文字ぐらいはいっぺんにルビがつく。完全に正しいルビとは限らないのでチェックは必要だけど、現代語なら9割以上はただしいはず。Meryエディタのマクロです。他のエディタはよく知らないが改造したら他のエディタでも動くのでは?
JIS X 0208コード以外の文字が含まれていると、エラーが出て止まる。
例えば:軀銳閱旣强契戶吳娛歲產尙稅說絕脫彥姬
実際に動かした画面
PageOneでの表示テスト
Meryについて
Meryは見た目的にメモ帳のようではあるが、マクロ、アウトライン、
シンタックスハイライト、マクロがjavascriptを使えたり、漢字の対応が多いのが特徴。www.haijin-boys.com
zipをダウンロードして、解凍してMery.exeをダブルクリックすると実行する。
表示>色の反転で目が疲れないように背景を黒くしている。
マクロのセットアップ
下のリンクからClone or download、Download ZIPでマクロファイルがダウンロードできる。使うのはその中の、ふりがな.js。
Meryを展開したフォルダのMyMacros>Macrosにふりがな.jsを置く。下ではふりがなのファイルがいっぱいあるが開発中の別バージョン。
マクロ、選択で先程追加したマクロを登録する。
標準ではマクロバーが表示されていないので、表示、ツールバー、マクロバーよりマクロバーを表示する。
使い方
- エディターに文字を貼り付けたり書く。
- ルビを付けたい文字を選択する。
- ふりがな.jsと書かれているところをクリック。
ここでは全体を選択したが、3万文字程度までは一括してルビを付けれるだろうと思う。多いと処理が終わるまで10秒ぐらいかかるかも。
マクロで追加されたルビ
設定の変更
標準の設定では、すべての漢字に青空文庫のふりがなを振ることになっているが変更できる。
マクロ、編集(E)ふりがな.jsとクリック
そうすると、ふりがな.jsの編集画面になる。13行目から18行目辺りにルビの種類と、ルビをつける量を設定する項目がある。編集して保存すると、マクロの実行する内容が変わる。
//0:青空文庫、1:pixiv、2:BCCKS、3:でんでんマークダウン、4:HTML5
var r = 0;//ルビタイプの指定
var r = 0 とある数字の0を0から4まで、半角数字で変更すると設定を変えられる。
//ルビを付けるグレードの指定
//1~6:小学1年から6年、7:中学生、8:一般向けの8段階
var Grade =1;
同様に、var Grade =1;の数字を変えることで、ルビを付ける量を変えられる。
ルビの形式は、青空文庫、pixiv、bccks、html、でんでんマークダウンを設定を書き換えることで選択可能。小学生1年から6年、中学生、一般向けの8段階のふりがなをつけるレベルも設定を書き換えることで選択可能だ。ウェブAPIを利用しているのでネット接続が必須。青空文庫のルビは、小説家になろうやカクヨムにも使えるので、ウェブ小説を書く人にもいいと思う。
マクロが実行している内容
細かく言うと下のような感じ。
ウェブAPIを使っているのでネット接続は必要になっている。WSHを使ったので、javascriptではなく、jscriptで違いに戸惑った。xmlhttprequestなら基本仕様なので互換性あると思ったのに、なにそれって。WSHはActiveXObjectを使わないといけないようだ。jquery使ったら簡単になりそうなときも追加する方法がよくわからなかった。
ところで、WSHのデバッグツールでWindows Script Debuggerがあると書いてるのをみたがなくなっているような。visual studioでもできるようだけど。
デバッグツール使わずにalert()だけでデバッグという面倒なことをやっておった。
アンドロイドアプリ化してみました。
jsonでやってたことをXMLでDOMパーサー使ってやるように変えた。XMLの勉強にはなった。DOMパーサーの使い方を覚えたので、キンドルコミッククリエイターの目次の処理もDOMパーサーを使って作り直してみるかな。
FIxedEpub3.jsなんというものを作ると面白そうだな。
PageOneとMeryについては、下の本で書いたのでもうちょっと詳しく知りたかったらどうぞ。KDPについては情報が古くなっていると思われる。
タグ:ふりがな