-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhtmlpreview.min.js
More file actions
1 lines (1 loc) · 3.28 KB
/
Copy pathhtmlpreview.min.js
File metadata and controls
1 lines (1 loc) · 3.28 KB
1
var HTMLPreview={content:"",previewform:document.getElementById("previewform"),file:function(){return location.search.substring(1)},raw:function(){return this.file().replace(/\/\/github\.com/,"//raw.github.com").replace(/\/blob\//,"/")},folder:function(){return this.raw().replace(/[^\/]+$/g,"")},replaceAssets:function(){var a,c,b;a=document.getElementsByTagName("link");for(b=0;b<a.length;++b)a[b].rel&&("stylesheet"==a[b].rel.toLowerCase()&&a[b].href)&&(c=a[b].href,(0<c.indexOf("//raw.github.com")||0<c.indexOf("//bitbucket.org"))&&this.send(c,"loadCSS"));if(/*@cc_on!@*/0){c=document.getElementsByTagName("script");for(b=0;b<c.length;++b)c[b].src&&(a=c[b].src,(0<a.indexOf("//raw.github.com")||0<a.indexOf("//bitbucket.org"))&&this.send(a,"loadJS"))}a=[].concat.apply([].concat.apply([],document.getElementsByTagName("iframe")),document.getElementsByTagName("frame"));for(i=0;i<a.length;++i)if(a[i].src&&(src=a[i].src,0<src.indexOf("//raw.github.com")||0<src.indexOf("//bitbucket.org")))a[i].src="http://"+location.hostname+location.pathname+"?"+src;a=document.getElementsByTagName("a");for(b=0;b<a.length;++b)a[b].href&&(c=a[b].href,0<c.indexOf("#")?a[b].href="http://"+location.hostname+location.pathname+location.search+"#"+a[b].hash.substring(1):(0<c.indexOf("//raw.github.com")||0<c.indexOf("//bitbucket.org"))&&(a[b].href="http://"+location.hostname+location.pathname+"?"+c))},loadHTML:function(a){a&&a.query&&a.query.results&&a.query.results.resources&&a.query.results.resources.content&&200==a.query.results.resources.status?(this.content=a.query.results.resources.content.replace(/<head>/i,'<head><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><base href="'+this.folder()+'">').replace(/<\/body>/i,'<script src="http://'+location.hostname+'/htmlpreview.min.js"></script><script>HTMLPreview.replaceAssets();</script></body>').replace(/<\/head>\s*<frameset/gi,'<script src="http://'+location.hostname+'/htmlpreview.min.js"></script><script>document.addEventListener("DOMContentLoaded",HTMLPreview.replaceAssets,false);</script></head><frameset'),setTimeout(function(){document.open();document.write(HTMLPreview.content);document.close()},50)):this.previewform.innerHTML=a&&a.error&&a.error.description?a.error.description:"Error: Cannot load file "+this.raw()},loadCSS:function(a){a&&(a.query&&a.query.results&&a.query.results.resources&&a.query.results.resources.content&&200==a.query.results.resources.status)&&document.write("<style>"+a.query.results.resources.content.replace(/\.\.\//g,'')+"</style>")},loadJS:function(a){a&&(a.query&&a.query.results&&a.query.results.resources&&a.query.results.resources.content&&200==a.query.results.resources.status)&&document.write("<script>"+a.query.results.resources.content+"</script>")},send:function(a,c){document.write('<script src="http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.headers%20where%20url%3D%22'+encodeURIComponent(a)+"%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=HTMLPreview."+c+'"></script>')},submitform:function(){location.href="/?"+document.getElementById("file").value;return!1},init:function(){this.previewform.onsubmit=this.submitform;this.file()&&(this.previewform.innerHTML="<p>Loading...</p>",this.send(this.raw(),"loadHTML"))}};