pub const INDEX_HTML_DEV: &str = r#"<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover, interactive-widget=resizes-visual"
/>
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta
name="apple-mobile-web-app-status-bar-style"
content="black-translucent"
/>
<meta
name="description"
content="A declarative, cross-platform UI framework for Rust with virtual DOM, reactive signals, and HTML macros for WebAssembly."
/>
<meta
name="keywords"
content="rust, webassembly, wasm, ui-framework, virtual-dom, reactive, declarative-ui, euv"
/>
<meta property="og:title" content="euv" />
<meta
property="og:description"
content="A declarative, cross-platform UI framework for Rust with virtual DOM, reactive signals, and HTML macros for WebAssembly."
/>
<meta property="og:type" content="website" />
<title>Euv</title>
<style>
* {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
canvas {
image-rendering: auto;
}
</style>
</head>
<body>
<div id="app"></div>
</body>
<script type="module">
import init, { main } from '__IMPORT_PATH__';
await init();
main();
</script>
<script>
(function () {
async function connect() {
try {
const res = await fetch('/__euv_reload');
const data = await res.json();
if (data.type === 'Reload') {
location.reload();
} else if (data.type === 'Error') {
console.error('[euv] build error:', data.message);
setTimeout(connect, 1000);
} else {
setTimeout(connect, 1000);
}
} catch (_) {
setTimeout(connect, 2000);
}
}
connect();
})();
</script>
</html>
"#;Expand description
The index.html template for the development profile.
Includes a live-reload <script> block that connects to the
/__euv_reload endpoint and parses the JSON payload sent by the server.
The JSON uses a tagged enum format:
{"type":"Reload"}— the client should reload the page.{"type":"Error","message":"..."}— a build error occurred.
The __IMPORT_PATH__ placeholder is replaced with the resolved JS import path at runtime.