User:Takagu/global.js

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// ==UserScript==
// @name 半角仮名を全角片仮名に
// @namespace http://localhost/
// @include *
// @description 半角仮名を全角片仮名にして表示する。
// ==/UserScript==

javascript:(function() {
  var keylst_kana = new Array("・", "ヺ", "ヲ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ア", "イ", "ヴ", "ウ", "エ", "オ", "ガ", "カ", "ギ", "キ", "グ", "ク", "ゲ", "ケ", "ゴ", "コ", "ザ", "サ", "ジ", "シ", "ズ", "ス", "ゼ", "セ", "ゾ", "ソ", "ダ", "タ", "ヂ", "チ", "ヅ", "ツ", "デ", "テ", "ド", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "バ", "パ", "ハ", "ビ", "ピ", "ヒ", "ブ", "プ", "フ", "ベ", "ペ", "ヘ", "ボ", "ポ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヷ", "ワ", "ン", "゛", "゜");
  var replst_kana = new Array("・",  "ヺ", "ヲ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ア", "イ", "ヴ", "ウ", "エ", "オ", "ガ", "カ", "ギ", "キ", "グ", "ク", "ゲ", "ケ", "ゴ", "コ", "ザ", "サ", "ジ", "シ", "ズ", "ス", "ゼ", "セ", "ゾ", "ソ", "ダ", "タ", "ヂ", "チ", "ヅ", "ツ", "デ", "テ", "ド", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "バ", "パ", "ハ", "ビ", "ピ", "ヒ", "ブ", "プ", "フ", "ベ", "ペ", "ヘ", "ボ", "ポ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヷ", "ワ", "ン", "゙", "゚");
  var keylst_num = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
  var replst_num = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
  var keylst_symb = new Array(" ","(", ")","”","#", "$", "%", "&", "’", "+", ".",  "=",  "@", "[", "¥", "]", "^", "_", "`", "{", "|", "}");
  var replst_symb = new Array(" ","(", ")","\"","#", "$", "%", "&", "'", "+", ".",  "=",  "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}");
  var keylst_std = new Array('唖', '鯵', '欝', '鴬', '蛎', '鈎',  '竃', '潅', '諌','頚','叱','靭','賎','曽','壷', '顛','砺', '梼', '涛','涜', '迩', '祢', '蝿', '剥',  '桧', '頬', '侭', '麺', '薮', '篭', '蝋', '凛', '妍',  '煕', '臈');
  var replst_std = new Array('啞', '鰺', '鬱', '鶯', '蠣', '鉤',  '竈', '灌', '諫','頸','𠮟','靱','賤','曾', '壺', '塡','礪', '檮', '濤','瀆', '邇', '禰', '蠅', '剝','檜', '頰', '儘', '麵', '藪','籠', '蠟', '凜', '姸',  '熙', '﨟');
  var keylst_kyuji = new Array('亞', '惡', '壓', '圍', '爲', '醫', '壹', '逸', '稻', '隱', '營', '榮', '衞', '驛', '謁', '圓', '緣', '鹽', '奧', '應', '橫', '歐', '毆', '黃', '溫', '穩', '假', '價', '禍', '畫', '會', '壞', '悔', '懷', '海', '繪', '慨', '槪', '擴', '殼', '覺', '學', '嶽', '樂', '喝', '渴', '褐', '勸', '卷', '寬', '歡', '漢', '罐', '觀', '關', '陷', '器', '既', '歸', '氣', '祈', '僞', '戲', '犧', '舊', '據', '擧', '虛', '峽', '挾', '狹', '鄕', '響', '曉', '勤', '謹', '區', '驅', '勳', '薰', '徑', '惠', '揭', '溪', '經', '繼', '莖', '螢', '輕', '鷄', '藝', '擊', '缺', '儉', '劍', '圈', '檢', '權', '獻', '硏', '縣', '險', '顯', '驗', '嚴', '效', '廣', '恆', '鑛', '號', '國', '穀', '黑', '濟', '碎', '齋', '劑', '櫻', '殺', '雜', '參', '慘', '棧', '蠶', '贊', '殘', '祉', '絲', '視', '齒', '兒', '辭', '濕', '實', '寫', '煮', '社', '者', '釋', '壽', '收', '臭', '從', '澁', '獸', '縱', '祝', '肅', '處', '暑', '緖', '署', '諸', '敍', '奬', '將', '涉', '燒', '祥', '稱', '證', '乘', '剩', '壤', '孃', '條', '淨', '狀', '疊', '讓', '釀', '囑', '觸', '寢', '愼', '眞', '神', '盡', '圖', '粹', '醉', '隨', '髓', '數', '樞', '瀨', '聲', '靜', '齊', '攝', '竊', '節', '專', '戰', '淺', '潛', '纖', '踐', '錢', '禪', '祖', '僧', '雙', '壯', '層', '搜', '插', '巢', '爭', '總', '莊', '裝', '騷', '增', '憎', '臟', '藏', '贈', '卽', '屬', '續', '墮', '體', '對', '帶', '滯', '臺','擇', '澤', '單', '嘆', '擔', '膽', '團', '彈', '斷', '癡', '遲', '晝', '蟲', '鑄', '著', '廳', '徵', '懲', '聽', '敕', '鎭', '塚', '遞', '鐵', '轉', '點', '傳', '都', '黨', '盜', '當', '鬪', '德', '獨', '讀', '突', '屆', '繩', '難', '貳', '惱', '腦', '霸', '廢', '拜', '梅', '賣', '麥', '發', '髮', '拔', '繁', '晚', '蠻', '卑', '碑', '祕', '濱', '賓', '頻', '敏', '甁', '侮', '福', '拂', '佛', '倂', '塀', '竝', '變', '邊', '勉', '辨', '瓣', '辯', '步', '穗', '寶', '襃', '豐', '墨', '飜', '每', '萬', '滿', '免', '默', '戾', '藥', '譯', '豫', '餘', '與', '譽', '搖', '樣', '謠', '來', '賴', '亂', '欄', '覽', '隆', '虜', '兩', '獵', '綠', '壘', '淚', '類', '勵', '禮', '靈', '齡', '曆', '歷', '戀', '練', '鍊', '爐', '勞', '廊', '朗', '樓', '郞', '錄', '灣', '', '巖', '渚', '穰', '琢', '猪', '禎', '彌', '祐', '祿', '', '堯', '槇', '遙',);
  var replst_kyuji = new Array('亜', '悪', '圧', '囲', '為', '医', '壱', '逸', '稲', '隠', '営', '栄', '衛', '駅', '謁', '円', '縁', '塩', '奥', '応', '横', '欧', '殴', '黄', '温', '穏', '仮', '価', '禍', '画', '会', '壊', '悔', '懐', '海', '絵', '慨', '概', '拡', '殻', '覚', '学', '岳', '楽', '喝', '渇', '褐', '勧', '巻', '寛', '歓', '漢', '缶', '観', '関', '陥', '器', '既', '帰', '気', '祈', '偽', '戯', '犠', '旧', '拠', '挙', '虚', '峡', '挟', '狭', '郷', '響', '暁', '勤', '謹', '区', '駆', '勲', '薫', '径', '恵', '掲', '渓', '経', '継', '茎', '蛍', '軽', '鶏', '芸', '撃', '欠', '倹', '剣', '圏', '検', '権', '献', '研', '県', '険', '顕', '験', '厳', '効', '広', '恒', '鉱', '号', '国', '穀', '黒', '済', '砕', '斎', '剤', '桜', '殺', '雑', '参', '惨', '桟', '蚕', '賛', '残', '祉', '糸', '視', '歯', '児', '辞', '湿', '実', '写', '煮', '社', '者', '釈', '寿', '収', '臭', '従', '渋', '獣', '縦', '祝', '粛', '処', '暑', '緒', '署', '諸', '叙', '奨', '将', '渉', '焼', '祥', '称', '証', '乗', '剰', '壌', '嬢', '条', '浄', '状', '畳', '譲', '醸', '嘱', '触', '寝', '慎', '真', '神', '尽', '図', '粋', '酔', '随', '髄', '数', '枢', '瀬', '声', '静', '斉', '摂', '窃', '節', '専', '戦', '浅', '潜', '繊', '践', '銭', '禅', '祖', '僧', '双', '壮', '層', '捜', '挿', '巣', '争', '総', '荘', '装', '騒', '増', '憎', '臓', '蔵', '贈', '即', '属', '続', '堕', '体', '対', '帯', '滞', '台','択', '沢', '単', '嘆', '担', '胆', '団', '弾', '断', '痴', '遅', '昼', '虫', '鋳', '著', '庁', '徴', '懲', '聴', '勅', '鎮', '塚', '逓', '鉄', '転', '点', '伝', '都', '党', '盗',  '当', '闘', '徳', '独', '読', '突', '届', '縄', '難', '弐', '悩', '脳', '覇', '廃', '拝', '梅', '売', '麦', '発', '髪', '抜', '繁', '晩', '蛮', '卑', '碑', '秘', '浜', '賓', '頻', '敏', '瓶', '侮', '福', '払', '仏', '併', '塀', '並', '変', '辺', '勉', '弁', '弁', '弁', '歩', '穂', '宝', '褒', '豊', '墨', '翻', '毎', '万', '満', '免', '黙', '戻', '薬', '訳', '予', '余', '与', '誉', '揺', '様', '謡', '来', '頼', '乱', '欄', '覧', '隆', '虜', '両', '猟', '緑', '塁', '涙', '類', '励', '礼', '霊', '齢', '暦', '歴', '恋', '練', '錬', '炉', '労', '廊', '朗', '楼', '郎', '録', '湾', '', '巌', '渚', '穣', '琢', '猪', '禎', '弥', '祐', '禄', '', '尭', '槙', '遥',);

  var re = new RegExp('(' + keylst.join("|") + ')', 'g');

  function convertchar(c) {
    for (var i = 0; i < keylst.length; i++) {
      if (keylst[i] == c) {
        return replst[i];
      }
    }
    return c;
  }

  var nodes = document.evaluate('//descendant::text()', document, null,
                                XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  var len = nodes.snapshotLength;
  var node, tmp;
  for (var i = 0; i < len; i++) {
    node = nodes.snapshotItem(i);
    node.nodeValue = node.nodeValue.replace(re, convertchar);
  }
})();