過去にコメントにネタ仕込んでたことがあったので作ったけど
結局意味があったのは一回だけだったかな……。
多分もうそういうネタはないんじゃないかと思うので廃棄。
UserScript のヘッダがあるけど実際に使えたかどうか覚えてません。
// ==UserScript==
// @name august-soft.user.js
// @description show august-soft.com comment
// @version 2013.11.14
// @namespace http://rentan.org/
// @author rentan
// @grant none
// @include http://august-soft.com/
// ==/UserScript==
(function () {
'use strict';
function getAllComments (e) {
var ELEMENT_NODE = 1;
var COMMENT_NODE = 8;
var result = [ ];
function getComments (e) {
var childs = e.childNodes;
for (var i = 0; i < childs.length; ++i) {
var c = childs [i];
if (c.nodeType === ELEMENT_NODE) {
getComments (c);
}
else if (c.nodeType === COMMENT_NODE) {
result.push (c);
}
}
}
getComments (e);
return result;
}
function MorseCode (sep, dot, dash) {
this.sep = new RegExp (sep);
this.dot = new RegExp (dot, 'g');
this.dash = new RegExp (dash, 'g');
}
MorseCode.prototype.morseToChar = {
o_: 'a',
_ooo: 'b',
_o_o: 'c',
_oo: 'd',
o: 'e',
oo_o: 'f',
__o: 'g',
oooo: 'h',
oo: 'i',
o___: 'j',
_o_: 'k',
o_oo: 'l',
__: 'm',
_o: 'n',
___: 'o',
o__o: 'p',
__o_: 'q',
o_o: 'r',
ooo: 's',
_: 't',
oo_: 'u',
ooo_: 'v',
o__: 'w',
_oo_: 'x',
_o__: 'y',
o____: '1',
oo___: '2',
ooo__: '3',
oooo_: '4',
ooooo: '5',
_oooo: '6',
__ooo: '7',
___oo: '8',
____o: '9',
_____: '0',
o_o_o_: '.',
__oo__: ',',
oo__oo: '?',
_o_o__: '!',
_oooo_: '-',
_oo_o: '/',
o__o_o: '@',
_o__o: '(',
_o__o_: ')',
};
MorseCode.prototype.decode = function (code) {
code = code.split (this.sep);
for (var i = 0; i < code.length; ++i) {
var c = code [i].replace (this.dot, 'o').replace (this.dash, '_');
if (c) {
if (!this.morseToChar.hasOwnProperty (c)) {
throw 'Invalid Code';
}
code [i] = this.morseToChar [c];
}
else {
code [i] = ' ';
}
}
return code.join ('');
};
(function main () {
var comments = getAllComments (document);
var div = document.createElement ('div');
div.style.fontSize = '80%';
div.style.borderBottom = '1px solid blue';
var morse = new MorseCode (' ', '・', '-');
comments.forEach (function (c) {
var p = document.createElement ('p');
p.style.marginTop = p.style.marginBottom = '0px';
var lines = c.nodeValue.trim ().split (/[\r\n]+/);
for (var i = 0; i < lines.length; ++i) {
if (i) {
p.appendChild (document.createElement ('br'));
}
var s = lines [i];
try {
var m = morse.decode (s);
p.appendChild (document.createTextNode (m + ' ... '));
}
catch (e) { }
p.appendChild (document.createTextNode (s));
}
div.appendChild (p);
});
var body = document.getElementsByTagName ('body') [0];
body.insertBefore (div, body.firstChild);
body.style.backgroundPosition = '0px ' + (div.clientHeight + 1) + 'px';
}) ();
}) ();
// EOF