利用者:Sat.d.h./kana-henkan.js
注意: 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
- Firefox / Safari: Shift を押しながら 再読み込み をクリックするか、Ctrl-F5 または Ctrl-R を押してください (Mac では ⌘-R)
- Google Chrome: Ctrl-Shift-R を押してください (Mac では ⌘-Shift-R)
- Internet Explorer / Microsoft Edge: Ctrl を押しながら 最新の情報に更新 をクリックするか、Ctrl-F5 を押してください
- Opera: Ctrl-F5を押してください
/**
* ボタンを画面右上に配置。
* クリックにより、classがkatakaのspanでない箇所のカタカナ部をひらがなに置換
*/
$(function() {
// 標準とユーザページに適用
var namespaceNumber = mw.config.get('wgNamespaceNumber');
if (namespaceNumber !== 0 && namespaceNumber !== 2) return;
$('#p-namespaces>ul').append($('<li><span><a>カナ変</a></span>')
.attr({'id':'cnv_btn', 'title':'カタカナ-ひらがな変換'}));
$(document).on('click','#cnv_btn:not(.cnv_now)',function(){
// 置換対象の設定
$('#content p, #content li, #content dt, #content dd, #content h1, #content h2, #content h3, #content h4, #content h5, #content h6').each(function() {
var txt = $(this).html();
$(this).html(
txt.replace(/(<span class="katakana">.*?<\/span>)/g, '</span>$1<span class="hiragana">')
.replace(/(^.)/g, '<span class="hiragana">$1')
.replace(/(.$)/g, '$1</span>')
);
});
// 対象の置換
$('.hiragana').each(function() {
var txt = $(this).html();
$(this).html(
txt.replace(/[ァ-ヴ]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 0x60);
})
);
});
// 原文に戻すボタンに置き換え
$('#cnv_btn, #cnv_btn span a').html('<span><a>原文</a></span>').addClass('cnv_now').attr({'title':'原文表示に戻る'});
$(this).off();
});
// 原文に戻るボタン(リロード処理)
$(document).on('click', '#cnv_btn.cnv_now',function() {
$(this).off();
window.location.reload();
});
});