Skip to content

Instantly share code, notes, and snippets.

@hryk
Created September 25, 2011 07:49
Show Gist options
  • Select an option

  • Save hryk/1240359 to your computer and use it in GitHub Desktop.

Select an option

Save hryk/1240359 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @match http://*/*
// ==/UserScript==
function addJQuery(callback) {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
script.addEventListener('load', function() {
var script = document.createElement("script");
script.textContent = "(" + callback.toString() + ")();";
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
// the guts of this userscript
function main() {
var nc = {
A : "<span style='color:yellow;background:yellow;'>A</span>", // yellow
T : "<span style='color:green;background:green;'>T</span>", // green
C : "<span style='color:blue;background:blue;'>C</span>", // blue
G : "<span style='color:red;background:red;'>G</span>" // red
};
var char2codon = function (char) {
if (char == "a") {
return nc["C"]+nc["T"]+nc["C"];
}
else if (char == "f") {
return nc["C"]+nc["C"]+nc["C"];
}
else if (char == "w") {
return nc["C"]+nc["A"]+nc["C"];
}
else if (char == "y") {
return nc["C"]+nc["G"]+nc["C"];
}
else if (char == "k") {
return nc["C"]+nc["G"]+nc["A"];
}
else if (char == "v") {
return nc["C"]+nc["G"]+nc["G"];
}
else if (char == "e") {
return nc["T"]+nc["C"]+nc["C"];
}
else if (char == "i") {
return nc["T"]+nc["T"]+nc["C"];
}
else if (char == "b") {
return nc["C"]+nc["A"]+nc["T"];
}
else if (char == "h") {
return nc["T"]+nc["G"]+nc["G"];
}
else if (char == "u") {
return nc["T"]+nc["A"]+nc["A"];
}
else if (char == "m") {
return nc["A"]+nc["T"]+nc["C"];
}
else if (char == "s") {
return nc["A"]+nc["T"]+nc["T"];
}
else if (char == "p") {
return nc["A"]+nc["A"]+nc["C"];
}
else if (char == "l") {
return nc["A"]+nc["A"]+nc["A"];
}
else if (char == "h") {
return nc["A"]+nc["G"]+nc["A"];
}
else if (char == "g") {
return nc["A"]+nc["C"]+nc["G"];
}
else if (char == "r") {
return nc["G"]+nc["C"]+nc["T"];
}
else if (char == "o") {
return nc["G"]+nc["T"]+nc["C"];
}
else if (char == "d") {
return nc["G"]+nc["A"]+nc["C"];
}
else if (char == "n") {
return nc["G"]+nc["A"]+nc["A"];
}
else if (char == "t") {
return nc["G"]+nc["G"]+nc["C"];
}
else if (char == "\n") {
return "\n";
}
else if (char == "\r") {
return "\r";
}
else {
return nc["A"]+nc["A"]+nc["A"]
}
}
var tocodon = function (phrase){
var newline = "";
for (var i=0; i<phrase.length;i++){
newline += char2codon(phrase[i].toLowerCase());
}
return $(newline);
}
// .find(":only-child")
$(":contains(text)").find("a,p,li,pre").each(function(){
console.log($(this).text());
var text = $(this).text();
$(this).text("");
$(this).html(tocodon(text));
});
}
// load jQuery and execute the main function
addJQuery(main);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment