利用者:Suisui/jastyle.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
// jastyle varjastyle_version='0.5.1'; functioninstall_jastyle(){ varf=document.getElementById("editform"); if(!f)return; varhtml=''; if(/ns-0/.test(document.body.className)){ if(f.addEventListener)f.addEventListener("submit",jastyle,false); elseif(f.attachEvent)f.attachEvent("onsubmit",jastyle); html+='<label for="dontstyle"><input type="checkbox" id="dontstyle" value="1">disable autostyle</label>'; } html+='<button type="button" onclick="jastyle()">style</button>'; html+=' (jastyle version '+jastyle_version+')'; varp=document.createElement('p'); p.innerHTML=html; f.parentNode.insertBefore(p,f); } functionjastyle(){ vardont=document.getElementById('dontstyle'); if(dont&&dont.checked)return; varstrips=newArray(); varedit=document.getElementById('wpTextbox1'); vartmp=edit.value. // CRLF replace(/\r*\n|\r/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(/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(/10/g,'(10)').replace(/11/g,'(11)').replace(/12/g,'(12)'). replace(/13/g,'(13)').replace(/14/g,'(14)').replace(/15/g,'(15)'). replace(/16/g,'(16)').replace(/17/g,'(17)').replace(/18/g,'(18)'). replace(/19/g,'(19)').replace(/20/g,'(20)'). replace(/I/g,'I').replace(/II/g,'II').replace(/III/g,'III'). replace(/IV/g,'IV').replace(/V/g,'V').replace(/VI/g,'VI'). replace(/VII/g,'VII').replace(/VIII/g,'VIII').replace(/IX/g,'IX'). replace(/X/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(/mm/g,'mm').replace(/cm/g,'cm').replace(/km/g,'km'). replace(/mg/g,'mg').replace(/kg/g,'kg').replace(/cc/g,'cc'). replace(/m2/g,'m²').replace(/平成/g,'平成'). replace(/〝/g,'「').replace(/〟/g,'」').replace(/No/g,'No.'). replace(/KK/g,'K.K.').replace(/TEL/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(/\[\[w(:[a-z]{2,3}:)/g,'[[1ドル'). replace(/\[\[w:/ig,'[[:en:'). replace(/(\[\[:?)Category:/ig,'1ドルCategory:'). replace(/\{\{msg:/ig,'{{'). replace(/\{\{SERVER\}\}\{\{localurl:/ig,'{{fullurl:'). // タグ replace(/<\/?r[btp]>/ig,''). replace(/<\/?ruby>/ig,''). replace(/\s*<\/?br\s*\/?>/ig,'<br/>'). replace(/\s*<\/?hr\s*\/?>\s*/ig,"\n----\n\n"). replace(/<(center|div|span|font|tr|td|th|table|caption)/ig, function(str){returnstr.toLowerCase();}). replace(/<\/(center|div|span|font|tr|td|th|table|caption)>/ig, function(str){returnstr.toLowerCase();}). replace(/(cell(padd|spac)ing|v?align|width|style|border)\s*=\s*/ig, function(str,p1){returnp1.toLowerCase()+'=';}); // strip varn,nl; while((n=tmp.search(/<pre[^>]*>/i))!=-1){ varnl=tmp.search(/<\/pre>/i); if(nl==-1){ tmp=tmp.replace(/<pre/g,'<pre'); break; }elseif(nl<n){ tmp=tmp.replace(/<\/(pre)>/i,'</1ドル>'); continue; } vars=tmp.substring(n,nl+6); vari=strips.length; tmp=tmp.substr(0,n)+'<!--@@ jastyle-STRIP-'+i+' @@-->' +tmp.substr(nl+6); strips[i]=s; } // 行頭認識がいるもの varlines=tmp.split('\n'); varout=''; for(vari=0;i<lines.length;i++){ tmp=lines[i]; // preではやらない if(!tmp.match(/^ /)){ // == == if(tmp.match(/^=.*[^=]=/)){ tmp=tmp. replace(/^(={1,5})[\s ]*/,'1ドル '). replace(/[\s ]*(={1,5})$/,' 1ドル'). replace(/関連(記事|事項|用語)/g,'関連項目'). replace(/外部(参照)?((への)?リンク|サイト)|関連リンク/g, '外部リンク'); } tmp=tmp. // 行頭の全角空白 replace(/^ +/g,''). // 行頭の * : # ; replace(/^([\*\:\#\;]+)[\s ]*/,'1ドル '). // REDIRECTだけ戻す replace(/^# REDIRECT[^\[]*\[\[/i,'#REDIRECT[['). // '''で終わる行を ; に置き換え // replace(/^\'\'\'(.*?)\'\'\'$/, '; \'\'\'1ドル\'\'\''). // 行末空白除去 (半角空白しかない場合は除去しない for <pre>) replace(/([^\s])[\s ]+$/,'1ドル'); // 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){ varch=hex?parseInt("0"+hex):parseInt(dec,10); returnString.fromCharCode(ch); }). replace(/ /g,'_'); } } out+=tmp+'\n'; } out=out. replace(/^\s+/,'').replace(/\s+$/,''). // 二行以上の空行トルツメ replace(/\n{3,}/g,'\n\n'). // 見出しの後の空行トルツメ replace(/==\n+/g,'==\n'). // 見出しの前に空行を挿入 replace(/([^=\n])\n+==/g,'1ドル\n\n=='). // 空白 replace(/[ \t]+/g,' '); // unstrip out=out.replace(/<!--@@ jastyle-STRIP-(\d+) @@-->/g, function(str,n){returnstrips[n];}); edit.value=out+"\n"; returntrue; } $(install_jastyle);