「ルビとrubyタグ」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
編集の要約なし |
||
| 1行目: | 1行目: | ||
Mery エディタ マクロ: ルビとrubyタグ | Mery エディタ マクロ: ルビとrubyタグ ( inuuik ) | ||
<pre> | <pre> | ||
青空文庫形式の 括弧囲みのルビ と rubyタグ を置換 | 青空文庫形式の 括弧囲みのルビ と rubyタグ を置換 | ||
2012年10月12日 (金) 23:53時点における版
Mery エディタ マクロ: ルビとrubyタグ ( inuuik )
青空文庫形式の 括弧囲みのルビ と rubyタグ を置換
○ 青空文庫形式:
日本語の文は旧|漢字《かんじ》にルビを振る
※ ルビを二重山括弧《ルビ》で囲み、
あいまいなら、ルビを振る漢字の先頭に縦線|を付加
関連する編集のために、つぎのようなマクロを組み合せて使う。
ルビの括弧をrubyタグに (置換)
ルビのrubyタグを括弧に (置換)
傍点の[#「.」に傍点]をrubyタグに (置換)
傍点のrubyタグを[#「.」に傍点]に (置換)
改行をpタグの組に (置換)
改行をp終了タグに (付加)
※ マクロitokusu_rubyTagRepl: ファイル:itokusu rubyTagRepl.zip
ルビの括弧を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キーを押しながらファイル名をクリックで、登録しようと している複数のマクロをすべて選択してから - 開く。 必要ならば、 ツール - オプション - キーボード の マクロ で 空いているキー に割り当て。
// - 糸くす~------------------------------------- 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;
}
// - ------------------------ --------------------------------------------------
// - 糸くす~------------------------------------- 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;
}
// - ------------------------ --------------------------------------------------
// - 糸くす~------------------------------------- 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;
}
// - ------------------------ --------------------------------------------------
// - 糸くす~------------------------------------- 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;
}
// - ------------------------ --------------------------------------------------
// - 糸くす~------------------------------------- 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;
}
// - ------------------------ --------------------------------------------------
// - 糸くす~------------------------------------- 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;
}
// - ------------------------ --------------------------------------------------
スポンサーリンク