mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-09-04 07:22:47 +00:00
121 lines
3.9 KiB
HTML
121 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Esprima: Full Source Rewrite Demo</title>
|
|
<script src="../test/3rdparty/platform.js"></script>
|
|
<script src="../test/3rdparty/escodegen.js"></script>
|
|
<script src="checkenv.js"></script>
|
|
<script src="rewrite.js"></script>
|
|
<script src="../esprima.js"></script>
|
|
<script src="../assets/codemirror/codemirror.js"></script>
|
|
<script src="../assets/codemirror/javascript.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="../assets/codemirror/codemirror.css"/>
|
|
<link rel="stylesheet" type="text/css" href="../assets/style.css"/>
|
|
<style>
|
|
.CodeMirror-scroll {
|
|
height: 300px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
|
|
<div class="topbar">
|
|
<ul class="nav">
|
|
<li><a href="../index.html">← Home</a></li>
|
|
<li><a href="http://github.com/ariya/esprima">Code</a></li>
|
|
<li><a href="http://wiki.esprima.org">Documentation</a></li>
|
|
<li><a href="http://issues.esprima.org">Issues</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<h1>Source Rewrite <small>cleans up and reformats everything</small></h1>
|
|
|
|
<p>Type ECMAScript code in the editor. Press <b>Rewrite</b> button to get the code
|
|
parsed and reconstructed.</p>
|
|
|
|
<p><textarea id="code" autofocus="autofocus" cols="70" rows="25" spellcheck="false">
|
|
// Example of messy code with confusing and inconsistent indentations
|
|
|
|
function bubbleSort (list) {
|
|
var items = list.slice(0), swapped =false,
|
|
p, q;
|
|
for ( p= 1;p < items.length; ++p) {
|
|
for (q=0; q < items.length - p; ++q) {
|
|
if (items[q + 1 ] < items[q]) {
|
|
swapped =true;
|
|
let temp = items[q];
|
|
items[q] = items[ q+1]; items[q+1] = temp;
|
|
}
|
|
}
|
|
if (!swapped)
|
|
break;
|
|
}
|
|
return items;
|
|
}
|
|
</textarea></p>
|
|
|
|
<p>Indent with:
|
|
<label><input type="radio" name="indent" id="onetab" value="onetab"> tab</label>
|
|
<label><input type="radio" name="indent" id="twospaces" value="twospaces"> 2 spaces</label>
|
|
<label><input checked type="radio" name="indent" id="fourspaces" value="fourspaces"> 4 spaces</label>
|
|
</p>
|
|
|
|
<p><input type="button" value="Rewrite" id="rewrite"></p>
|
|
|
|
<p id="codemirror" align="right"><small>The above code editor is based on <a href="http://codemirror.net" target="_blank">CodeMirror</a>.</small></p>
|
|
|
|
<p id="error"></p>
|
|
|
|
<p><b>Notes</b>:</p>
|
|
<ul>
|
|
<li>Only valid syntax is accepted.</li>
|
|
<li>Comments are <em>not</em> preserved.</li>
|
|
<li>It is still experimental (see the <a href="https://github.com/Constellation/escodegen">escodegen project</a>).</li>
|
|
</ul>
|
|
|
|
<p style="margin-top: 50px;">Using Esprima version <span id="version"></span>.</p>
|
|
|
|
<div class="footer"><strong>Esprima</strong> is created by
|
|
<a href="http://ariya.ofilabs.com/about" target="_blank">Ariya Hidayat</a>. Follow <a href="http://twitter.com/ariyahidayat">@ariyahidayat</a> on Twitter.
|
|
</div>
|
|
|
|
<p id="testbox" style="visibility: hidden;"><textarea id="test"></textarea></p>
|
|
</div>
|
|
<script>
|
|
/*jslint sloppy:true browser:true */
|
|
/*global sourceRewrite:true, CodeMirror:true */
|
|
window.onload = function () {
|
|
var el;
|
|
|
|
el = document.getElementById('version');
|
|
if (typeof el.innerText === 'string') {
|
|
el.innerText = window.esprima.version;
|
|
} else {
|
|
el.textContent = window.esprima.version;
|
|
}
|
|
|
|
document.getElementById('rewrite').onclick = sourceRewrite;
|
|
};
|
|
|
|
try {
|
|
window.checkEnv();
|
|
|
|
// This is just testing, to detect whether CodeMirror would fail or not
|
|
window.editor = CodeMirror.fromTextArea(document.getElementById("test"));
|
|
|
|
window.editor = CodeMirror.fromTextArea(document.getElementById("code"), {
|
|
lineNumbers: true,
|
|
matchBrackets: true
|
|
});
|
|
} catch (e) {
|
|
// CodeMirror failed to initialize, possible in e.g. old IE.
|
|
document.getElementById('codemirror').innerHTML = '';
|
|
} finally {
|
|
document.getElementById('testbox').parentNode.removeChild(document.getElementById('testbox'));
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|