forked from Agent725/ESP32C3
138 lines
4.7 KiB
HTML
138 lines
4.7 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html><!-- index for ws.js or totally online Web IDE -->
|
||
|
|
<head>
|
||
|
|
<meta charset="utf-8" />
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=0.8, maximum-scale=0.8, user-scalable=no, interactive-widget=resizes-content" />
|
||
|
|
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
||
|
|
<meta name="mobile-web-app-capable" content="yes"/>
|
||
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||
|
|
<!-- Web Serial Origin Trial - www.espruino.com -->
|
||
|
|
<meta http-equiv="origin-trial" content="AjRdPA+O3VUML2r8/U0gIUmgBgZLDktY1Kypa8hjMesuKpbfYhXRrWHgjGp7f2Yd5sM36E4+TZdkSHewx27wOgUAAABQeyJvcmlnaW4iOiJodHRwczovL3d3dy5lc3BydWluby5jb206NDQzIiwiZmVhdHVyZSI6IlNlcmlhbCIsImV4cGlyeSI6MTU4OTM1NzgxNn0=">
|
||
|
|
|
||
|
|
<link rel="icon" href="favicon.ico">
|
||
|
|
<link rel="manifest" href="webapp_manifest.json">
|
||
|
|
|
||
|
|
<link rel="stylesheet" href="index.css"/>
|
||
|
|
<script>
|
||
|
|
// Force HTTPS - needed for web bluetooth
|
||
|
|
var l = window.location.toString();
|
||
|
|
if (l.substr(0,7)=="http://" && !window.location.port)
|
||
|
|
window.location = "https://"+l.substr(7);
|
||
|
|
</script>
|
||
|
|
|
||
|
|
<title>Espruino Web IDE</title>
|
||
|
|
</head>
|
||
|
|
<body>
|
||
|
|
|
||
|
|
<div class="window window--app">
|
||
|
|
<!-- Title Bar -->
|
||
|
|
<div class="window__title-bar title-bar" style="-webkit-app-region: drag">
|
||
|
|
<h5 class="title-bar__title">Espruino Web IDE</h5>
|
||
|
|
<div class="title-bar__buttons"></div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<!-- Viewport -->
|
||
|
|
<div class="window__viewport">
|
||
|
|
|
||
|
|
<!-- Toolbar -->
|
||
|
|
<div class="toolbar">
|
||
|
|
<div class="h-split">
|
||
|
|
<div class="h-split__left toolbar__buttons toolbar__buttons--left"></div>
|
||
|
|
<div class="h-split__right toolbar__buttons toolbar__buttons--right"></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<!-- Splitter -->
|
||
|
|
<div class="split-pane">
|
||
|
|
|
||
|
|
<div class="split-pane__left">
|
||
|
|
|
||
|
|
<div class="split-pane__loading">LOADING ...</div>
|
||
|
|
|
||
|
|
<div class="editor editor--terminal">
|
||
|
|
<div class="sidebar editor__sidebar">
|
||
|
|
<div class="v-split">
|
||
|
|
<div class="v-split__top sidebar__buttons sidebar__buttons--top"></div>
|
||
|
|
<div class="v-split__bottom sidebar__buttons sidebar__buttons--bottom"></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<div class="canvas editor__canvas editor__canvas__terminal"></div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="split-pane__right">
|
||
|
|
|
||
|
|
<div class="editor editor--code">
|
||
|
|
<div class="sidebar editor__sidebar">
|
||
|
|
<div class="v-split">
|
||
|
|
<div class="v-split__top sidebar__buttons sidebar__buttons--top"></div>
|
||
|
|
<div class="v-split__bottom sidebar__buttons sidebar__buttons--bottom"></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
<div class="canvas editor__canvas"></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<!-- Status -->
|
||
|
|
<div class="status">
|
||
|
|
<div class="h-split">
|
||
|
|
<div class="h-split__left status__left"></div>
|
||
|
|
<div class="h-split__right status__right"></div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<script src="index.js"></script>
|
||
|
|
<!-- load console here, so we get any messages while loading -->
|
||
|
|
<!-- SERIAL_INTERFACES -->
|
||
|
|
<!-- Electron / nw.js -->
|
||
|
|
<!-- WebRTC/Peer.js connection -->
|
||
|
|
<!-- Popup Windows -->
|
||
|
|
<!-- Special pages in Settings Window -->
|
||
|
|
<!-- Non-vital Plugins -->
|
||
|
|
<!-- needed for unicode -->
|
||
|
|
<!-- needed for minify -->
|
||
|
|
<!-- needed for minify -->
|
||
|
|
<!-- needed for minify -->
|
||
|
|
<!-- This should come before saveOnSend -->
|
||
|
|
<!-- This should come after minify -->
|
||
|
|
<!-- This should come after save on send -->
|
||
|
|
|
||
|
|
<!-- js/plugins/fileReload.js BROKEN -->
|
||
|
|
<!-- smart autocomplete -->
|
||
|
|
<!-- for storage.js -->
|
||
|
|
<!-- Onscreen buttons when running on Android -->
|
||
|
|
<!-- js/plugins/_examplePlugin.js -->
|
||
|
|
|
||
|
|
<!-- Google tag (gtag.js) -->
|
||
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-ZKP1D1PY6Q"></script>
|
||
|
|
<script>
|
||
|
|
window.dataLayer = window.dataLayer || [];
|
||
|
|
function gtag(){dataLayer.push(arguments);}
|
||
|
|
gtag('js', new Date());
|
||
|
|
gtag('config', 'G-ZKP1D1PY6Q');
|
||
|
|
|
||
|
|
// register service worker on known origins
|
||
|
|
if (window.location.origin == "https://www.espruino.com") {
|
||
|
|
if ('serviceWorker' in navigator) {
|
||
|
|
navigator.serviceWorker.register('serviceworker.js').then(function(reg) {
|
||
|
|
if(reg.installing) {
|
||
|
|
console.log('serviceworker> installing');
|
||
|
|
} else if(reg.waiting) {
|
||
|
|
console.log('serviceworker> installed');
|
||
|
|
} else if(reg.active) {
|
||
|
|
console.log('serviceworker> active');
|
||
|
|
}
|
||
|
|
}).catch(function(error) {
|
||
|
|
console.log('serviceworker> registration failed with ' + error);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</script>
|
||
|
|
</body>
|
||
|
|
</html>
|