Initial commit

This commit is contained in:
2025-09-25 22:16:05 +10:00
commit 37205bf33a
5 changed files with 74 additions and 0 deletions

16
client/index.html Normal file
View File

@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title>gride</title>
<script src="index.js"></script>
<style>
p {
line-height: 0.3;
}
</style>
</head>
<body>
<button onclick="runCode()">Run</button>
<code id="editor"></code>
</body>
</html>

37
client/index.js Normal file
View File

@@ -0,0 +1,37 @@
let textbox;
let text = '<p># welcome to gride!</p>\n<p># start typing to code a program in Ground!</p>\n<p>';
// Wait for the window to load before doing anything
window.addEventListener("load", function() {
textbox = document.getElementById("editor");
textbox.innerHTML = text + "</p>";
});
// When we press a key, start doing stuff
onkeydown = (event) => {
if (event.key == "Enter") {
text += "</p>\n<p>";
} else if (event.key == "Tab") {
text += " ";
} else if (event.key == "Backspace") {
if (text.slice(-8) == "</p>\n<p>") {
text = text.slice(0, -8)
} else {
text = text.slice(0, -1)
}
} else if (!(event.key == "Control" || event.key == "Alt" || event.key == "Meta" || event.key == "Shift" || event.key == "Escape")) {
text += event.key;
}
textbox.innerHTML = text + "</p>";
}
async function runCode() {
console.log(text.split("<p>").join("").split("</p>").join(""));
const result = await fetch("http://localhost:5000/runProgram", {
"method": "POST",
//"mode": "no-cors",
"body": text.split("<p>").join("").split("</p>").join("")
});
const data = await result.json();
console.log("Output: ", data);
}

1
server/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
__pycache__

19
server/app.py Normal file
View File

@@ -0,0 +1,19 @@
from flask import Flask, request, jsonify, send_from_directory
import subprocess
import random
app = Flask(__name__)
@app.route("/<path:path>")
def get_site(path):
return send_from_directory('static', path)
@app.post('/runProgram')
def run_program():
filename = "/tmp/program-" + str(random.randint(0,10000)) + ".grnd"
print(request.get_data(as_text=True))
with open(filename, "wt") as file:
file.write(request.get_data(as_text=True).replace("\\n", "\n"))
result = subprocess.run(["ground", filename], capture_output = True, text = True)
return jsonify({"stdout": result.stdout, "stderr": result.stderr, "exitCode": result.returncode})

1
server/static Symbolic link
View File

@@ -0,0 +1 @@
../client