Last active
December 11, 2015 18:29
-
-
Save roryokane/4642008 to your computer and use it in GitHub Desktop.
Syntax Highlight Bookmarklet rescued from http://web.archive.org/web/20090227031014/http://syntax.ubergibson.com/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var HomeURL = 'http://syntax.ubergibson.com/'; | |
var SHJSLoaded = false; | |
var SHJSSyntaxLoaded = false; | |
var SyntaxHighlighted = false; | |
function shjsLoaded() { | |
SHJSLoaded = true; | |
if (SHJSSyntaxLoaded && !SyntaxHighlighted) { | |
SyntaxHighlighted = true; | |
sh_highlightDocument(); | |
} | |
} | |
function shjsSyntaxLoaded() { | |
SHJSSyntaxLoaded = true; | |
if (SHJSLoaded && !SyntaxHighlighted) { | |
SyntaxHighlighted = true; | |
sh_highlightDocument(); | |
} | |
} | |
function isLoaded(url, type) { | |
var scriptelements = document.getElementsByTagName(type); | |
for (var i = 0; i < scriptelements.length; i) { | |
if (scriptelements[i].src.indexOf(url) != -1) { | |
return true; | |
} | |
} | |
return false; | |
} | |
function getLang(ext) { | |
switch (ext) { | |
case 'js': | |
return 'javascript'; | |
case 'rb': | |
return 'ruby'; | |
case 'py': | |
return 'python'; | |
default: | |
return ext; | |
} | |
} | |
function loadUrl(url, type, where) { | |
var e = document.createElement(type); | |
e.setAttribute('src', HomeURL url); | |
where.appendChild(e); | |
} | |
var sArray = window.location.toString().split('.'); | |
if (sArray.length > 0) { | |
var dCss = document.createElement('link'); | |
dCss.setAttribute('type', 'text/css'); | |
dCss.setAttribute('rel', 'stylesheet'); | |
dCss.setAttribute('href', HomeURL 'shjs/sh_style.css'); | |
document.body.appendChild(dCss); | |
var fileExt = sArray.pop(); | |
var hasQstr = fileExt.indexOf('?'); | |
if (hasQstr != -1) { | |
fileExt = fileExt.substring(0, hasQstr); | |
} | |
var fileLang = getLang(fileExt); | |
document.body.firstChild.className = 'sh_' | |
fileLang; | |
loadUrl('shjs/lang/sh_' | |
fileLang '.js', 'script', document.body); | |
loadUrl('shjs/sh_main.js', 'script', document.body); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<a href="javascript:var%20HomeURL%20=%20'http://syntax.ubergibson.com/';var%20SHJSLoaded%20=%20false;var%20SHJSSyntaxLoaded%20=%20false;var%20SyntaxHighlighted%20=%20false;function%20shjsLoaded()%20{%20%20SHJSLoaded%20=%20true;%20%20if(SHJSSyntaxLoaded%20&&%20!SyntaxHighlighted)%20{%20%20%20%20SyntaxHighlighted%20=%20true;%20%20%20%20sh_highlightDocument();%20%20}}function%20shjsSyntaxLoaded()%20{%20%20SHJSSyntaxLoaded%20=%20true;%20%20if(SHJSLoaded%20&&%20!SyntaxHighlighted)%20{%20%20%20%20SyntaxHighlighted%20=%20true;%20%20%20%20sh_highlightDocument();%20%20}}function%20isLoaded(url,%20type)%20{%20%20var%20scriptelements%20=%20document.getElementsByTagName(type);%20%20for(var%20i%20=%200;%20i%20<%20scriptelements.length;%20i++)%20{%20%20%20%20if(scriptelements[i].src.indexOf(url)%20!=%20-1)%20{%20%20%20%20%20%20return%20true;%20%20%20%20}%20%20}%20%20return%20false;}function%20getLang(ext)%20{%20%20switch(ext)%20{%20%20%20%20case%20'js':%20%20return%20'javascript';%20%20%20%20case%20'rb':%20%20return%20'ruby';%20%20%20%20case%20'py':%20%20return%20'python';%20%20%20%20default:%20%20%20%20return%20ext;%20%20}}function%20loadUrl(url,%20type,%20where)%20{%20%20var%20e%20=%20document.createElement(type);%20%20e.setAttribute('src',%20HomeURL+url);%20%20where.appendChild(e);}var%20sArray%20=%20window.location.toString().split('.');if(sArray.length%20>%200)%20{%20%20var%20dCss%20=%20document.createElement('link');%20%20dCss.setAttribute('type',%20'text/css');%20%20dCss.setAttribute('rel',%20'stylesheet');%20%20dCss.setAttribute('href',%20HomeURL+'shjs/sh_style.css');%20%20document.body.appendChild(dCss);%20%20var%20fileExt%20=%20sArray.pop();%20%20var%20hasQstr%20=%20fileExt.indexOf('?');%20%20if(hasQstr%20!=%20-1)%20{%20%20%20%20fileExt%20=%20fileExt.substring(0,%20hasQstr);%20%20}%20%20var%20fileLang%20=%20getLang(fileExt);%20%20%20%20document.body.firstChild.className%20=%20'sh_'+fileLang;%20%20loadUrl('shjs/lang/sh_'+fileLang+'.js',%20'script',%20document.body);%20%20loadUrl('shjs/sh_main.js',%20'script',%20document.body);}">Highlight Syntax</a> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Original blog post introducing the bookmarklet: Syntax Highlight Bookmarklet - alan dipert