全てのページを幼女言葉に変えてしまうGreasemonkey
文字打つときRをLに変えると幼女言葉になる
こちらを見てインスパイヤ。息抜きがてらに適当に作ったった。以前に作った カタカナを平仮名に変換するGreasemokey を応用してます。
……とは言いつつ、元ネタでは例えば「ら」を「ぁ」と表記するため、正直このままだと「らいおん」が「ぁいおん」となったりして元の意味を判別し難いのでルールを変更してます。
具体的には
はてなダイアリーはじめてガイド
簡単・便利!シンプルな操作で書ける
ブログを見ているその場ですぐに編集可能。使い方はいろいろ、自分らしく使えます
http://d.hatena.ne.jp/guideブログの記事がキーワードで繋がる
言葉で繋がってブログがにぎわい、同じ趣味の人たちと繋がれるかも
こうした文章を
簡単・便利!しんぷりゅな操作で書けりゅ
ぶりょぐゅを見ていりゅその場ですゅぐゅに編集可能。使い方はいりょいりょ、自分りゃしくゅ使えますゅ
ぶりょぐゅの記事がきーわーどで繋がりゅ
言葉で繋がってぶりょぐゅがにぎわい、同じ趣味の人たちと繋がれりゅかも
と変換します。
もう読み難いことこの上ないです。
インストールはこちらから
http://userscripts.org/scripts/show/57503
[どうぞご利用ください。]
参考リンク
制作に参考にしたもの
- 404 Blog Not Found:javascript - でも全角半角変換
- 文字打つときRをLに変えると幼女言葉になる
- さちぼるてゅいったー - ついったーとHamachiya2 - はてなグループ::ついったー部
ソース
変換のルールの説明がメンドイのでソースをそのまま。
// ==UserScript== // @author rikuo // @name like little girl // @namespace http://d.hatena.ne.jp/rikuo/ // @include http://* // @exclude https://* // ==/UserScript== // cf. http://blog.livedoor.jp/dankogai/archives/51221077.html // cf. http://anond.hatelabo.jp/20090910174818 // cf. http://twitter.g.hatena.ne.jp/Hamachiya2/20090624/sachi_volta var _doc = document; const zenkatakanaRE = /[\u30A1-\u30F6]/g; var zenkaku = ['。', '、', '「', '」', '・', 'ー', 'ァ', 'ア', 'ィ', 'イ', 'ゥ', 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'グ', 'ケ', 'ゲ', 'コ', 'ゴ', 'サ', 'ザ', 'シ', 'ジ', 'ス', 'ズ', 'セ', 'ゼ', 'ソ', 'ゾ', 'タ', 'ダ', 'チ', 'ヂ', 'ッ', 'ツ', 'ヅ', 'テ', 'デ', 'ト', 'ド', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'バ', 'パ', 'ヒ', 'ビ', 'ピ', 'フ', 'ブ', 'プ', 'ヘ', 'ベ', 'ペ', 'ホ', 'ボ', 'ポ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', 'ョ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヲ', 'ン', 'ヴ' ]; var hankaku = ['。', '、', '「', '」', '・', 'ー', 'ァ', 'ア', 'ィ', 'イ', 'ゥ', 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'グ', 'ケ', 'ゲ', 'コ', 'ゴ', 'サ', 'ザ', 'シ', 'ジ', 'ス', 'ズ', 'セ', 'ゼ', 'ソ', 'ゾ', 'タ', 'ダ', 'チ', 'ヂ', 'ッ', 'ツ', 'ヅ', 'テ', 'デ', 'ト', 'ド', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'バ', 'パ', 'ヒ', 'ビ', 'ピ', 'フ', 'ブ', 'プ', 'ヘ', 'ベ', 'ペ', 'ホ', 'ボ', 'ポ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', 'ョ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヲ', 'ン', 'ヴ' ]; const re_hankaku = /[\uFF61-\uFF9D][\uFF9E\uFF9F]?/g; var h2z = {}; for (var i = 0, l = hankaku.length; i < l; i++){ h2z[hankaku[i]] = zenkaku[i]; }; var katakana_conversion = function (doc){ var txt = xpath(doc , 'descendant::text()[string-length(normalize-space(self::text())) > 0 and not(ancestor::textarea) and not(ancestor::script) and not(ancestor::style)]'); for(var i=0,tl=txt.snapshotLength; i<tl; ++i){ var df,item = txt.snapshotItem(i), text = item.nodeValue.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'), parent = item.parentNode, range = document.createRange(), newText = text.replace(zenkatakanaRE,function(z){ return String.fromCharCode(z.charCodeAt(0)-0x60) }).replace(re_hankaku, function(m0){ return h2z[m0]; }).replace(/([くすつぬむゆぐず])/g,'$1ゅ').replace(/ら/g,'りゃ').replace(/り/g,'り').replace(/る/g,'りゅ').replace(/れ/g,'れ').replace(/ろ/g,'りょ').replace(/な[。、!!??]/g,'にゃ$1').replace(/なので/g,'にゃので').replace(/なう/g,'にゃう'); range.selectNode(item); df = range.createContextualFragment(newText); parent.replaceChild(df, item); range.detach(); } } katakana_conversion(_doc); function xpath(context, query){ return _doc.evaluate( query, context, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ) } if(window.AutoPagerize) { boot(); }else{ window.addEventListener('GM_AutoPagerizeLoaded',boot,false); } function boot(){ window.AutoPagerize.addFilter(function(docs){ docs.forEach(katakana_conversion); }); }
「小さい子供の話し方」風にとは言っても、実際の子供の喋り方よりかはテンプレのような定型文*1みたいなイメージと合致しやすいのでしょうが、あんまり分からんので適当に。
変換ルールについてはもうちょっと考慮の余地ありそうですが、気分転換で作ったジョークGreasemonkeyなのでこれくらいで。
><