diff --git a/index.html b/index.html index 1fde67c..3ec6166 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,7 @@
a
+ diff --git a/js/download.js b/js/download.js new file mode 100644 index 0000000..d49214f --- /dev/null +++ b/js/download.js @@ -0,0 +1,32 @@ +function download(filename, text) { + var element = document.createElement("a"); + element.setAttribute( + "href", + "data:text/plain;charset=utf-8," + encodeURIComponent(text) + ); + element.setAttribute("download", filename); + + element.style.display = "none"; + document.body.appendChild(element); + + element.click(); + + document.body.removeChild(element); +} +function upload() { + return new Promise(function (resolve, reject) { + var element = document.createElement("input"); + element.setAttribute("type", "file"); + element.setAttribute("accept", ".txt"); + + element.style.display = "none"; + document.body.appendChild(element); + + element.addEventListener("input", async function (e) { + text = await element.files[0].text(); + resolve(text); + document.body.removeChild(element); + }); + element.click(); + }); +} diff --git a/js/script.js b/js/script.js index 9bbd945..5a84c60 100644 --- a/js/script.js +++ b/js/script.js @@ -102,7 +102,7 @@ content.addEventListener("mousedown", function (e) { content.addEventListener("mouseup", mouseUp); -document.addEventListener("keydown", function (e) { +document.addEventListener("keydown", async function (e) { //history shit if (e.ctrlKey == true) { switch (e.key) { @@ -116,7 +116,16 @@ document.addEventListener("keydown", function (e) { drawGrid = forwards ? forwards : drawGrid; render(); break; - + case "s": + e.preventDefault(); + download("ascii.txt", JSON.stringify(drawGrid)); + break; + case "o": + e.preventDefault(); + text = await upload(); + drawGrid = JSON.parse(text); + render(); + break; default: break; }