|
|
| 1行目: |
1行目: |
| Mery エディタ マクロ: ルビとrubyタグ ( inuuik )
| |
| <pre>
| |
| 青空文庫形式の 括弧囲みのルビ と rubyタグ を置換
| |
|
| |
|
| ○ 青空文庫形式:
| |
|
| |
| 日本語の文は旧|漢字《かんじ》にルビを振る
| |
|
| |
| ※ ルビを二重山括弧《ルビ》で囲み、
| |
| あいまいなら、ルビを振る漢字の先頭に縦線|を付加
| |
|
| |
|
| |
|
| |
| 関連する編集のために、つぎのようなマクロを組み合せて使う。
| |
|
| |
| ルビの括弧をrubyタグに (置換)
| |
| ルビのrubyタグを括弧に (置換)
| |
|
| |
| 傍点の[#「.」に傍点]をrubyタグに (置換)
| |
| 傍点のrubyタグを[#「.」に傍点]に (置換)
| |
|
| |
| 改行をpタグの組に (置換)
| |
| 改行をp終了タグに (付加)
| |
| </pre>
| |
|
| |
| ※ マクロitokusu_rubyTagRepl: [[ファイル:itokusu_rubyTagRepl.zip]]
| |
| <pre>
| |
| ルビの括弧をrubyタグに.js
| |
| ルビのrubyタグを括弧に.js
| |
|
| |
| 傍点の[#「.」に傍点]をrubyタグに.js
| |
| 傍点のrubyタグを[#「.」に傍点]に.js
| |
|
| |
| 改行をpタグの組に.js
| |
| 改行をp終了タグに.js
| |
|
| |
|
| |
| 下の内容を、上の名前のファイルにして、 My Macros\itokusu に置く。
| |
| もしフォルダがなければ、itokusu フォルダを作成してからコピー。
| |
|
| |
| そこから Mery で開いて、マクロ - これを選択、
| |
|
| |
| 必要ならば、
| |
| ツール - オプション - キーボード の マクロ で 空いているキー に割り当て。
| |
|
| |
| または…、
| |
|
| |
| マクロitokusu の使い方:
| |
| フォルダ付きで展開したら、itokusu フォルダを My Macros にコピー。
| |
| (すでにフォルダがあれば、そのフォルダ内にファイルを追加コピー)
| |
|
| |
| マクロ - カスタマイズ - 新規作成 で、 My Macros\itokusu フォルダ
| |
| を選択、Ctrlキーを押しながらファイル名をクリックで、登録しようと
| |
| している複数のマクロをすべて選択してから - 開く。
| |
|
| |
| 必要ならば、
| |
| ツール - オプション - キーボード の マクロ で 空いているキー に割り当て。
| |
| </pre>
| |
|
| |
| <source lang="javascript">
| |
| // - 糸くす~------------------------------------- Copyright(C)2011-2012 inuuik -
| |
| // ルビの括弧をrubyタグに
| |
| //
| |
| // 青空文庫形式の 括弧囲みのルビ を rubyタグ に置換
| |
| //
| |
| // ○ 青空文庫形式:
| |
| //
| |
| // 日本語の文は旧|漢字《かんじ》にルビを振る
| |
| //
| |
| // ※ ルビを二重山括弧《ルビ》で囲み、
| |
| // あいまいなら、ルビを振る漢字の先頭に縦線|を付加
| |
| //
| |
| // 選択範囲にある 括弧囲みのルビ を rubyタグ に
| |
| // すべて書き換える。
| |
| //
| |
| // 選択範囲があれば範囲のみ、なければ全体、を検索する。
| |
| //
| |
| // revised inuuik 2011-09-25
| |
| // revised inuuik 2012-09-21
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
| var r;
| |
| var fl = meFindReplaceCase|meFindReplaceRegExp;
| |
|
| |
| Redraw = false;
| |
| if (s.IsEmpty) {
| |
| fl |= meReplaceAll;
| |
| }
| |
| else {
| |
| fl |= meReplaceSelOnly|meReplaceAll;
| |
| }
| |
| r = s.Replace(
| |
| '(?:(?:(?<=[\\p{Han}\\p{Hiragana}\\p{Katakana}ー])(|)((?:[\\p{Han}\\p{Katakana}ーゐゑヰヱカケヶ])+?))|(?:(?<=\\A|[\\p{^Han}&&[^|]])((?:[\\p{Han}ゐゑヰヱカケヶ]|(?:<span .+?</span>))+?)))《([\\p{Hiragana}\\p{Katakana}ー\\x{3000}[:graph:]]+?)》',
| |
| '<ruby><rb>\\2\\3</rb><rp>《</rp><rt>\\4</rt><rp>》</rp></ruby>',
| |
| fl
| |
| );
| |
| Redraw = true;
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |
|
| |
| <source lang="javascript">
| |
| // - 糸くす~------------------------------------- Copyright(C)2011-2012 inuuik -
| |
| // ルビのrubyタグを括弧に
| |
| //
| |
| // rubyタグ を青空文庫形式の 括弧囲みのルビ に置換
| |
| //
| |
| // ○ 青空文庫形式:
| |
| //
| |
| // 日本語の文は旧|漢字《かんじ》にルビを振る
| |
| //
| |
| // ※ ルビを二重山括弧《ルビ》で囲み、
| |
| // あいまいなら、ルビを振る漢字の先頭に縦線|を付加
| |
| //
| |
| // 選択範囲にある rubyタグ を 括弧囲みのルビ に
| |
| // すべて書き換える。
| |
| //
| |
| // 選択範囲があれば範囲のみ、なければ全体、を検索する。
| |
| //
| |
| // revised inuuik 2011-09-25
| |
| // revised inuuik 2012-09-21
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
| var r;
| |
| var fl = meFindReplaceCase|meFindReplaceRegExp;
| |
|
| |
| Redraw = false;
| |
| if (s.IsEmpty) {
| |
| fl |= meReplaceAll;
| |
| }
| |
| else {
| |
| fl |= meReplaceSelOnly|meReplaceAll;
| |
| }
| |
| r = s.Replace('((?<=[\\p{Han}ゐゑヰヱカケヶ])<ruby>(?:\\n?<rb>)?((?:[\\p{Han}\\p{Katakana}ーゐゑヰヱカケヶ]|(?:<span .+?</span>))+?)(?:</rb>)?(?:\\n?<rp>.*?</rp>)?<rt>([\\p{Hiragana}\\p{Katakana}ー\\x{3000}[:graph:]]+?)</rt>(?:\n?<rp>.*?</rp>)?</ruby>)',
| |
| '|\\1',
| |
| fl
| |
| );
| |
| r = s.Replace('<ruby>(?:\\n?<rb>)?((?:[\\p{Han}\\p{Katakana}ーゐゑヰヱカケヶ]|(?:<span .+?</span>))+?)(?:</rb>)?(?:\\n?<rp>.*?</rp>)?<rt>([\\p{Hiragana}\\p{Katakana}ー\\x{3000}[:graph:]]+?)</rt>(?:\n?<rp>.*?</rp>)?</ruby>',
| |
| '\\1《\\2》',
| |
| fl
| |
| );
| |
| Redraw = true;
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |
|
| |
| <source lang="javascript">
| |
| // - 糸くす~------------------------------------- Copyright(C)2011-2012 inuuik -
| |
| // 傍点の[#「.」に傍点]をrubyタグに
| |
| //
| |
| // 青空文庫形式の 括弧囲みの傍点 を rubyタグ に置換
| |
| //
| |
| // ○ 青空文庫形式:
| |
| //
| |
| // 日本語の文は強調する字[#「強調する字」に傍点]に傍点をつける
| |
| //
| |
| // ※ 傍点をつける文字に括弧[#「括弧」に傍点]の表記をする
| |
| // ※ 白ゴマ傍点をつける文字に括弧[#「括弧」に白ゴマ傍点]の表記をする
| |
| //
| |
| // 選択範囲にある 括弧囲みの傍点 を rubyタグ に
| |
| // すべて書き換える。
| |
| //
| |
| // 選択範囲があれば範囲のみ、なければ全体、を検索する。
| |
| //
| |
| // revised inuuik 2011-09-25
| |
| // revised inuuik 2012-09-21
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
|
| |
| Redraw = false;
| |
| if (s.IsEmpty) {
| |
| s.SelectAll();
| |
| }
| |
| var t = s.Text;
| |
| t = t.replace(/([^\u0000-\u007f\uff61-\uff9f]+)[#「\1」に白ゴマ傍点]/g,
| |
| function(str, p1, offset, s) {
| |
| return('<ruby><rb>'+p1+'</rb><rt>'+(p1.replace(/./g,'\ufe46'))+'</rt></ruby>');
| |
| }
| |
| );
| |
| s.Text = t.replace(/([^\u0000-\u007f\uff61-\uff9f]+)[#「\1」に傍点]/g,
| |
| function(str, p1, offset, s) {
| |
| return('<ruby><rb>'+p1+'</rb><rt>'+(p1.replace(/./g,'\ufe45'))+'</rt></ruby>');
| |
| }
| |
| );
| |
| Redraw = true;
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |
|
| |
| <source lang="javascript">
| |
| // - 糸くす~------------------------------------- Copyright(C)2011-2012 inuuik -
| |
| // 傍点のrubyタグを[#「.」に傍点]に
| |
| //
| |
| // rubyタグ を 青空文庫形式の 括弧囲みの傍点 に置換
| |
| //
| |
| // ○ 青空文庫形式:
| |
| //
| |
| // 日本語の文は強調する字[#「強調する字」に傍点]に傍点をつける
| |
| //
| |
| // ※ 傍点をつける文字に括弧[#「括弧」に傍点]の表記をする
| |
| // ※ 白ゴマ傍点をつける文字に括弧[#「括弧」に白ゴマ傍点]の表記をする
| |
| //
| |
| // 選択範囲にある rubyタグ を 括弧囲みの傍点 に
| |
| // すべて書き換える。
| |
| //
| |
| // 選択範囲があれば範囲のみ、なければ全体、を検索する。
| |
| //
| |
| // revised inuuik 2011-09-25
| |
| // revised inuuik 2012-09-21
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
|
| |
| Redraw = false;
| |
| if (s.IsEmpty) {
| |
| s.SelectAll();
| |
| }
| |
| var t = s.Text;
| |
| t = t.replace(/<ruby><rb>([^\u0000-\u007f\uff61-\uff9f]+)((?:<span .+?<\/span>)?)([^\u0000-\u007f\uff61-\uff9f]*)<\/rb><rt>[\ufe46]+<\/rt><\/ruby>/g, "$1$2$3[#「$1$3」に白ゴマ傍点]");
| |
| s.Text = t.replace(/<ruby><rb>([^\u0000-\u007f\uff61-\uff9f]+)((?:<span .+?<\/span>)?)([^\u0000-\u007f\uff61-\uff9f]*)<\/rb><rt>[\ufe45]+<\/rt><\/ruby>/g, "$1$2$3[#「$1$3」に傍点]");
| |
| Redraw = true;
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |
|
| |
| <source lang="javascript">
| |
| // - 糸くす~------------------------------------- Copyright(C)2011-2012 inuuik -
| |
| // 改行をpタグの組に
| |
| //
| |
| // 改行 を p タグの組 に置換
| |
| //
| |
| // 選択範囲にある 改行 を <p> </p> タグの組 に
| |
| // すべて書き換え、ブラウザで改行表示されるようにする。
| |
| //
| |
| // 選択範囲があれば範囲のみ、なければ全体、を検索する。
| |
| //
| |
| // revised inuuik 2011-09-25
| |
| // revised inuuik 2012-09-21
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
| var r;
| |
| var fl = meFindReplaceCase|meFindReplaceRegExp;
| |
|
| |
| Redraw = false;
| |
| if (s.IsEmpty) {
| |
| fl |= meReplaceAll;
| |
| }
| |
| else {
| |
| fl |= meReplaceSelOnly|meReplaceAll;
| |
| }
| |
| r = s.Replace('^(.*)$', '<p>\\1</p>', fl);
| |
| Redraw = true;
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |
|
| |
| <source lang="javascript">
| |
| // - 糸くす~------------------------------------- Copyright(C)2011-2012 inuuik -
| |
| // 改行をp終了タグに
| |
| //
| |
| // 改行 を p 終了タグ に付加
| |
| //
| |
| // 選択範囲にある </p> タグ のうしろに 改行 を
| |
| // すべて付加して、テキストとしても改行表示されるようにする。
| |
| //
| |
| // 選択範囲があれば範囲のみ、なければ全体、を検索する。
| |
| //
| |
| // revised inuuik 2011-09-25
| |
| // revised inuuik 2012-09-21
| |
| // - ------------------------ --------------------------------------------------
| |
| {
| |
| var s = document.selection;
| |
| var r;
| |
| var fl = meFindReplaceCase|meFindReplaceRegExp;
| |
|
| |
| Redraw = false;
| |
| if (s.IsEmpty) {
| |
| fl |= meReplaceAll;
| |
| }
| |
| else {
| |
| fl |= meReplaceSelOnly|meReplaceAll;
| |
| }
| |
| r = s.Replace('(</p>)([^\n]|$)', '\\1\\n\\2', fl);
| |
| Redraw = true;
| |
| }
| |
| // - ------------------------ --------------------------------------------------
| |
| </source>
| |