// ==UserScript==
// @name 国立アイヌ民族博物館アイヌ語アーカイブの半角を小書きに
// @namespace http://lit.link/toracatman
// @version 2024-04-08
// @description 「国立アイヌ民族博物館アイヌ語アーカイブ」という サイトの 半角カタカナを 小書きカタカナに します。
// @author トラネコマン
// @match https://ainugo.nam.go.jp/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// @license MIT
// ==/UserScript==
var c = [
["ク", "ㇰ"],
["シ", "ㇱ"],
["ス", "ㇲ"],
["ト", "ㇳ"],
["ヌ", "ㇴ"],
["ハ", "ㇵ"],
["ヒ", "ㇶ"],
["プ", "ㇷ゚"],
["フ", "ㇷ"],
["ヘ", "ㇸ"],
["ホ", "ㇹ"],
["ム", "ㇺ"],
["ラ", "ㇻ"],
["リ", "ㇼ"],
["ル", "ㇽ"],
["レ", "ㇾ"],
["ロ", "ㇿ"],
];
(function() {
setInterval(() => {
var a = document.querySelectorAll("dd,dd *,.kana,.word,.ainu,.ainu *");
if (a == null) return;
for (var i = 0; i < a.length; i++) {
if (a[i].getAttribute("data-small") == "true") continue;
a[i].setAttribute("data-small", "true");
if (!(a[i].hasChildNodes())) continue;
if (a[i].childElementCount == 0) {
var s = a[i].textContent;
for (var j = 0; j < c.length; j++) {
s = s.replace(new RegExp(c[j][0], "gu"), c[j][1]);
}
a[i].textContent = s;
}
else {
var t = a[i];
var p = document.createTextNode("");
t.replaceWith(p);
var f = document.createDocumentFragment();
f.appendChild(t);
var r = document.createDocumentFragment();
var e = t.firstElementChild;
while (e != null) {
e.replaceWith(document.createTextNode("\x1a"));
r.appendChild(e);
e = t.firstElementChild;
}
var s = t.textContent;
for (var j = 0; j < c.length; j++) {
s = s.replace(new RegExp(c[j][0], "gu"), c[j][1]);
}
var ss = s.split("\x1a");
t.textContent = "";
t.appendChild(document.createTextNode(ss[0]));
for (var j = 1; j < ss.length; j++) {
t.appendChild(r.firstElementChild);
t.appendChild(document.createTextNode(ss[j]));
}
p.replaceWith(f);
}
}
}, 100);
})();