利用者:ハポニアラ/common.js
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください。
// このスクリプトは[[MediaWiki:Gadget-char-convert0.js]](2015-10-24T06:17:57, UTC)をもとに作成しています。
// Gadget-char-convert0.jsについては[[MediaWiki:Gadget-char-convert0.js]]を参照してください。
// ボタン操作により辞書ファイルをもとに変換テーブルを作成し、idプロパティがmw-content-textの要素に対して、新漢字と旧漢字の代替候補を「▼▲」で挟んで表示します。
$(function() {
var namespaceNumber = mw.config.get('wgNamespaceNumber');
if (namespaceNumber !== 0 && namespaceNumber !== 2 && namespaceNumber != 250 && namespaceNumber != 252) return; //標準、利用者、ページ、Index名前空間に適用
$("#p-namespaces ul").append($("<li><span><a>旧字</a></span></li>").attr({'id': 'toc0_btn1','title':'旧漢字の代替候補を表示'}).css({'color':'#0000ff','cursor':'pointer'}));
var dicData;
var dfd = new $.Deferred();
$(document).on('click','#toc0_btn1',function(){
getDic();
dfd.promise().then(function() {
var rp_data0 = arrangeData(dicData);
var txt=document.getElementById('mw-content-text')
$.each(rp_data0, function(value, key){
txt.innerHTML = txt.innerHTML.replace(new RegExp(key, 'g'), "▼" + key + value + "▲");
});
$('#toc0_btn1, #toc0_btn1 span a').css({'color':'#000000'});
});
});
//辞書データの取得
function getDic() {
var pageids = "18270"; //辞書のページID:"18270"(テンプレート:新旧字体変換用辞書)
var dAstr = "*"; //データ中のマーカ
$.ajax({
type: "GET",
scriptCharset: "utf-8",
dataType: "jsonp",
url: "https://ja.wikisource.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&pageids="+pageids,
})
.done(function(json) {
dicData = json.query.pages[pageids].revisions[0][dAstr];
dfd.resolve();
})
.fail(function() {
alert( "辞書読取エラー" );
});
}
// データの整形
function arrangeData(ddata) {
var lines = ddata.split( '\n' );
var strD =[];
for ( var i = 1; i < lines.length-1; i++ ) {
if (lines[i].match(/\*\s*([\S]*)\s*[::→]\s*([\S]*)/)) {
if (strD.length !==0) strD = strD + ", ";
strD = strD + "\""+RegExp.$1+"\":\""+RegExp.$2+"\"";
}
}
var strK = JSON.parse("{" + strD + "}");
return strK;
}
});
// タブ「ルビ」をクリックすることにより、テキストエリア内の括弧(()、()、《》)付振り仮名をルビに置換。
// 視覚障碍者読書支援協会の原文入力ルール(|と括弧による表現)に対応。
$(function() {
var namespaceNumber = mw.config.get('wgNamespaceNumber');
if (namespaceNumber !== 0 && namespaceNumber !== 2 && namespaceNumber !== 250) return;
if ( $('#wpTextbox1').val().length === 0) return;
$("#p-namespaces ul").append($("<li><span><a>ルビ</a></span></li>").attr({'id':'tr0_btn', 'title':'括弧付仮名をルビに置換'}).css({'color':'#0000ff','cursor':'pointer'}));
$('#tr0_btn').click(function() {
var str1 = $('#wpTextbox1').val();
var str=str1.replace(/|([^((《]+)[((《]([^))》]+)[))》]/g, "{{r|" + '$1' + "|" + '$2' + "}}").replace(/((?:[々〇〻\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF])+)[((《]([〱〲/″\{}ぁ-ゞァ-ヾ]+)[))》]/g, "{{r|" + '$1' + "|" + '$2' + "}}");
$('#wpTextbox1').val(str);
$('#tr0_btn, #tr0_btn span a').css({'color':'#000000'});
});
});