Update web version, add a sharable try.html
This commit is contained in:
80
try.html
Normal file
80
try.html
Normal file
@@ -0,0 +1,80 @@
|
||||
<!doctype html>
|
||||
<html lang="en-us">
|
||||
<meta charset="UTF-8">
|
||||
<head>
|
||||
<style>
|
||||
h1, h2 ,h3 { line-height:1.2; }
|
||||
body {
|
||||
max-width: 45em;
|
||||
margin: 1em auto;
|
||||
padding: 0 .62em;
|
||||
font: 1.2em/1.62 sans-serif;
|
||||
}
|
||||
|
||||
th { text-align: center; }
|
||||
th, td { padding: 0.5em; }
|
||||
table, td {
|
||||
border: 1px solid #333;
|
||||
text-align: right;
|
||||
}
|
||||
thead, tfoot {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#try_editor { height: 70em; width: 70em; }
|
||||
#try_output { height: 20em; width: 70em; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header><h2>Nathan Braswell's Current Programming Language / Compiler Research</h2></header>
|
||||
Repository: <a title="Kraken on GitHub" href="https://github.com/limvot/kraken">https://github.com/limvot/kraken</a>
|
||||
<h3> Try it:</h3>
|
||||
<button onclick="executeKraken(try_editor.getValue(), 'try_output')"><b>Run</b></button> <br>
|
||||
<div id="try_editor">; Of course
|
||||
; Load for prelude so we get fun, lambda, if, quoting, etc
|
||||
;(load-file "./k_prime_stdlib/prelude.kp")
|
||||
; Load for method to get nicer lambda, objects, blocks, string interplation
|
||||
;(load-file "./k_prime_stdlib/method.kp")
|
||||
|
||||
(println "Hello World")
|
||||
; Just print 3
|
||||
(println "Math works:" (+ 1 2))
|
||||
</div>
|
||||
<h4>Output:</h4>
|
||||
<textarea id="try_output">Output will appear here</textarea>
|
||||
|
||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.11/ace.min.js"></script>
|
||||
<script>
|
||||
ace.config.set('basePath', 'https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.11/')
|
||||
var try_editor = ace.edit("try_editor")
|
||||
try_editor.session.setMode("ace/mode/clojure")
|
||||
try_editor.setOption("displayIndentGuides", false)
|
||||
try_editor.setShowPrintMargin(false)
|
||||
|
||||
if (window.location.hash) {
|
||||
try_editor.setValue(decodeURIComponent(window.location.hash.slice(1)), -1)
|
||||
}
|
||||
|
||||
var output_name = ""
|
||||
var Module = {
|
||||
noInitialRun: true,
|
||||
onRuntimeInitialized: () => {
|
||||
},
|
||||
print: txt => {
|
||||
document.getElementById(output_name).value += txt + "\n";
|
||||
},
|
||||
printErr: txt => {
|
||||
document.getElementById(output_name).value += "STDERR:[" + txt + "]\n";
|
||||
}
|
||||
};
|
||||
function executeKraken(code, new_output_name) {
|
||||
window.location.hash = encodeURIComponent(code)
|
||||
output_name = new_output_name
|
||||
document.getElementById(new_output_name).value = "running...\n";
|
||||
Module.callMain(["-C", code]);
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="k_prime.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user