「ルビとrubyタグ」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Inuuik (トーク | 投稿記録)
編集の要約なし
Inuuik (トーク | 投稿記録)
ページの白紙化
 
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>

2013年1月15日 (火) 00:11時点における最新版

スポンサーリンク