利用者:Ignis/jastyle.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
// jastyle.js
// Originally written by. User:Suisui
// improved by. User:Tietew
function install_jastyle() {
var f = document.getElementById("editform");
if(!f) return;
if(document.body.className == 'ns-0') {
if(f.addEventListener) f.addEventListener("submit", jastyle, false);
else if(f.attachEvent) f.attachEvent("onsubmit", jastyle);
} else {
var p, s;
p = document.createElement('p');
p.innerHTML = '<button type="button" onclick="jastyle()">style</button>';
s = document.getElementById('contentSub');
s.parentNode.insertBefore(p,s.nextSibling);
}
}
function jastyle() {
var edit = document.getElementById("wpTextbox1");
var tmp = edit.value.
// 句読点
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(/\uFF11/g,'1').replace(/\uFF12/g,'2').
replace(/\uFF13/g,'3').replace(/\uFF14/g,'4').
replace(/\uFF15/g,'5').replace(/\uFF16/g,'6').
replace(/\uFF17/g,'7').replace(/\uFF18/g,'8').
replace(/\uFF19/g,'9').replace(/\uFF10/g,'0').
replace(/\uFF21/g,'A').replace(/\uFF22/g,'B').
replace(/\uFF23/g,'C').replace(/\uFF24/g,'D').
replace(/\uFF25/g,'E').replace(/\uFF26/g,'F').
replace(/\uFF27/g,'G').replace(/\uFF28/g,'H').
replace(/\uFF29/g,'I').replace(/\uFF2A/g,'J').
replace(/\uFF2B/g,'K').replace(/\uFF2C/g,'L').
replace(/\uFF2D/g,'M').replace(/\uFF2E/g,'N').
replace(/\uFF2F/g,'O').replace(/\uFF30/g,'P').
replace(/\uFF31/g,'Q').replace(/\uFF32/g,'R').
replace(/\uFF33/g,'S').replace(/\uFF34/g,'T').
replace(/\uFF35/g,'U').replace(/\uFF36/g,'V').
replace(/\uFF37/g,'W').replace(/\uFF38/g,'X').
replace(/\uFF39/g,'Y').replace(/\uFF3A/g,'Z').
replace(/\uFF41/g,'a').replace(/\uFF42/g,'b').
replace(/\uFF43/g,'c').replace(/\uFF44/g,'d').
replace(/\uFF45/g,'e').replace(/\uFF46/g,'f').
replace(/\uFF47/g,'g').replace(/\uFF48/g,'h').
replace(/\uFF49/g,'i').replace(/\uFF4A/g,'j').
replace(/\uFF4B/g,'k').replace(/\uFF4C/g,'l').
replace(/\uFF4D/g,'m').replace(/\uFF4E/g,'n').
replace(/\uFF4F/g,'o').replace(/\uFF50/g,'p').
replace(/\uFF51/g,'q').replace(/\uFF52/g,'r').
replace(/\uFF53/g,'s').replace(/\uFF54/g,'t').
replace(/\uFF55/g,'u').replace(/\uFF56/g,'v').
replace(/\uFF57/g,'w').replace(/\uFF58/g,'x').
replace(/\uFF59/g,'y').replace(/\uFF5A/g,'z').
// 機種依存記号
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, 'mm').
replace(/㎎/g, 'mg').replace(/㎏/g, 'kg').replace(/㏄/g, 'cc').
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, '昭和').replace(/〜/g, '~').
replace(/<\/?br\s*\/?>/ig,'<br/>').
replace(/(<\/?hr\s*\/?>|-----*)\s*/ig,'----\n').
replace(/<(center|div|span|font|tr|td|th|table|caption)/ig,
function(str) { return str.toLowerCase(); }).
replace(/<\/(center|div|span|font|tr|td|th|table|caption)>/ig,
function(str) { return str.toLowerCase(); }).
replace(/(cell(padd|spac)ing|v?align|width)\s*=\s*/ig,
function(str, p1) { return p1.toLowerCase() + '='; }).
replace(/border\s*((=)\s*)?/ig,'border$2').
replace(/\[\[w(:[a-z]{2,3}:)/g, '[[\1').
replace(/\[\[w:/ig, '[[:en:').
replace(/Category:/ig, 'Category:').
replace(/\{\{msg:/ig, '{{').
replace(/\{\{SERVER\}\}\{\{localurl:/ig, '{{fullurl:');
// 行頭認識がいるもの
var lines = tmp.split('\n');
var out = '';
for(var i = 0; i < lines.length; i++) {
tmp = lines[i];
// == ==
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) {
var ch = hex ? parseInt("0" + hex) : parseInt(dec, 10);
return String.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==');
edit.value = out;
return true;
}
addOnloadHook(install_jastyle); //</pre>