Skip to content

Instantly share code, notes, and snippets.

@roryokane
Last active December 11, 2015 18:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roryokane/4642008 to your computer and use it in GitHub Desktop.
Save roryokane/4642008 to your computer and use it in GitHub Desktop.
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);
}
<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>
@roryokane
Copy link
Author

Original blog post introducing the bookmarklet: Syntax Highlight Bookmarklet - alan dipert

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment