[[fetch]] files = ["./main.py"] from pyodide.ffi import create_proxy from main import * from js import localStorage def run(*args): draw() p5.requestAnimationFrame(create_proxy(run)) p5.keyPressed = create_proxy(keyPressed) p5.keyReleased = create_proxy(keyReleased) p5.mousePressed = create_proxy(mousePressed) p5.mouseReleased = create_proxy(mouseReleased) def save_code(): text = js.document.getElementsByClassName("cm-content")[0].innerText localStorage.setItem("code", text) def load_code(): if localStorage.getItem("code"): code_text = localStorage.getItem("code") js.document.getElementsByClassName("cm-content")[0].innerText = code_text def reload_sketch(): setup() # re-run setup # (re-)position the code element to the right of canvas: code_element = Element("code").element p5_element = Element("defaultCanvas0").element code_element.style.left = str(p5_element.clientWidth + 20) + 'px' code_element.style.width = f'calc(100% - {p5_element.clientWidth + 30}px)' reload_sketch() run()