summaryrefslogtreecommitdiff
path: root/static/app.js
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2024-02-21 22:41:07 -0600
committerChristian Cleberg <[email protected]>2024-02-21 22:41:07 -0600
commit3110e0e5130b9f9b5a832cf0d6ad9d46490003ad (patch)
treeb935dea8ed2b63d3de21e214bb451bb904c3f69d /static/app.js
downloadorg-live-3110e0e5130b9f9b5a832cf0d6ad9d46490003ad.tar.gz
org-live-3110e0e5130b9f9b5a832cf0d6ad9d46490003ad.tar.bz2
org-live-3110e0e5130b9f9b5a832cf0d6ad9d46490003ad.zip
initial commit
Diffstat (limited to 'static/app.js')
-rw-r--r--static/app.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/static/app.js b/static/app.js
new file mode 100644
index 0000000..7da442b
--- /dev/null
+++ b/static/app.js
@@ -0,0 +1,55 @@
+function parseOrg() {
+ var orgCode = document.getElementById("editor").value;
+ var orgParser = new Org.Parser();
+ var orgDocument = orgParser.parse(orgCode);
+ var orgHTMLDocument = orgDocument.convert(Org.ConverterHTML, {
+ headerOffset: 1,
+ exportFromLineNumber: false,
+ suppressSubScriptHandling: false,
+ suppressAutoLink: false,
+ });
+
+ // console.dir(orgHTMLDocument); // => { title, contentHTML, tocHTML, toc }
+ // console.log(orgHTMLDocument.toString()) // => Rendered HTML
+ return orgHTMLDocument;
+}
+
+function saveOrg() {
+ const filename = new Date().toISOString();
+ var data = document.getElementById("editor").value;
+ var file = new Blob([data], { type: Text });
+ var a = document.createElement("a"),
+ url = URL.createObjectURL(file);
+ a.href = url;
+ a.download = filename + ".org";
+ document.body.appendChild(a);
+ a.click();
+ setTimeout(function () {
+ document.body.removeChild(a);
+ window.URL.revokeObjectURL(url);
+ }, 0);
+}
+
+function saveHTML() {
+ const filename = new Date().toISOString();
+ var data = parseOrg();
+ var file = new Blob([data], { type: Text });
+ var a = document.createElement("a"),
+ url = URL.createObjectURL(file);
+ a.href = url;
+ a.download = filename + ".html";
+ document.body.appendChild(a);
+ a.click();
+ setTimeout(function () {
+ document.body.removeChild(a);
+ window.URL.revokeObjectURL(url);
+ }, 0);
+}
+
+function showHTML() {
+ var data = parseOrg();
+ data += "<form method='dialog'><button>Close dialog</button></form>";
+ var element = document.getElementById("modal");
+ element.innerHTML = data.toString();
+ element.showModal();
+}