diff --git a/docs/data-min.js b/docs/data-min.js deleted file mode 100644 index d8f251c..0000000 --- a/docs/data-min.js +++ /dev/null @@ -1 +0,0 @@ -var BASE64_MARKER=";base64,";var LZMA64_MARKER=";bxze64,";function compressDataURI(dataURI,callback){var base64Index=dataURI.indexOf(BASE64_MARKER);var base64=dataURI.substring(base64Index+BASE64_MARKER.length);stringToZip(base64ToByteArray(base64),(function(result){callback(dataURI.substring(0,base64Index)+LZMA64_MARKER+result)}))}function base64ToByteArray(base64){var raw=window.atob(base64);var rawLength=raw.length;var array=new Uint8Array(new ArrayBuffer(rawLength));for(i=0;i0){var base64=dataURI.substring(base64Index+LZMA64_MARKER.length);zipToString(base64,(function(result){stringToData(result,(function(data){if(!data)return callback(undefined);callback(dataURI.substring(0,base64Index)+BASE64_MARKER+(preamble||"")+data.split(",")[1])}))}))}else{callback(dataURI)}}function zipToString(data,callback){var array=base64ToByteArray(data);LZMA.decompress(array,(function(result,error){if(!(typeof result==="string"))result=new Uint8Array(result);if(error)console.error(error);callback(result)}))}function stringToData(string,callback){if(!string.length)return callback("");var a=new FileReader;a.onload=function(e){callback(e.target.result.replace())};a.readAsDataURL(new Blob([string],{encoding:"UTF-8",type:"text/html;charset=UTF-8"}))}function dataToString(data,callback){var blob=dataURItoBlob(data);var reader=new FileReader;reader.onload=function(e){callback(reader.result)};reader.readAsText(blob)}function dataURItoBlob(dataURI){var byteString=atob(dataURI.split(",")[1]);var mimeString=dataURI.split(",")[0].split(":")[1].split(";")[0];var arrayBuffer=new ArrayBuffer(byteString.length);var _ia=new Uint8Array(arrayBuffer);for(var i=0;i itty.bitty - - + + diff --git a/docs/index.html b/docs/index.html index 85bbe00..df7e50a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,6 +1,6 @@ - - + + diff --git a/docs/index.js b/docs/index.js index 47147a5..d549bc7 100644 --- a/docs/index.js +++ b/docs/index.js @@ -36,7 +36,7 @@ window.onhashchange = window.onload = function() { var iframe = document.getElementById("iframe"); var link = document.getElementById("edit"); var preamble = undefined; - var download = undefined; + var renderMode = "data"; var slashIndex = hash.indexOf("/"); var title = hash.substring(0, slashIndex); @@ -72,13 +72,13 @@ window.onhashchange = window.onload = function() { let script = '' script = script + " ".repeat(3 - (script.length % 3)) preamble = btoa(script); + renderMode = "frame"; } else { console.log("unknown type, rendering as download") let extension = title.split(".") document.querySelector("#dl-name").innerText = title; if (extension.length > 1) document.querySelector("#dl-image").innerText = extension.pop(); - download = document.querySelector("#download"); - download.download = title; + renderMode = "download"; } } link.onclick = function() { @@ -87,6 +87,7 @@ window.onhashchange = window.onload = function() { var isIE = navigator.userAgent.match(/rv:11/); var isEdge = navigator.userAgent.match(/Edge\//); + var isWatch = (window.outerWidth < 200); if ((isEdge || isIE) && location.href.length == 2083) { document.getElementById("warning").innerHTML = 'Edge only supports shorter URLs (maximum 2083 bytes).
Larger sites may require a different browser.
Learn more'; @@ -95,24 +96,39 @@ window.onhashchange = window.onload = function() { if (!dataURL) return; iframe.sandbox = "allow-downloads allow-scripts allow-forms allow-top-navigation allow-popups allow-modals allow-popups-to-escape-sandbox"; - dataURL = dataURL.replace("application/ld+json", "text/html"); - if (download) { + if (isIE && renderMode == "data") renderMode = "frame"; + if (isWatch) { + renderMode = "rewrite"; + } + console.log("rendermode", renderMode) + dataURL = dataURL.replace("application/ld+json", "text/plain"); + if (renderMode == "download") { try { - download.href = dataURL - download.click(); + let dl = document.querySelector("#download"); + dl.href = dataURL; + dl.title = title; + dl.click(); document.body.classList.add("download"); } catch (e) { iframe.src = dataURL; } - } else if (!isIE) { + } else if (renderMode == "data") { iframe.src = dataURL; - } else { + } else if (renderMode == "url") { + location.href = dataURL; + } else if (renderMode == "frame") { dataToString(dataURL, function(content) { var doc = iframe.contentWindow.document; doc.open(); doc.write(content); doc.close(); }); + } else if (renderMode == "rewrite") { + dataToString(dataURL, function(content) { + document.open(); + document.write(content); + document.close(); + }); } }); var link = document.getElementById("edit"); diff --git a/docs/jquery-3.3.1.min.js b/docs/js/jquery-3.3.1.min.js similarity index 100% rename from docs/jquery-3.3.1.min.js rename to docs/js/jquery-3.3.1.min.js diff --git a/docs/lzma/LICENSE b/docs/js/lzma/LICENSE similarity index 100% rename from docs/lzma/LICENSE rename to docs/js/lzma/LICENSE diff --git a/docs/lzma/lzma-d-min.js b/docs/js/lzma/lzma-d-min.js similarity index 100% rename from docs/lzma/lzma-d-min.js rename to docs/js/lzma/lzma-d-min.js diff --git a/docs/lzma/lzma_worker-min.js b/docs/js/lzma/lzma_worker-min.js similarity index 100% rename from docs/lzma/lzma_worker-min.js rename to docs/js/lzma/lzma_worker-min.js diff --git a/functions/index.js b/functions/index.js index dc42d1f..a41a050 100644 --- a/functions/index.js +++ b/functions/index.js @@ -4,7 +4,7 @@ exports.index = functions.https.onRequest((request, response) => { functions.logger.info("Hello logs!", ); const agent = request.headers["user-agent"]; let path = request.path; - if (agent.indexOf("Twitterbot") != -1 || agent.indexOf("facebookexternalhit") != -1) { + if (agent.indexOf("Twitterbot") != -1 || agent.indexOf("facebookexternalhit") != -1 || agent.indexOf("Slackbot-LinkExpanding") != -1 || agent.indexOf("Discordbot") != -1) { let components = path.split("/"); components.shift(); components.pop();