diff --git a/internal/preview.html b/internal/preview.html
index 89532a6..7d162bc 100644
--- a/internal/preview.html
+++ b/internal/preview.html
@@ -47,12 +47,19 @@
if ((event.ctrlKey || event.metaKey) && key === "s") {
event.preventDefault();
- const el = document.createElement("a");
+ const blob = new Blob([data.content], {
+ type: "text/plain;charset=utf-8",
+ });
+
+ const el = document.createElement("a"),
+ url = URL.createObjectURL(blob);
el.download = data.name;
- el.href = `data:text/plain;base64,${btoa(data.content)}`;
+ el.href = url;
el.click();
+
+ setTimeout(() => URL.revokeObjectURL(url), 100);
} else if ((event.ctrlKey || event.metaKey) && key === "a") {
event.preventDefault();