「Wikipediaマークアップ修正」の版間の差分
ナビゲーションに移動
検索に移動
テンプレートの置換処理からマジックリンクを分割 |
コメントの追加と修正 |
||
| 31行目: | 31行目: | ||
} | } | ||
// 選択した文章を取得 | |||
var s = sel.Text; | var s = sel.Text; | ||
// | // 文章の置換 | ||
fullwidth_space(); | fullwidth_space(); | ||
fullwidth_symbols(); | fullwidth_symbols(); | ||
| 55行目: | 56行目: | ||
footnotes(); | footnotes(); | ||
// 置換後の文章を取得 | |||
sel.Text = s; | sel.Text = s; | ||
// 全角空白 | // 1:全角空白 | ||
function fullwidth_space() { | function fullwidth_space() { | ||
s = s | s = s | ||
| 63行目: | 65行目: | ||
} | } | ||
// 全角記号 | // 2:全角記号 | ||
function fullwidth_symbols() { | function fullwidth_symbols() { | ||
s = s | s = s | ||
| 85行目: | 87行目: | ||
} | } | ||
// 全角英数 | // 3:全角英数 | ||
function fullwidth_alphanumeric_characters() { | function fullwidth_alphanumeric_characters() { | ||
s = s | s = s | ||
| 152行目: | 154行目: | ||
} | } | ||
// 半角カナ | // 4:半角カナ | ||
function halfwidth_kana() { | function halfwidth_kana() { | ||
s = s | s = s | ||
| 246行目: | 248行目: | ||
} | } | ||
// 約物 | // 5:約物 | ||
function punctuation_marks() { | function punctuation_marks() { | ||
s = s | s = s | ||
| 260行目: | 262行目: | ||
} | } | ||
// ローマ数字 | // 6:ローマ数字 | ||
function roman_numerals() { | function roman_numerals() { | ||
s = s | s = s | ||
| 289行目: | 291行目: | ||
} | } | ||
// 丸数字 | // 7:丸数字 | ||
function circled_numbers() { | function circled_numbers() { | ||
s = s | s = s | ||
| 344行目: | 346行目: | ||
} | } | ||
// テンプレート | // 8:テンプレート | ||
function templates() { | function templates() { | ||
s = s | s = s | ||
| 402行目: | 404行目: | ||
} | } | ||
// マジックリンク | // 9:マジックリンク | ||
function magic_links() { | function magic_links() { | ||
s = s | s = s | ||
| 410行目: | 412行目: | ||
} | } | ||
// 空白 | // 10:空白 | ||
function space() { | function space() { | ||
s = s | s = s | ||
| 425行目: | 427行目: | ||
} | } | ||
// 改行・空行 | // 11:改行・空行 | ||
function line_breaks_and_blank_lines() { | function line_breaks_and_blank_lines() { | ||
s = s | s = s | ||
| 437行目: | 439行目: | ||
} | } | ||
// 箇条書き | // 12:箇条書き | ||
function bullet_points() { | function bullet_points() { | ||
s = s | s = s | ||
| 451行目: | 453行目: | ||
} | } | ||
// 1行改行 | // 13:1行改行 | ||
function single_line_break() { | function single_line_break() { | ||
s = s | s = s | ||
| 462行目: | 464行目: | ||
} | } | ||
// 表・Infobox | // 14:表・Infobox | ||
function tables_and_infoboxes() { | function tables_and_infoboxes() { | ||
s = s | s = s | ||
| 471行目: | 473行目: | ||
} | } | ||
// タグ | // 15:タグ | ||
function tag() { | function tag() { | ||
s = s | s = s | ||
| 477行目: | 479行目: | ||
} | } | ||
// ウィキリンク | // 16:ウィキリンク | ||
function wikilinks() { | function wikilinks() { | ||
s = s | s = s | ||
| 483行目: | 485行目: | ||
} | } | ||
// リダイレクト | // 17:リダイレクト | ||
function redirect() { | function redirect() { | ||
s = s | s = s | ||
| 493行目: | 495行目: | ||
} | } | ||
// 注釈 | // 18:注釈 | ||
function notes() { | function notes() { | ||
s = s | s = s | ||
| 533行目: | 535行目: | ||
} | } | ||
// 出典 | // 19:出典 | ||
function references() { | function references() { | ||
s = s | s = s | ||
| 544行目: | 546行目: | ||
} | } | ||
// 脚注 | // 20:脚注 | ||
function footnotes() { | function footnotes() { | ||
s = s | s = s | ||
2026年3月12日 (木) 03:10時点における版
Wikipediaの記事を標準的なマークアップや表記方法で修正します。
構文ファイルのWikitextと併用すると便利です。
注意事項
- このマクロはウィキペディア日本語版の記事での動作を想定しています。他言語版や記事以外のページは動作対象外です。
- ソースコードをコピーする前にエディターの編集モードが「ソースの編集」になっていることを確認してください。もし、編集モードが「ビジュアル編集」になっている場合は、「ソースの編集」に切り替えてからソースコードをコピーしてください。
- 記事のソースコードの書き方によっては想定外の修正をしてしまう可能性がありますので、マクロを実行した後は必ずWikipedia上のプレビュー画面と差分画面の両方で問題がないことを確認してから投稿してください。
使用方法
- 修正したい記事の上部にある「編集」または「ソースを編集」ボタンをクリックして、ソースエディター内のソースコードを全選択してコピーした後、Meryにペーストします。
- 修正したいソースコードのタブがアクティブになっている状態でマクロを実行します。
- 修正したソースコードを全選択してコピーした後、ソースエディター内のソースコードを全選択した状態でペーストして上書きします。
- 「プレビューを表示」または「差分を表示」ボタンをクリックして、プレビュー画面または差分画面で修正箇所を確認します。問題がなければ、「編集内容の要約」に編集した内容の要約を記入した後、「変更を公開」ボタンをクリックして修正した記事を投稿します。
出典
ソースコード
#title = "Wikipediaマークアップ修正"
#tooltip = "Wikipediaのマークアップや表記を修正します。"
var sel = document.selection;
// 未選択なら全文選択
if (sel.Text == "") {
sel.SelectAll();
}
// 選択した文章を取得
var s = sel.Text;
// 文章の置換
fullwidth_space();
fullwidth_symbols();
fullwidth_alphanumeric_characters();
halfwidth_kana();
punctuation_marks();
roman_numerals();
circled_numbers();
templates();
magic_links();
space();
line_breaks_and_blank_lines();
bullet_points();
single_line_break();
tables_and_infoboxes();
tag();
wikilinks();
redirect();
notes();
references();
footnotes();
// 置換後の文章を取得
sel.Text = s;
// 1:全角空白
function fullwidth_space() {
s = s
.replace(/ /g, ' ');
}
// 2:全角記号
function fullwidth_symbols() {
s = s
.replace(/$/g, '$')
.replace(/%/g, '%')
.replace(/&/g, '&')
.replace(/*/g, '*')
.replace(/+/g, '+')
.replace(/,/g, ',')
.replace(/-/g, '-')
.replace(/./g, '.')
.replace(///g, '/')
.replace(/;/g, ';')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/@/g, '@')
.replace(/¥/g, '\\')
.replace(/^/g, '^')
.replace(/_/g, '_')
.replace(/`/g, '`');
}
// 3:全角英数
function fullwidth_alphanumeric_characters() {
s = s
.replace(/0/g, '0')
.replace(/1/g, '1')
.replace(/2/g, '2')
.replace(/3/g, '3')
.replace(/4/g, '4')
.replace(/5/g, '5')
.replace(/6/g, '6')
.replace(/7/g, '7')
.replace(/8/g, '8')
.replace(/9/g, '9')
.replace(/A/g, 'A')
.replace(/B/g, 'B')
.replace(/C/g, 'C')
.replace(/D/g, 'D')
.replace(/E/g, 'E')
.replace(/F/g, 'F')
.replace(/G/g, 'G')
.replace(/H/g, 'H')
.replace(/I/g, 'I')
.replace(/J/g, 'J')
.replace(/K/g, 'K')
.replace(/L/g, 'L')
.replace(/M/g, 'M')
.replace(/N/g, 'N')
.replace(/O/g, 'O')
.replace(/P/g, 'P')
.replace(/Q/g, 'Q')
.replace(/R/g, 'R')
.replace(/S/g, 'S')
.replace(/T/g, 'T')
.replace(/U/g, 'U')
.replace(/V/g, 'V')
.replace(/W/g, 'W')
.replace(/X/g, 'X')
.replace(/Y/g, 'Y')
.replace(/Z/g, 'Z')
.replace(/a/g, 'a')
.replace(/b/g, 'b')
.replace(/c/g, 'c')
.replace(/d/g, 'd')
.replace(/e/g, 'e')
.replace(/f/g, 'f')
.replace(/g/g, 'g')
.replace(/h/g, 'h')
.replace(/i/g, 'i')
.replace(/j/g, 'j')
.replace(/k/g, 'k')
.replace(/l/g, 'l')
.replace(/m/g, 'm')
.replace(/n/g, 'n')
.replace(/o/g, 'o')
.replace(/p/g, 'p')
.replace(/q/g, 'q')
.replace(/r/g, 'r')
.replace(/s/g, 's')
.replace(/t/g, 't')
.replace(/u/g, 'u')
.replace(/v/g, 'v')
.replace(/w/g, 'w')
.replace(/x/g, 'x')
.replace(/y/g, 'y')
.replace(/z/g, 'z');
}
// 4:半角カナ
function halfwidth_kana() {
s = s
.replace(/。/g, '。')
.replace(/「/g, '「')
.replace(/」/g, '」')
.replace(/、/g, '、')
.replace(/・/g, '・')
.replace(/ガ/g, 'ガ')
.replace(/ギ/g, 'ギ')
.replace(/グ/g, 'グ')
.replace(/ゲ/g, 'ゲ')
.replace(/ゴ/g, 'ゴ')
.replace(/ザ/g, 'ザ')
.replace(/ジ/g, 'ジ')
.replace(/ズ/g, 'ズ')
.replace(/ゼ/g, 'ゼ')
.replace(/ゾ/g, 'ゾ')
.replace(/ダ/g, 'ダ')
.replace(/ヂ/g, 'ヂ')
.replace(/ヅ/g, 'ヅ')
.replace(/デ/g, 'デ')
.replace(/ド/g, 'ド')
.replace(/バ/g, 'バ')
.replace(/ビ/g, 'ビ')
.replace(/ブ/g, 'ブ')
.replace(/ベ/g, 'ベ')
.replace(/ボ/g, 'ボ')
.replace(/パ/g, 'パ')
.replace(/ピ/g, 'ピ')
.replace(/プ/g, 'プ')
.replace(/ペ/g, 'ペ')
.replace(/ポ/g, 'ポ')
.replace(/ヴ/g, 'ヴ')
.replace(/ヲ/g, 'ヲ')
.replace(/ァ/g, 'ァ')
.replace(/ィ/g, 'ィ')
.replace(/ゥ/g, 'ゥ')
.replace(/ェ/g, 'ェ')
.replace(/ォ/g, 'ォ')
.replace(/ャ/g, 'ャ')
.replace(/ュ/g, 'ュ')
.replace(/ョ/g, 'ョ')
.replace(/ッ/g, 'ッ')
.replace(/ー/g, 'ー')
.replace(/ア/g, 'ア')
.replace(/イ/g, 'イ')
.replace(/ウ/g, 'ウ')
.replace(/エ/g, 'エ')
.replace(/オ/g, 'オ')
.replace(/カ/g, 'カ')
.replace(/キ/g, 'キ')
.replace(/ク/g, 'ク')
.replace(/ケ/g, 'ケ')
.replace(/コ/g, 'コ')
.replace(/サ/g, 'サ')
.replace(/シ/g, 'シ')
.replace(/ス/g, 'ス')
.replace(/セ/g, 'セ')
.replace(/ソ/g, 'ソ')
.replace(/タ/g, 'タ')
.replace(/チ/g, 'チ')
.replace(/ツ/g, 'ツ')
.replace(/テ/g, 'テ')
.replace(/ト/g, 'ト')
.replace(/ナ/g, 'ナ')
.replace(/ニ/g, 'ニ')
.replace(/ヌ/g, 'ヌ')
.replace(/ネ/g, 'ネ')
.replace(/ノ/g, 'ノ')
.replace(/ハ/g, 'ハ')
.replace(/ヒ/g, 'ヒ')
.replace(/フ/g, 'フ')
.replace(/ヘ/g, 'ヘ')
.replace(/ホ/g, 'ホ')
.replace(/マ/g, 'マ')
.replace(/ミ/g, 'ミ')
.replace(/ム/g, 'ム')
.replace(/メ/g, 'メ')
.replace(/モ/g, 'モ')
.replace(/ヤ/g, 'ヤ')
.replace(/ユ/g, 'ユ')
.replace(/ヨ/g, 'ヨ')
.replace(/ラ/g, 'ラ')
.replace(/リ/g, 'リ')
.replace(/ル/g, 'ル')
.replace(/レ/g, 'レ')
.replace(/ロ/g, 'ロ')
.replace(/ワ/g, 'ワ')
.replace(/ン/g, 'ン')
.replace(/゙/g, '゛')
.replace(/゚/g, '゜');
}
// 5:約物
function punctuation_marks() {
s = s
.replace(/。。。|、、、/g, '…')
.replace(/・・・/g, '…')
.replace(/!!/g, '!!')
.replace(/!?/g, '!?')
.replace(/?!/g, '?!')
.replace(/??/g, '??')
.replace(/([^\/])(~|~)/g, '$1〜') //全角チルダ(U+FF5E)やチルダ(U+007E)を波ダッシュ(U+301C)に変更
.replace(/‥/g, '…')
.replace(/〇|◯/g, '○'); //漢数字のゼロ「〇」や大きな丸「◯」を丸「○」に変更
}
// 6:ローマ数字
function roman_numerals() {
s = s
.replace(/Ⅰ/g, 'I')
.replace(/Ⅱ/g, 'II')
.replace(/Ⅲ/g, 'III')
.replace(/Ⅳ/g, 'IV')
.replace(/Ⅴ/g, 'V')
.replace(/Ⅵ/g, 'VI')
.replace(/Ⅶ/g, 'VII')
.replace(/Ⅷ/g, 'VIII')
.replace(/Ⅸ/g, 'IX')
.replace(/Ⅹ/g, 'X')
.replace(/Ⅺ/g, 'XI')
.replace(/Ⅻ/g, 'XII')
.replace(/ⅰ/g, 'i')
.replace(/ⅱ/g, 'ii')
.replace(/ⅲ/g, 'iii')
.replace(/ⅳ/g, 'iv')
.replace(/ⅴ/g, 'v')
.replace(/ⅵ/g, 'vi')
.replace(/ⅶ/g, 'vii')
.replace(/ⅷ/g, 'viii')
.replace(/ⅸ/g, 'ix')
.replace(/ⅹ/g, 'x')
.replace(/ⅺ/g, 'xi')
.replace(/ⅻ/g, 'xii');
}
// 7:丸数字
function circled_numbers() {
s = s
.replace(/①/g, '(1)')
.replace(/②/g, '(2)')
.replace(/③/g, '(3)')
.replace(/④/g, '(4)')
.replace(/⑤/g, '(5)')
.replace(/⑥/g, '(6)')
.replace(/⑦/g, '(7)')
.replace(/⑧/g, '(8)')
.replace(/⑨/g, '(9)')
.replace(/⑩/g, '(10)')
.replace(/⑪/g, '(11)')
.replace(/⑫/g, '(12)')
.replace(/⑬/g, '(13)')
.replace(/⑭/g, '(14)')
.replace(/⑮/g, '(15)')
.replace(/⑯/g, '(16)')
.replace(/⑰/g, '(17)')
.replace(/⑱/g, '(18)')
.replace(/⑲/g, '(19)')
.replace(/⑳/g, '(20)')
.replace(/㉑/g, '(21)')
.replace(/㉒/g, '(22)')
.replace(/㉓/g, '(23)')
.replace(/㉔/g, '(24)')
.replace(/㉕/g, '(25)')
.replace(/㉖/g, '(26)')
.replace(/㉗/g, '(27)')
.replace(/㉘/g, '(28)')
.replace(/㉙/g, '(29)')
.replace(/㉚/g, '(30)')
.replace(/㉛/g, '(31)')
.replace(/㉜/g, '(32)')
.replace(/㉝/g, '(33)')
.replace(/㉞/g, '(34)')
.replace(/㉟/g, '(35)')
.replace(/㊱/g, '(36)')
.replace(/㊲/g, '(37)')
.replace(/㊳/g, '(38)')
.replace(/㊴/g, '(39)')
.replace(/㊵/g, '(40)')
.replace(/㊶/g, '(41)')
.replace(/㊷/g, '(42)')
.replace(/㊸/g, '(43)')
.replace(/㊹/g, '(44)')
.replace(/㊺/g, '(45)')
.replace(/㊻/g, '(46)')
.replace(/㊼/g, '(47)')
.replace(/㊽/g, '(48)')
.replace(/㊾/g, '(49)')
.replace(/㊿/g, '(50)');
}
// 8:テンプレート
function templates() {
s = s
.replace(/{{a/g, '{{A')
.replace(/{{b/g, '{{B')
.replace(/{{c/g, '{{C')
.replace(/{{d/g, '{{D')
.replace(/{{e/g, '{{E')
.replace(/{{f/g, '{{F')
.replace(/{{g/g, '{{G')
.replace(/{{h/g, '{{H')
.replace(/{{i/g, '{{I')
.replace(/{{j/g, '{{J')
.replace(/{{k/g, '{{K')
.replace(/{{l/g, '{{L')
.replace(/{{m/g, '{{M')
.replace(/{{n/g, '{{N')
.replace(/{{o/g, '{{O')
.replace(/{{p/g, '{{P')
.replace(/{{q/g, '{{Q')
.replace(/{{r/g, '{{R')
.replace(/{{s/g, '{{S')
.replace(/{{t/g, '{{T')
.replace(/{{u/g, '{{U')
.replace(/{{v/g, '{{V')
.replace(/{{w/g, '{{W')
.replace(/{{x/g, '{{X')
.replace(/{{y/g, '{{Y')
.replace(/{{z/g, '{{Z')
.replace(/{{Tl\|a/g, '{{Tl|A')
.replace(/{{Tl\|b/g, '{{Tl|B')
.replace(/{{Tl\|c/g, '{{Tl|C')
.replace(/{{Tl\|d/g, '{{Tl|D')
.replace(/{{Tl\|e/g, '{{Tl|E')
.replace(/{{Tl\|f/g, '{{Tl|F')
.replace(/{{Tl\|g/g, '{{Tl|G')
.replace(/{{Tl\|h/g, '{{Tl|H')
.replace(/{{Tl\|i/g, '{{Tl|I')
.replace(/{{Tl\|j/g, '{{Tl|J')
.replace(/{{Tl\|k/g, '{{Tl|K')
.replace(/{{Tl\|l/g, '{{Tl|L')
.replace(/{{Tl\|m/g, '{{Tl|M')
.replace(/{{Tl\|n/g, '{{Tl|N')
.replace(/{{Tl\|o/g, '{{Tl|O')
.replace(/{{Tl\|p/g, '{{Tl|P')
.replace(/{{Tl\|q/g, '{{Tl|Q')
.replace(/{{Tl\|r/g, '{{Tl|R')
.replace(/{{Tl\|s/g, '{{Tl|S')
.replace(/{{Tl\|t/g, '{{Tl|T')
.replace(/{{Tl\|u/g, '{{Tl|U')
.replace(/{{Tl\|v/g, '{{Tl|V')
.replace(/{{Tl\|w/g, '{{Tl|W')
.replace(/{{Tl\|x/g, '{{Tl|X')
.replace(/{{Tl\|y/g, '{{Tl|Y')
.replace(/{{Tl\|z/g, '{{Tl|Z')
.replace(/{{デフォルトソート:/g, '{{DEFAULTSORT:');
}
// 9:マジックリンク
function magic_links() {
s = s
.replace(/ISBN ([\d\-X]{10,17})/g, '{{ISBN2|$1}}')
.replace(/PMID ([\d]{1,8})/g, '{{PMID|$1}}')
.replace(/RFC ([\d]{1,4})/g, '{{IETF RFC|$1}}');
}
// 10:空白
function space() {
s = s
.replace(/ {2,}/g, ' ') //連続する空白を除去
.replace(/([^=\-\|]) $/gm, '$1') //行末の空白を除去
.replace(/ 。/g, '。') //句点の前の空白を除去
.replace(/([^\-]) 、/g, '$1、') //読点の前の空白を除去
.replace(/。 ([^#\-\|].*?)。/g, '。$1。') //句点の後の空白を除去(1周目)
.replace(/。 ([^#\-\|].*?)。/g, '。$1。') //句点の後の空白を除去(2周目)
.replace(/、 ([^\-].*?)、/g, '、$1、') //読点の後の空白を除去(1周目)
.replace(/、 ([^\-].*?)、/g, '、$1、') //読点の後の空白を除去(2周目)
.replace(/、 ([^\-].*?)。/g, '、$1。') //読点の後の空白を除去
.replace(/(==+)( ?)(.*?)( ?)(==+)/g, '$1 $3 $5'); //見出しに空白を追加
}
// 11:改行・空行
function line_breaks_and_blank_lines() {
s = s
.replace(/\n{3,}/g, '\n\n') //2行以上の空行をトルツメ
.replace(/==\n\n/g, '==\n') //見出しの後の空行をトルツメ
.replace(/([^=\n])\n==/g, '$1\n\n==') //見出しの前に空行を挿入
.replace(/\n\n(===+) 注釈 (===+)/g, '\n$1 注釈 $2') //レベル3以降の注釈見出しの前の空行をトルツメ
.replace(/\n\n(===+) 出典 (===+)/g, '\n$1 出典 $2') //レベル3以降の出典見出しの前の空行をトルツメ
.replace(/\[\[File:/g, '[[ファイル:') //[[ファイル:に変更
.replace(/([^\n =\|>])\[\[ファイル:/g, '$1\n[[ファイル:'); //[[ファイル:の前に改行を追加
}
// 12:箇条書き
function bullet_points() {
s = s
.replace(/^(\*+|#+|:+\*|:+#)([^ \*#:;].*?)/gm, '$1 $2') //箇条書きのあとに空白を追加
.replace(/^(;|:+;)([^ ].*?)/gm, '$1 $2') //定義の箇条書き(;)のあとに空白を追加
.replace(/^(:+)([^ \*#:;<\n].*?)/gm, '$1 $2') //定義の箇条書き(:)のあとに空白を追加
.replace(/^([^=\*#:;].*?。)\n(\*|#|;|:)/gm, '$1\n\n$2') //文章と箇条書きの間に空行を挿入
.replace(/^(\*|#|;|:)(.*?)\n([^\n=\*#:;].*?。)/gm, '$1$2\n\n$3') //箇条書きと文章の間に空行を挿入
.replace(/^(\*)(.*?)\n\n(\*|#|:)/gm, '$1$2\n$3') //箇条書きと箇条書きの間の空行をトルツメ(1周目)
.replace(/^(\*)(.*?)\n\n(\*|#|:)/gm, '$1$2\n$3') //箇条書きと箇条書きの間の空行をトルツメ(2周目)
.replace(/^(#|;|:)(.*?)\n\n(\*|#|;|:)/gm, '$1$2\n$3') //箇条書きと箇条書きの間の空行をトルツメ(1周目)
.replace(/^(#|;|:)(.*?)\n\n(\*|#|;|:)/gm, '$1$2\n$3'); //箇条書きと箇条書きの間の空行をトルツメ(2周目)
}
// 13:1行改行
function single_line_break() {
s = s
.replace(/。\n([^\n\*#;:<\|].*?)。/g, '。$1。') //句点の後の1行改行をトルツメ(1周目)
.replace(/。\n([^\n\*#;:<\|].*?)。/g, '。$1。') //句点の後の1行改行をトルツメ(2周目)
.replace(/、\n([^\n\*#;:].*?)/g, '、$1') //読点の後の1行改行をトルツメ(1周目)
.replace(/、\n([^\n\*#;:].*?)/g, '、$1') //読点の後の1行改行をトルツメ(2周目)
.replace(/<br \/>\n([^\n\*#;:].*?)/g, '<br />$1') //改行タグの後の1行改行をトルツメ(1周目)
.replace(/<br \/>\n([^\n\*#;:].*?)/g, '<br />$1'); //改行タグの後の1行改行をトルツメ(2周目)
}
// 14:表・Infobox
function tables_and_infoboxes() {
s = s
.replace(/^\|(.*?)\n\n\|/gm, '|$1\n|') //行頭のバーティカルバーと次の行頭のバーティカルバーの間の空行をトルツメ(1周目)
.replace(/^\|(.*?)\n\n\|/gm, '|$1\n|') //行頭のバーティカルバーと次の行頭のバーティカルバーの間の空行をトルツメ(2周目)
.replace(/^!(.*?)\n\n!/gm, '!$1\n!') //行頭の感嘆符と次の行頭の感嘆符の間の空行をトルツメ(1周目)
.replace(/^!(.*?)\n\n!/gm, '!$1\n!'); //行頭の感嘆符と次の行頭の感嘆符の間の空行をトルツメ(2周目)
}
// 15:タグ
function tag() {
s = s
.replace(/<br( ?)>|<br\/>/g, '<br />');
}
// 16:ウィキリンク
function wikilinks() {
s = s
.replace(/\[\[(カテゴリ|category):/g, '[[Category:');
}
// 17:リダイレクト
function redirect() {
s = s
.replace(/# REDIRECT/g, '#REDIRECT')
.replace(/# redirect/g, '#redirect')
.replace(/# 転送/g, '#転送')
.replace(/#redirect|#転送/g, '#REDIRECT')
.replace(/#REDIRECT( ?)\[\[/g, '#REDIRECT [[');
}
// 18:注釈
function notes() {
s = s
.replace(/group( ?)=( ?)("?)(注釈|注|†|※|\*)("?)/g, 'group="注"') //group="注"に変更
.replace(/{{#tag:ref/g, '{{Refnest') //{{Refnestに変更
.replace(/([^\n]){{Refnest\|/g, '$1\n{{Refnest|') //{{Refnest|の前に改行を追加
.replace(/{{Refnest\|(.*?)\|group="注"\|name( ?)=( ?)([^"].*?)( ?)}}/g, '{{Refnest|$1|group="注"|name="$4"}}') //name引数に二重引用符を追加
.replace(/{{Refnest\|(.*?)\|name( ?)=( ?)([^"].*?)( ?)\|group="注"}}/g, '{{Refnest|$1|name="$4"|group="注"}}') //name引数に二重引用符を追加
.replace(/{{Refnest\|group="注"\|(.*?)\|name( ?)=( ?)([^"].*?)( ?)}}/g, '{{Refnest|group="注"|$1|name="$4"}}') //name引数に二重引用符を追加
.replace(/{{Refnest\|name( ?)=( ?)([^"].*?)( ?)\|(.*?)\|group="注"}}/g, '{{Refnest|name="$3"|$5|group="注"}}') //name引数に二重引用符を追加
.replace(/{{Refnest\|group="注"( ?)\|name( ?)=( ?)([^"].*?)( ?)\|/g, '{{Refnest|group="注"|name="$4"|') //name引数に二重引用符を追加
.replace(/{{Refnest\|name( ?)=( ?)([^"].*?)( ?)\|group="注"( ?)\|/g, '{{Refnest|name="$3"|group="注"|') //name引数に二重引用符を追加
.replace(/{{Refnest\|(.*?)\|group="注"\|name=(.*?)}}/g, '{{Efn2|name=$2|$1}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/{{Refnest\|(.*?)\|name=(.*?)\|group="注"}}/g, '{{Efn2|name=$2|$1}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/{{Refnest\|group="注"\|(.*?)\|name=(.*?)}}/g, '{{Efn2|name=$2|$1}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/{{Refnest\|name=(.*?)\|(.*?)\|group="注"}}/g, '{{Efn2|name=$1|$2}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/{{Refnest\|group="注"\|name=(.*?)\|/g, '{{Efn2|name=$1|') //{{Efn2|name="○○"|に変更
.replace(/{{Refnest\|name=(.*?)\|group="注"\|/g, '{{Efn2|name=$1|') //{{Efn2|name="○○"|に変更
.replace(/{{Refnest\|(.*?)\|group="注"}}/g, '{{Efn2|$1}}') //{{Efn2|○○}}に変更
.replace(/{{Refnest\|group="注"( ?)\|/g, '{{Efn2|') //{{Efn2|に変更
.replace(/{{Refnest/g, '{{Efn2') //{{Efn2に変更
.replace(/{{Efn\|/g, '{{Efn2|') //{{Efn2|に変更
.replace(/([^\n]){{Efn2\|/g, '$1\n{{Efn2|') //{{Efn2|の前に改行を追加
.replace(/{{Efn2\|(.*?)\|name( ?)=( ?)([^"].*?)( ?)}}/g, '{{Efn2|$1|name="$4"}}') //name引数に二重引用符を追加
.replace(/{{Efn2\|name( ?)=( ?)([^"].*?)( ?)(\||})/g, '{{Efn2|name="$3"$5') //name引数に二重引用符を追加
.replace(/{{Efn2\|(.*?)\|name=(.*?)}}/g, '{{Efn2|name=$2|$1}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/([^\n])<ref([>| ])/g, '$1\n<ref$2') //<ref>の前に改行を追加
.replace(/<ref group="注" name( ?)=( ?)([^"].*?)( ?)>(.*?)<\/ref>/g, '<ref group="注" name="$3">$5</ref>') //name引数に二重引用符を追加
.replace(/<ref name( ?)=( ?)([^"].*?) group="注">(.*?)<\/ref>/g, '<ref name="$3" group="注">$4</ref>') //name引数に二重引用符を追加
.replace(/<ref group="注" name( ?)=( ?)([^"].*?)( ?)\/>/g, '<ref group="注" name="$3" />') //name引数に二重引用符を追加
.replace(/<ref name( ?)=( ?)([^"].*?) group="注"( ?)\/>/g, '<ref name="$3" group="注" />') //name引数に二重引用符を追加
.replace(/<ref group="注"( ?)name=(".*?")>(.*?)<\/ref>/g, '{{Efn2|name=$2|$3}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/<ref name=(".*?")( ?)group="注">(.*?)<\/ref>/g, '{{Efn2|name=$1|$3}}') //{{Efn2|name="○○"|○○}}に変更
.replace(/<ref group="注"( ?)name( ?)=( ?)(".*?")( ?)\/>/g, '{{Efn2|name=$4}}') //{{Efn2|name="○○"}}に変更
.replace(/<ref name( ?)=( ?)(".*?")( ?)group="注"( ?)\/>/g, '{{Efn2|name=$3}}') //{{Efn2|name="○○"}}に変更
.replace(/<ref group="注"( ?)>(.*?)<\/ref>/g, '{{Efn2|$2}}') //{{Efn2|○○}}に変更
.replace(/([^\n])\n<ref([>| ])/g, '$1<ref$2') //<ref>の前の改行を除去
.replace(/([^\n])\n{{Efn2\|/g, '$1{{Efn2|'); //{{Efn2|の前の改行を除去
}
// 19:出典
function references() {
s = s
.replace(/([^\n])<ref([>| ])/g, '$1\n<ref$2') //<ref>の前に改行を追加
.replace(/<ref name( ?)=( ?)([^"].*?)( ?)>(.*?)<\/ref>/g, '<ref name="$3">$5</ref>') //name引数に二重引用符を追加
.replace(/<ref name( ?)=( ?)([^"].*?)( ?)\/>/g, '<ref name="$3" />') //name引数に二重引用符を追加
.replace(/<ref name( ?)=( ?)"(.*?)"( ?)\/>/g, '{{R|$3}}') //{{R|○○}}に変更
.replace(/([^\n])\n<ref([>| ])/g, '$1<ref$2') //<ref>の前の改行を除去
.replace(/([^\n])\n{{R\|/g, '$1{{R|'); //{{R|の前の改行を除去
}
// 20:脚注
function footnotes() {
s = s
.replace(/<references( ?)\/>/g, '{{Reflist}}')
.replace(/<references group="注"( ?)\/>/g, '{{Notelist2}}')
.replace(/{{Reflist\|\|group="注"}}/g, '{{Reflist|group="注"|}}')
.replace(/{{Reflist\|([0-9])\|group="注"}}/g, '{{Reflist|group="注"|$1}}')
.replace(/{{Reflist\|colwidth=/g, '{{Reflist|')
.replace(/{{Reflist\|em\|group="注"}}/g, '{{Reflist|group="注"|em}}')
.replace(/{{Reflist\|([0-9]|[1-9][0-9])em\|group="注"}}/g, '{{Reflist|group="注"|$1em}}')
.replace(/{{Reflist\|group="注"}}/g, '{{Notelist2}}')
.replace(/{{Reflist\|group="注"\|/g, '{{Notelist2|')
.replace(/{{Notelist}}/g, '{{Notelist2}}')
.replace(/{{Notelist\|/g, '{{Notelist2|')
.replace(/list\|colwidth=/g, 'list|')
.replace(/list2\|colwidth=/g, 'list2|')
.replace(/{{Reflist\|}}/g, '{{Reflist}}')
.replace(/{{Reflist\|[0-1]}}/g, '{{Reflist}}')
.replace(/{{Reflist\|2}}/g, '{{Reflist|30em}}')
.replace(/{{Reflist\|[3-9]}}/g, '{{Reflist|20em}}')
.replace(/{{Notelist2\|}}/g, '{{Notelist2}}')
.replace(/{{Notelist2\|[0-1]}}/g, '{{Notelist2}}')
.replace(/{{Notelist2\|2}}/g, '{{Notelist2|30em}}')
.replace(/{{Notelist2\|[3-9]}}/g, '{{Notelist2|20em}}')
.replace(/{{Reflist\|em}}/g, '{{Reflist}}')
.replace(/{{Reflist\|([0-9]|1?[0-9]|2?[0-4])em}}/g, '{{Reflist|20em}}')
.replace(/{{Reflist\|(2?[5-9]|[3-9][0-9])em}}/g, '{{Reflist|30em}}')
.replace(/{{Notelist2\|em}}/g, '{{Notelist2}}')
.replace(/{{Notelist2\|([0-9]|1?[0-9]|2?[0-4])em}}/g, '{{Notelist2|20em}}')
.replace(/{{Notelist2\|(2?[5-9]|[3-9][0-9])em}}/g, '{{Notelist2|30em}}');
}
スポンサーリンク