サクラエディタとJavaScript で文章編集

WindowsのKindleアプリから文章をコピーすると、改行せずに1行で張り付けられてしまうようです。

前回に引き続き今回は英語の例文をサクラエディタのマクロをJavaScriptせ作成して作成しました。

文章の状態を確認すると

24. I have to act like I belong. この 場 に 相応しく 振る舞わ ない と。 25. They’ re just a little blah! あの 人達、 つまらない のよね。 26. He’ s gonna take over this project. 彼 に この 仕事 を 引き継い で もらお う。

一つの項目で見ると番号 → 英文→日本文の順番で書かれてました。

まずは番号の前で改行

var str2 = str.replace(/(\d+.)/g,"\n$1");

数字+.(ドット)+スペースの構成になっていたので、正規表現で検出して、改行コードを前につけて置換します。検出時に()カッコの中にいれたところが$1に置き換わります。

英文の後で改行

var str3 = str2.replace(/(\.+|\!+|\?+)\s(\W)/g,"$1\n$2");

英文の最後は「.」か「!」か「?」で終わります。

いずれの文字もエスケープをつける必要があります。

「!」は2つ続くこともあるので、+(1つ以上繰り返し)をつけました。

英文が2つに分かれていることがあると最初の文の最後も検出するので、\W(単語を構成する文字以外)を指定することにより、日本文を検

ただし、日本文の最初が半角英数字の場合、検出できませんが数があまり多くないので、あとで手動で対応します。

(\.+|\!+|\?+)が$1になり、日本文の先頭文字が(\W)で検出され$2に置き換わります。結果間のスペースは削除されます。

キーマクロ記録

この後、番号.日本文(改行)英文(改行)の形にしたかったので、これは「キーのマクロ記録」で操作しながら記録しました。

//キーボードマクロのファイル 
GoLineTop(0);	// 行頭に移動(折り返し単位) 
WordRight_Sel(0);	// (選択)単語の右端に移動 
WordRight_Sel(0);	// (選択)単語の右端に移動 
Cut(0);	// 切り取り 
Down(0);	// カーソル下移動 
Paste(0);	// 貼り付け 
GoLineTop(0);	// 行頭に移動(折り返し単位) 
GoLineEnd_Sel(0);	// (選択)行末に移動(折り返し単位) 
Cut(0);	// 切り取り 
Up(0);	// カーソル上移動 
Paste(0);	// 貼り付け 
Char(13);	// 文字入力

最後に

目的は前回の記事に書いた通り、Kindleの英語の例文をプリントアウトしたいことが目的です。

200個の例文をマクロを作って加工し終わるのに約5時間かかりました。しかし、文章加工にマクロを使うことができたし、再利用もできるかもしれないので無駄ではありません。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です