利用者:Hideki2009/jastyleplus.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
// jastyle
// <nowiki><pre>
var jastyle_version = '0.7.0.1 改';
jastyle_autostyle_namespaces = [ '', 'Category', 'Template', 'Portal', 'Help', 'Wikipedia', 'User', 'File' ];
//if(!window.$$) document.writeln('<script type="text/javascript" src="http://linky.wikipedia.jp/javascripts/prototype.js"><\/script>');
function jastyle() {
var styledont = document.getElementById('dontstyle');
var stylehard = document.getElementById('hardstyle');
var stylespace = document.getElementById('spacestyle');
// 「使用しない」にチェックがついていたら処理を抜ける
if(styledont && styledont.checked) return;
var strips = new Array();
var edit = document.getElementById('wpTextbox1');
var tmp = edit.value.
// 特殊文字
replace(//g, ''). //Unicode 0x200E
replace(//g, ''). //Unicode
replace(//g, ''). //Unicode
replace(//g, ''). //Unicode
replace(//g, ''). //Unicode
// CRLF
replace(/\r*\n|\r/g, '\n').
replace(/\|-\n/g, '|-\n').
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(/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(/0/g,'0').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').
// 救済
replace(/([A-Za-z0-9]).[ \s]*/g, '$1. ').
replace(/([A-Za-z0-9]),[ \s]*/g, '$1, ').
// 句読点・半角カナ
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, '゛').replace(/゚/g, '゜').
replace(/\[\[zh:(.*)・(.*)\]\]/g, '[[zh:$1·$2]]').
// 機種依存記号
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, '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, 'ミリ').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, 'mm').replace(/㎝/g, 'cm').replace(/㎞/g, 'km').
replace(/㎎/g, 'mg').replace(/㎏/g, 'kg').replace(/㏄/g, 'cc').
replace(/㎥/g, 'm³').replace(/㎡/g, 'm²').replace(/㍻/g, '平成').
replace(/〝/g, '「').replace(/〟/g, '」').replace(/№/g, 'No.').
replace(/㏍/g, 'K.K.').replace(/℡/g, 'Tel').replace(/㊤/g, '(上)').
replace(/㊥/g, '(中)').replace(/㊦/g, '(下)').replace(/㊧/g, '(左)').
replace(/㊨/g, '(右)').replace(/㈱/g, '(株)').replace(/㈲/g, '(有)').
replace(/㈹/g, '(代)').replace(/㍾/g, '明治').replace(/㍽/g, '大正').
replace(/㍼/g, '昭和').
// Wiki記法
//replace(/\s*\n-----*\s*/g, '\n----\n\n').
replace(/\{\{msg:/ig, '{{').
replace(/\{\{SERVER\}\}\{\{localurl:/ig, '{{fullurl:').
replace(/(\[\[:?)Category:/ig, '$1Category:').
replace(/\s*<\/?br\s*\/?>/ig, '<br />').
//replace(/\s*<\/?hr\s*\/?>\s*/ig, '\n----\n\n');
replace(/\s*<\/?hr\s*\/?>/ig, '<hr />');
// strip
tmp = tmp.replace(/<pre[^>]*?>(.|\n)*?<\/pre>/g,
function(str) {
var i = strips.length;
strips[i] = str;
return '<!--@@ jastyle-STRIP-' + i + ' @@-->';
});
// タグ
tmp = tmp.
replace(/<(\/)?([\w\-:]+)([^>]*)>/g, function(str, close, tagName, tagAttrs) {
var re = /([\w\-:]+)(\s*=\s*("([^"]+)"|'([^']+)'|([^\s"']+)))?\s*/g;
var emptyElement = '';
tagName = tagName.toLowerCase();
if(tagAttrs.match(/\/$/)) {
emptyElement = '/';
tagAttrs = tagAttrs.replace(/\/$/, '');
}
var attrs = $H(), match;
if(!close) {
while(match = re.exec(tagAttrs)) {
attrs[match[1].toLowerCase()] = match[2] ? (match[4] || match[5] || match[6]).unescapeHTML() : false;
}
}
attrs.style = (attrs.style || '').strip().replace(/[^;]$/, '$&;');
switch(tagName) {
//case 'center':
// tagName = 'div'; attrs.style += 'text-align:center;';
// break;
case 'table':
if(attrs.border === false) { attrs.frame = 'border'; delete attrs.border; }
break;
}
//attrs.style = attrs.style.replace(/;$/, '');
if(attrs.style === '') delete attrs.style;
return '<' + close + tagName +
attrs.collect(function(attr) {
return ' ' + attr.key + '="' + (attr.value || attr.key).escapeHTML() + '"';
}).join('') + emptyElement + '>';
});
// 行頭認識がいるもの
var lines = tmp.split('\n');
var out = '', pre_p = false;
for(var i = 0; i < lines.length; i++) {
tmp = lines[i];
// 「厳しくチェック」にチェックがついていたら処理
if(stylehard && stylehard.checked) {
tmp = tmp.
// 行頭の * : # ;
replace(/^([\*\:\#\;]+)[\s ]*/, '$1 ').
// REDIRECTだけ戻す
replace(/^# REDIRECT[^\[]*\[\[/i, '#REDIRECT[[');
}
tmp = tmp.
// 行頭の全角空白
replace(/^ +/g, '');
// // '''で終わる行を ; に置き換え
// replace(/^\'\'\'(.*?)\'\'\'$/, '; \'\'\'$1\'\'\'').
if(!tmp.match(/^ /)) {
tmp = tmp.
// 行末空白除去(<pre>中は除去しない)
replace(/[\s ]+$/, '').
// 全角空白除去(<pre>中は除去しない)
//replace(/[ ]+/g, ' ');
replace(/ (『|「)/g, '@@@@@@@@$1').
replace(/(」|』) /g, '$1@@@@@@@@').
replace(/[ ]+/g, ' ').
replace(/@@@@@@@@/g, ' ');
// 「連続空白除去」にチェックがついていたら処理
if(stylespace && stylespace.checked) {
tmp = tmp.
// 連続半角空白除去(<pre>中は除去しない)→TABは除去しない
//replace(/[ \t]+/g, ' ');
replace(/[ ]+/g, ' ');
}
pre_p = false;
} else if(tmp.match(/^[\s ]+$/) && !pre_p) {
// 孤立した空白のみの行
tmp = '';
} else {
pre_p = true;
}
// == ==
if(tmp.match(/^=.*[^=]=/)) {
tmp = tmp.
replace(/^(={1,5})[\s ]*/, '$1 ').
replace(/[\s ]*(={1,5})$/, ' $1');
tmp = tmp.
replace(/脚註/g, '脚注').
replace(/関連(記事|事項|用語)/g, '関連項目').
replace(/外部(参照)?((への)?リンク|サイト)|関連リンク/g, '外部リンク');
}
// interwiki
if(tmp.match(/^\[\[([a-z]{2,3}|fiu-vro|pt-br|roa-rup|simple|zh-min-nan):.*?\]\]$/)) {
tmp = decodeURI(tmp).
replace(/&#((x[\dA-Fa-f]+)|\d+);/ig,
function(str, dec, hex) {
var ch = hex ? parseInt("0" + hex) : parseInt(dec, 10);
return String.fromCharCode(ch);
}).
replace(/_/g, ' ');
}
out += tmp + '\n';
}
// 「厳しくチェック」にチェックがついていたら処理
if(stylehard && stylehard.checked) {
out = out.
// 二行以上の空行トルツメ
replace(/\n{3,}/g, '\n\n').
// 見出しの後の空行トルツメ
replace(/==\n+/g, '==\n').
// 見出しの前に空行を挿入
replace(/([^=\n])\n+==/g, '$1\n\n==');
}
out = out.
// 「undefined」を省く
replace(/undefined/g, '').
replace(/[\t]+/g, 'TABTAB').
replace(/\{\{Template\:/g, '{{').
replace(/<references\/>/g, '<references />').
replace(/<br\/>/g, '<br />').
replace(/([^ ])\/>/g, '$1 />').
replace(/^\s+/, '').replace(/\s+$/, '').
// Fight-contの救済
replace(/\{\{Fight-cont\|(-|ー)\|/g, '{{Fight-cont|-|').
replace(/\{\{Fight-cont\|(○|×|△|-)\|(.*?)\|(^ )(.*?)\}\}/g, '{{Fight-cont|$1|$2| $3$4}}').
replace(/\[\[ ?([^\]]*?) ?\| ?([^\[]*?) ?\]\]/g, '[[$1|$2]]').
// ウィキリンク内の空白を除去
replace(/\[ /g, '[').
replace(/ \]/g, ']').
// テンプレート内の空白を除去
replace(/\{ /g, '{').
replace(/ \}/g, '}').
// テレビ局
replace(/TV(番組|局|ドラマ)/g, 'テレビ$1').
replace(/\[\[(NHK)\]\]/g, '[[日本放送協会|$1]]').
replace(/\[\[(日本テレビ)\]\]/g, '[[日本テレビ放送網|$1]]').
replace(/\[\[(TBS)\]\]/g, '[[TBSテレビ|$1]]').
replace(/\[\[東京放送\|TBS\]\]/g, '[[TBSテレビ|TBS]]').
replace(/\[\[(.*)\|TBSテレビ\]\]/g, '[[TBSテレビ]]').
replace(/\[\[(東京放送)\]\]/g, '[[東京放送ホールディングス|$1]]').
replace(/\[\[(JNN)\]\]/g, '[[Japan News Network|$1]]').
replace(/\[\[(BS-i|ビーエスアイ|ビーエス・アイ)\]\]/g, '[[BS-TBS|$1]]').
replace(/\[\[ビーエス・ティービーエス\]\]/g, '[[BS-TBS]]').
replace(/\[\[(フジテレビ)\]\]/g, '[[フジテレビジョン|$1]]').
replace(/\[\[(NETテレビ|テレ朝|TV朝日|Tv asahi)\]\]/g, '[[テレビ朝日|$1]]').
replace(/\[\[(東海テレビ)\]\]/g, '[[東海テレビ放送|$1]]').
replace(/\[\[(サンテレビ)\]\]/g, '[[サンテレビジョン|$1]]').
replace(/\[\[(讀賣テレビ|読売テレビ)\]\]/g, '[[讀賣テレビ放送|$1]]').
replace(/\[\[(メ〜テレ)\]\]/g, '[[名古屋テレビ放送|$1]]').
// カタカナ→ひらがな
replace(/([ぁ-ん])ヘ([ぁ-ん])/g, '$1へ$2').
replace(/([ぁ-ん])ベ([ぁ-ん])/g, '$1べ$2').
replace(/([ぁ-ん])ペ([ぁ-ん])/g, '$1ぺ$2').
// ひらがな→カタカナ
replace(/([ァ-ヶー・「『])へ([ァ-ヶー・」』])/g, '$1ヘ$2').
replace(/([ァ-ヶー・])べ/g, '$1ベ').
replace(/([ァ-ヶー・])ぺ/g, '$1ペ').
replace(/へー([ァ-ヶ])/g, 'ヘー$1').
replace(/べ([ァ-ヶー・])/g, 'ベ$1').
replace(/ぺ([ァ-ヶー・])/g, 'ペ$1').
replace(/ホルへ/g, 'ホルヘ').
replace(/へビー/g, 'ヘビー').
replace(/へヴィ/g, 'ヘヴィ').
// 脚注スタイル
// 最短マッチ(*のあとの?)
//replace(/(。|、)<ref>(.*?)<\/ref>/g, '<ref>$2</ref>$1').
//replace(/(。|、)<ref name\=\"(.*)\">(.*?)<\/ref>/g, '<ref name="$2">$3</ref>$1').
//replace(/(。|、)<ref name\=\"(.*)\"( ?)\/>/g, '<ref name="$2" />$1').
replace(/<ref name>/g, '<ref>').
replace(/<ref name\=\"(.*)\"><\/ref>/g, '<ref name="$1" />').
replace(/<ref> /g, '<ref>').
replace(/<ref name=\"(.*)\"> /g, '<ref name="$1">').
replace(/ <\/ref>/g, '</ref>').
replace(/\[\n/g, '[').
replace(/\n\]/g, ']').
replace(/\n<ref>/g, '<ref>').
replace(/<ref>\n/g, '<ref>').
replace(/\n<\/ref>/g, '</ref>').
replace(/\n<div class=\"references-small\">\n?<references ?\/>\n?<\/div>\n/g, '\n{{Reflist}}\n').
replace(/\n<references *\/>\n/g, '\n{{Reflist}}\n').
replace(/\{\{reflist/g, '{{Reflist').
// 句読点前後の空白を除去
replace(/。 ([^-])/g, '。$1').
replace(/([^-]) 。/g, '$1。').
replace(/、 ([^-])/g, '、$1').
replace(/([^-]) 、/g, '$1、').
// DEFAULTSORT
//replace(/([^\]])\n\[\[Category:(.*)\|(.*)\]\]/g, '$1\n{{DEFAULTSORT:$3}}\n[[Category:$2]]').
//ミスで入力されたタグを除去
replace(/\{\{DEFAULTSORT\:\}\}/g, '').
replace(/\[\[Category\:\]\]/g, '').
replace(/#REDIRECT \[\[\]\]/g, '').
replace(/<sup><\/sup>/g, '').
replace(/<sub><\/sub>/g, '').
replace(/<ins><\/ins>/g, '').
replace(/<code><\/code>/g, '').
replace(/<blockquote><\/blockquote>/g, '').
replace(/<ref><\/ref>/g, '').
replace(/<includeonly><\/includeonly>/g, '').
replace(/<noinclude><\/noinclude>/g, '').
replace(/<gallery><\/gallery>/g, '').
replace(/\[\{\{fullurl\:\|\}\} \]/g, '').
replace(/([^:])\/\//g, '$1/').
replace(/。。/g, '。').
replace(/、、/g, '、').
replace(/、。/g, '。').
replace(/。、/g, '。').
replace(/- (\)|))は([^、])/g, '- $1は、$2').
// 年リンク間違いの修正
replace(/\[\[([1-2]\d{3})\]\]年/g, '[[$1年]]').
//replace(/(\[\[|\n)(Image|image|file):/g, '$1File:').
//replace(/(\[\[|\n)画像:/g, '$1ファイル:').
replace(/\n・/g, '\n* ').
//replace(/)-/g, ') -').
// 最短マッチ(*のあとの?)
replace(/”([^“]*?)”/g, '“$1”').
// <br/>→<br />
replace(/<\\br>/g, '<br />').
replace(/<br\\>/g, '<br />').
replace(/<br\.>/g, '<br />').
replace(/<br\/>/g, '<br />').
replace(/<br>/g, '<br />').
// テンプレート内の最後の空白を除去しない
replace(/\|( *)(.*) =\n/g, '|$1$2 = \n').
//テンプレート内の最後のBRを除去
//replace(/\|(.*)=(.*)<br \/>\n/g, '|$1=$2\n').
replace(/<br \/>\|/g, '|');
// </ref>が存在して<references />がなかったら、脚注項目追加
if(out.match(/<\/ref>/)) {
if(!out.match(/<references *\/>/) && !out.match(/\{\{Reflist/)) {
out = out + '\n\n== 脚注 ==\n{{Reflist}}\n';
}
}
// <references />が存在して</ref>がなかったら、脚注項目除去
//if(out.match(/<references *\/>/) || out.match(/\{\{Reflist/)) {
// if(!out.match(/<\/ref>/) && !out.match(/Taxonomist/)) {
// out = out.replace(/== 脚注 ==\n/g, '').
// replace(/\{\{脚注ヘルプ\}\}\n/g, '').
// replace(/\{\{Reflist\}\}\n/g, '').
// replace(/\n\n\n/g, '\n\n');
// }
//}
// [[Category:存命人物]]付与
if(out.match(/\[\[Category:\d{3,4}年生\]\]/)) {
if(!out.match(/\[\[Category:存命人物\]\]/) && !out.match(/\[\[Category:\d{3,4}年没\]\]/)) {
out = out.replace(/(\[\[Category:\d{3,4}年生\]\])/g, '$1\n[[Category:存命人物]]');
}
}
out = out.
replace(/\{\{(DEFAULTSORT|デフォルトソート):(.*)\}\}\n((.*\n)*)\n?\{\{(.*)stub\}\}\n?/g, '{{$5stub}}\n\n{{$1:$2}}\n$3').
//replace(/\{\{(DEFAULTSORT|デフォルトソート):(.*)\}\}\n(.*)\{\{(.*)stub\}\}/g, '{{$4stub}}\n$3{{$1:$2}}').
replace(/\[\[Category:(.*)\]\]\n*\{\{(.*)stub\}\}/g, '{{$2stub}}\n[[Category:$1]]').
replace(/\[\[Category:(.*)\]\]\[\[Category:(.*)\]\]/g, '[[Category:$1]]\n[[Category:$2]]').
replace(/\[\[Category:(.*)\]\]\n\n\[\[Category:(.*)\]\]/g, '[[Category:$1]]\n[[Category:$2]]').
replace(/\[\[Category:(.*)\]\]\n\n\n/g, '[[Category:$1]]\n\n');
// DEFAULTSORTの付与
if(!out.match(/(DEFAULTSORT|デフォルトソート)/)) {
//var sort_key = out.replace(/([^\]])\n\[\[Category:(.*)\|(.*)\]\]/g, '$3');
//reg1 = new RegExp('([^\]])\n\[\[Category:(.*)\|' + sort_key + '\]\]', 'g');
//reg2 = new RegExp('([\]])\n\[\[Category:(.*)\|' + sort_key + '\]\]', 'g');
//out = out.
//replace(reg1, '$1\n{{DEFAULTSORT:' + sort_key + '}}\n[[Category:$2]]').
//replace(reg2, '$1\n[[Category:$2]]');
//out = out.
//replace(/([^\]])\n\[\[Category:(.*)\|(.*)\]\]/, '$1\n{{DEFAULTSORT:$3}}\n[[Category:$2]]').
//replace(/([\]])\n\[\[Category:(.*)\|(.*)\]\]/g, '$1\n[[Category:$2]]');
out = out.
replace(/\[\[Category:(.*)\|([^\*].*)\]\]/, '{{DEFAULTSORT:$2}}\n[[Category:$1]]').
replace(/\[\[Category:(.*)\|([^\*].*)\]\]/g, '[[Category:$1]]');
}
out = out.
replace(/\{\{(DEFAULTSORT|デフォルトソート):(.*)\}\}(\n*)/g, '{{$1:$2}}\n').
replace(/([^\n])\n\{\{(DEFAULTSORT|デフォルトソート):(.*)\}\}/g, '$1\n\n{{$2:$3}}');
// unstrip
out = out.replace(/<!--@@ jastyle-STRIP-(\d+) @@-->/g,
function(str, n) { return strips[n]; });
edit.value = out + "\n";
return true;
}
$(function() {
var f = document.getElementById("editform");
if(!f) return;
var html = '';
//if($A(jastyle_autostyle_namespaces).include(wgCanonicalNamespace)) {
// Event.observe('editform', 'submit', jastyle);
//}
if (f.addEventListener) {
f.addEventListener("submit", jastyle, false);
} else if (f.attachEvent) {
f.attachEvent("onsubmit", jastyle);
}
// チェックボックス - 「使用しない」チェックをつけておく
html += '<label for="dontstyle"><input type="checkbox" id="dontstyle" value="1" checked />使用しない</label> ';
// チェックボックス - 「厳しくチェック」チェックをしない
html += '<label for="hardstyle"><input type="checkbox" id="hardstyle" value="1" />厳しくチェック</label> ';
// チェックボックス - 「連続空白除去」チェックをしない
html += '<label for="spacestyle"><input type="checkbox" id="spacestyle" value="1" />連続空白除去</label> ';
// 実行ボタン
html += '<button type="button" style="font-size:xx-small;" onclick="jastyle()">style</button>';
var sl = document.getElementById("wpSummaryLabel");
var p = document.createElement('p');
p.innerHTML = html;
sl.parentNode.insertBefore(p, sl);
});
// </pre></nowiki>