mirror of
https://github.com/arfct/itty-bitty.git
synced 2026-03-11 08:54:33 +00:00
Clean up for first launch
This commit is contained in:
parent
d1f51f0da3
commit
6b7513f1dd
10 changed files with 13 additions and 75 deletions
1
base.css
1
base.css
|
|
@ -1 +0,0 @@
|
|||
body{margin:0 auto;padding:12vmin 10vmin;max-width:35em;line-height:1.5em;font-family: -apple-system,BlinkMacSystemFont,sans-serif;word-wrap: break-word;}
|
||||
1
base64.min.js
vendored
1
base64.min.js
vendored
|
|
@ -1 +0,0 @@
|
|||
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";var _Base64=global.Base64;var version="2.4.5";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=require("buffer").Buffer}catch(err){}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][-¿]","[à-ï][-¿]{2}","[ð-÷][-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/[\s\S]{1,4}/g,cb_decode)};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
|
||||
1
base64js.min.js
vendored
1
base64js.min.js
vendored
|
|
@ -1 +0,0 @@
|
|||
(function(r){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=r()}else if(typeof define==="function"&&define.amd){define([],r)}else{var e;if(typeof window!=="undefined"){e=window}else if(typeof global!=="undefined"){e=global}else if(typeof self!=="undefined"){e=self}else{e=this}e.base64js=r()}})(function(){var r,e,n;return function(){function r(e,n,t){function o(f,i){if(!n[f]){if(!e[f]){var u="function"==typeof require&&require;if(!i&&u)return u(f,!0);if(a)return a(f,!0);var v=new Error("Cannot find module '"+f+"'");throw v.code="MODULE_NOT_FOUND",v}var d=n[f]={exports:{}};e[f][0].call(d.exports,function(r){var n=e[f][1][r];return o(n||r)},d,d.exports,r,e,n,t)}return n[f].exports}for(var a="function"==typeof require&&require,f=0;f<t.length;f++)o(t[f]);return o}return r}()({"/":[function(r,e,n){"use strict";n.byteLength=d;n.toByteArray=h;n.fromByteArray=p;var t=[];var o=[];var a=typeof Uint8Array!=="undefined"?Uint8Array:Array;var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,u=f.length;i<u;++i){t[i]=f[i];o[f.charCodeAt(i)]=i}o["-".charCodeAt(0)]=62;o["_".charCodeAt(0)]=63;function v(r){var e=r.length;if(e%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var n=r.indexOf("=");if(n===-1)n=e;var t=n===e?0:4-n%4;return[n,t]}function d(r){var e=v(r);var n=e[0];var t=e[1];return(n+t)*3/4-t}function c(r,e,n){return(e+n)*3/4-n}function h(r){var e;var n=v(r);var t=n[0];var f=n[1];var i=new a(c(r,t,f));var u=0;var d=f>0?t-4:t;for(var h=0;h<d;h+=4){e=o[r.charCodeAt(h)]<<18|o[r.charCodeAt(h+1)]<<12|o[r.charCodeAt(h+2)]<<6|o[r.charCodeAt(h+3)];i[u++]=e>>16&255;i[u++]=e>>8&255;i[u++]=e&255}if(f===2){e=o[r.charCodeAt(h)]<<2|o[r.charCodeAt(h+1)]>>4;i[u++]=e&255}if(f===1){e=o[r.charCodeAt(h)]<<10|o[r.charCodeAt(h+1)]<<4|o[r.charCodeAt(h+2)]>>2;i[u++]=e>>8&255;i[u++]=e&255}return i}function s(r){return t[r>>18&63]+t[r>>12&63]+t[r>>6&63]+t[r&63]}function l(r,e,n){var t;var o=[];for(var a=e;a<n;a+=3){t=(r[a]<<16&16711680)+(r[a+1]<<8&65280)+(r[a+2]&255);o.push(s(t))}return o.join("")}function p(r){var e;var n=r.length;var o=n%3;var a=[];var f=16383;for(var i=0,u=n-o;i<u;i+=f){a.push(l(r,i,i+f>u?u:i+f))}if(o===1){e=r[n-1];a.push(t[e>>2]+t[e<<4&63]+"==")}else if(o===2){e=(r[n-2]<<8)+r[n-1];a.push(t[e>>10]+t[e>>4&63]+t[e<<2&63]+"=")}return a.join("")}},{}]},{},[])("/")});
|
||||
1
data.min.js
vendored
1
data.min.js
vendored
|
|
@ -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;i<rawLength;i++){array[i]=raw.charCodeAt(i)}return array}function stringToZip(string,callback){LZMA.compress(string,9,function(result,error){if(error)console.error(error);var base64String=btoa(String.fromCharCode.apply(null,new Uint8Array(result)));return callback(base64String)})}function decompressDataURI(dataURI,preamble,callback){var base64Index=dataURI.indexOf(LZMA64_MARKER);if(base64Index>0){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<byteString.length;i++){_ia[i]=byteString.charCodeAt(i)}var dataView=new DataView(arrayBuffer);var blob=new Blob([dataView.buffer],{type:mimeString});return blob}
|
||||
4
edit.css
4
edit.css
|
|
@ -36,7 +36,7 @@ body.drag #content {
|
|||
|
||||
#content, #placeholder{
|
||||
margin:-1em; padding: 1em;
|
||||
min-height:2em
|
||||
min-height:7em
|
||||
}
|
||||
|
||||
#content {
|
||||
|
|
@ -180,7 +180,7 @@ body.drag #content {
|
|||
|
||||
#toolbar.menu-visible #menu {
|
||||
opacity:0.54;
|
||||
}
|
||||
}
|
||||
|
||||
.menu hr {
|
||||
border:none;
|
||||
|
|
|
|||
36
edit.js
36
edit.js
|
|
@ -11,10 +11,10 @@ var content = undefined
|
|||
window.onload = function() {
|
||||
window.onpopstate = function(e) { setContent(e.state) }
|
||||
window.onhashchange = function(e) { console.log("hash", e); location.reload() }
|
||||
document.body.ondragenter = function(e) { document.body.classList.add("drag"); };
|
||||
document.body.ondragleave = function(e) { document.body.classList.remove("drag"); };
|
||||
document.body.onclick = function(e) { if (e.target == document.body) content.focus() };
|
||||
content = document.getElementById("content");
|
||||
content.ondragenter = function(e) { document.body.classList.add("drag"); };
|
||||
content.ondragleave = function(e) { document.body.classList.remove("drag"); };
|
||||
content.addEventListener('keydown', handleKey);
|
||||
content.addEventListener('keyup', handleInput);
|
||||
QS("#doc-title").addEventListener('keyup', handleInput);
|
||||
|
|
@ -71,7 +71,7 @@ function handleDrop(e) {
|
|||
var ratio = url2.length / url.length
|
||||
console.log("Compressed to", ratio)
|
||||
if (e.ctrlKey) decompressDataURI(url2, undefined, function(url3) {
|
||||
console.log("Verified", url == url3,)
|
||||
console.log("Verified", url == url3)
|
||||
})
|
||||
if (ratio > 0.95) url2 = url;
|
||||
if (e.altKey) url2 = url2.replace(DATA_PREFIX_BXZE, "!")
|
||||
|
|
@ -125,36 +125,27 @@ function handlePaste(e) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
var TEMPLATE_MARKER = "/*use-itty-bitty-template*/"
|
||||
function fetchCodepen(url) {
|
||||
var h, c, j;
|
||||
$.when(
|
||||
$.get(url + ".html", function(html) { h = html; }),
|
||||
$.get(url + ".css", function(css) { c = css; }),
|
||||
$.get(url + ".js", function(js) { j = js; })
|
||||
$.get({ url:url + ".html", cache: false }, function(html) { h = html; }),
|
||||
$.get({ url:url + ".css", cache: false }, function(css) { c = css; }),
|
||||
$.get({ url:url + ".js", cache: false }, function(js) { j = js; })
|
||||
).then(function() {
|
||||
var useTemplate = c.indexOf(TEMPLATE_MARKER) >= 0
|
||||
var string = '<style type="text/css">' + c + '</style>' + h + '<script type="text/javascript">' + j + '</script>'
|
||||
console.log(c, c.indexOf(TEMPLATE_MARKER))
|
||||
stringToZip(string, function(zip) {
|
||||
setFileContent('✒️' + url)
|
||||
var title = QS("#doc-title").innerText;
|
||||
|
||||
setTimeout(function() {
|
||||
updateLink((useTemplate ? "" : DATA_PREFIX_BXZE) + zip)
|
||||
updateLink((useTemplate ? "" : DATA_PREFIX_BXZE) + zip, title)
|
||||
}, 300);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// function stripPrefix(url) {
|
||||
// if (url) {
|
||||
// var dataRE = /data:(text\/html[^,]*)(;base64),(.*)/
|
||||
// var match = url.match(dataRE);
|
||||
// if (match) return "!" + match[3];
|
||||
// }
|
||||
// return url;
|
||||
// }
|
||||
|
||||
function handleInput(e) {
|
||||
updateBodyClass();
|
||||
var text = content.innerText;
|
||||
|
|
@ -213,18 +204,9 @@ function updateLink(url, title, push) {
|
|||
|
||||
}
|
||||
|
||||
|
||||
function makeShortLink() {
|
||||
|
||||
}
|
||||
|
||||
function makeQRCode() {
|
||||
var url = "https://zxing.org/w/chart?cht=qr&chs=548x548&chld=L|1&choe=UTF-8&chl=" + encodeURIComponent(location.href)
|
||||
this.href = url
|
||||
|
||||
// window.open(url, '_blank');
|
||||
// return false;
|
||||
//https://developers.google.com/chart/infographics/docs/qr_codes
|
||||
}
|
||||
|
||||
function toggleMenu() {
|
||||
|
|
|
|||
12
index.html
12
index.html
File diff suppressed because one or more lines are too long
|
|
@ -1,16 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmanifest="manifest.appcache">
|
||||
<title>itty bitty</title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<script src="src/lzma-d-min.js"></script>
|
||||
<script src="data.js"></script>
|
||||
<style type="text/css">
|
||||
#iframe {border:none;position:absolute;top:0;left:0;width:100%;height:100%}
|
||||
#edit {font-family:monospace; color:rgba(0,0,0,0.54); position:absolute;z-index:100;position:absolute;top:10px; right:10px; display:none;}
|
||||
#edit:not(:hover) {text-decoration:none;}
|
||||
</style>
|
||||
<iframe id="iframe"></iframe>
|
||||
<a id="edit">edit</a>
|
||||
|
||||
<script type="text/javascript">function showEdit(t){var n=document.getElementById("edit");n.href="/edit"+location.hash,n.style.display=t?"block":"none"}var HEAD_TAGS="PG1ldGEgY2hhcnNldD0idXRmLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPjxiYXNlIHRhcmdldD0iX3RvcCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj5ib2R5e21hcmdpbjowIGF1dG87cGFkZGluZzoxMnZtaW4gMTB2bWluO21heC13aWR0aDozNWVtO2xpbmUtaGVpZ2h0OjEuNWVtO2ZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxzYW5zLXNlcmlmO3dvcmQtd3JhcDogYnJlYWstd29yZDt9PC9zdHlsZT4g";window.onhashchange=window.onload=function(){var t=window.location.hash.substring(1);if(t.length){var e=document.getElementById("iframe"),n=document.getElementById("edit"),d=void 0,a="?"==t.charAt(0),o=a||"!"==t.charAt(0);(o||a)&&(t=t.substring(1),d=HEAD_TAGS),0!=t.indexOf("data:")&&(t="data:text/html;charset=utf-8;"+(o?"bxze64,":"base64,")+t),n.onclick=function(){location.href="/edit"+location.hash};var i=navigator.userAgent.match(/rv:11/);decompressDataURI(t,d,function(t){t&&(i?dataToString(t,function(t){var n=e.contentWindow.document;n.open(),n.write(t),n.close()}):t&&(e.src=t))}),showEdit(a)}else location.href="/edit"}</script>
|
||||
</html>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<style type="text/css">
|
||||
body {margin:4vmin auto; width:74vmin; background:#eee; font-size: 8vmin; font-family:sans-serif;}
|
||||
input, div { height:2em; border-radius: 1em; font-size:1em;}
|
||||
input {width:6.8em; padding: 0 1em; margin:0 0.4em 0.4em 0; text-align:right; border:none;}
|
||||
div {width:2em; background:#fff; border:none; margin:0 0.4em 0.4em 0; display:inline-block; text-align:center; line-height:2em;}
|
||||
div:active {background:red; color:white;}
|
||||
div:nth-child(5n + 2) { background:#4A90E2; color:white; margin-right:0;}
|
||||
</style>
|
||||
<input type="text"><div onclick="field.value = ''">C</div><br><div>7</div><div>8</div><div>9</div><div>÷</div><br><div>4</div><div>5</div><div>6</div><div>×</div><br><div>1</div><div>2</div><div>3</div><div>-</div><br><div>.</div><div>0</div><div onclick="field.value = eval(field.value.replace('÷', '/').replace('×', '*'))">=</div><div>+</div>
|
||||
<script type="text/javascript">
|
||||
var field = document.querySelector('input');
|
||||
document.querySelectorAll('div').forEach(function(div) {
|
||||
if (!div.onclick) div.onclick = function(div) { field.value += this.innerText; }
|
||||
});
|
||||
</script>
|
||||
|
|
@ -1 +0,0 @@
|
|||
<meta charset="utf-8"><meta name="viewport" content="width=device-width"><base target="_top"><style type="text/css">body{margin:0 auto;padding:12vmin 10vmin;max-width:35em;line-height:1.5em;font-family: -apple-system,BlinkMacSystemFont,sans-serif;word-wrap: break-word;}</style>
|
||||
Loading…
Reference in a new issue