Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Kanji Bigify
- // @namespace jklmnop.net
- // @description Make Kanji/Kana Bigger!
- // @include *://*.4channel.org/*
- // @include *://*.4chan.org/*
- // @exclude *://twitter.com/*
- // @exclude *://www.dlsite.com/*
- // @exclude *://kirarafantasia.com/*
- // @exclude *://*.nyaa.si/*
- // @version 1
- // @grant none
- // ==/UserScript==
- /*
- * Only works on 4chan/nel for now. Change the include line to just a * to make it work for everything.
- * Write sites with exclude to ignore them
- */
- var kanjiClassName = 'kanjibigifier';
- var kanjiCSS = [
- "." + kanjiClassName + " {",
- "font-size: 20px;",
- "}"
- ].join("");
- var textPath = '//text()[not(ancestor::script) and not(ancestor::style)]';
- var kRegex = /([\u2E80-\u2EFF\u2F00-\u2FDF\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4E00-\u9FFF]+)/g;
- function addGlobalStyle(css) {
- try {
- var elmHead, elmStyle;
- elmHead = document.getElementsByTagName('head')[0];
- elmStyle = document.createElement('style');
- elmStyle.type = 'text/css';
- elmHead.appendChild(elmStyle);
- elmStyle.innerHTML = css;
- } catch (e) {
- if (!document.styleSheets.length) {
- document.createStyleSheet();
- }
- document.styleSheets[0].cssText += css;
- }
- }
- addGlobalStyle(kanjiCSS);
- var snapTextElements = document.evaluate(
- textPath,
- document,
- null,
- XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
- null
- );
- for (var i = snapTextElements.snapshotLength - 1; i >= 0; i--) {
- var elmText = snapTextElements.snapshotItem(i);
- if (kRegex.test(elmText.nodeValue)) {
- var elmSpan = document.createElement("span");
- var sText = elmText.nodeValue;
- elmText.parentNode.replaceChild(elmSpan, elmText);
- kRegex.lastIndex = 0;
- for (var match = null, lastLastIndex = 0;
- (match = kRegex.exec(sText)); ) {
- elmSpan.appendChild(document.createTextNode(
- sText.substring(lastLastIndex, match.index)));
- var elmKanjiSpan = document.createElement("span");
- //elmLink.setAttribute("href", match[0]);
- elmKanjiSpan.setAttribute("class", kanjiClassName);
- elmKanjiSpan.appendChild(document.createTextNode(match[0]));
- elmSpan.appendChild(elmKanjiSpan);
- lastLastIndex = kRegex.lastIndex;
- }
- elmSpan.appendChild(document.createTextNode(
- sText.substring(lastLastIndex)));
- elmSpan.normalize();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement