|
|
@ -128,16 +128,28 @@ const homePageTemplateStr = `
|
|
128
|
128
|
<title>lingua evalia</title>
|
|
129
|
129
|
<meta charset="utf-8" />
|
|
130
|
130
|
<style type="text/css">
|
|
|
131
|
#codeContainer {
|
|
|
132
|
position: relative;
|
|
|
133
|
display: inline-block;
|
|
|
134
|
}
|
|
|
135
|
|
|
131
|
136
|
#code {
|
|
132
|
137
|
border: none;
|
|
133
|
138
|
}
|
|
134
|
139
|
|
|
|
140
|
#language {
|
|
|
141
|
position: absolute;
|
|
|
142
|
right: 0;
|
|
|
143
|
top: 0;
|
|
|
144
|
}
|
|
|
145
|
|
|
135
|
146
|
.error { color: red; }
|
|
136
|
147
|
</style>
|
|
137
|
148
|
</head>
|
|
138
|
149
|
|
|
139
|
150
|
<body>
|
|
140
|
|
<textarea id="code" rows="20" cols="80">package main
|
|
|
151
|
<div id="codeContainer">
|
|
|
152
|
<textarea id="code" rows="20" cols="80">package main
|
|
141
|
153
|
|
|
142
|
154
|
import (
|
|
143
|
155
|
"fmt"
|
|
|
@ -147,25 +159,31 @@ func main() {
|
|
147
|
159
|
fmt.Println("Hello, World!")
|
|
148
|
160
|
}
|
|
149
|
161
|
</textarea>
|
|
|
162
|
<select id="language">
|
|
|
163
|
<option value="go">Go</option>
|
|
|
164
|
<option value="python">Python</option>
|
|
|
165
|
</select>
|
|
|
166
|
</div>
|
|
150
|
167
|
<pre id="result"></pre>
|
|
151
|
168
|
|
|
152
|
169
|
<script>
|
|
153
|
170
|
var codeEl = document.getElementById("code");
|
|
|
171
|
var languageEl = document.getElementById("language");
|
|
154
|
172
|
var resultEl = document.getElementById("result");
|
|
155
|
173
|
|
|
156
|
174
|
codeEl.onkeydown = function(ev) {
|
|
157
|
175
|
if (ev.ctrlKey && ev.keyCode == 13) {
|
|
158
|
176
|
resultEl.textContent = "";
|
|
159
|
|
sendCode(codeEl.value, function(xhr) {
|
|
|
177
|
sendCode(codeEl.value, languageEl.value, function(xhr) {
|
|
160
|
178
|
resultEl.className = xhr.status == 200 ? "success" : "error";
|
|
161
|
179
|
resultEl.textContent = xhr.response;
|
|
162
|
180
|
});
|
|
163
|
181
|
}
|
|
164
|
182
|
}
|
|
165
|
183
|
|
|
166
|
|
function sendCode(code, cb) {
|
|
|
184
|
function sendCode(code, language, cb) {
|
|
167
|
185
|
var xhr = new XMLHttpRequest();
|
|
168
|
|
xhr.open("POST", "/run");
|
|
|
186
|
xhr.open("POST", "/run?language=" + language);
|
|
169
|
187
|
xhr.onreadystatechange = function(ev) {
|
|
170
|
188
|
if (xhr.readyState == XMLHttpRequest.DONE) {
|
|
171
|
189
|
cb(xhr);
|