tududi/public/index.html
2026-03-06 08:48:55 +02:00

143 lines
5.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1">
<base href="/">
<script>
(function () {
function sanitize(value) {
if (!value) return '';
var trimmed = value.trim();
if (!trimmed || trimmed === '/') return '';
if (trimmed.endsWith('/')) trimmed = trimmed.slice(0, -1);
if (!trimmed.startsWith('/')) trimmed = '/' + trimmed;
return trimmed;
}
function detectIngress() {
var match = window.location.pathname.match(/^\/api\/hassio_ingress\/[^/]+/);
return match ? match[0] : '';
}
var envBase = '<%= htmlWebpackPlugin.options.BASE_PATH || "" %>';
var runtimeBase = sanitize(window.__TUDUDI_BASE_PATH__ || envBase);
if (!runtimeBase) {
runtimeBase = sanitize(detectIngress());
}
window.__TUDUDI_BASE_PATH__ = runtimeBase;
var baseHref = runtimeBase ? runtimeBase + '/' : '/';
var baseTag = document.querySelector('base') || document.createElement('base');
if (!baseTag.parentNode) {
document.head.insertBefore(baseTag, document.head.firstChild);
}
baseTag.setAttribute('href', baseHref);
})();
</script>
<title>tududi</title>
<!-- Self-hosted Lora font -->
<style>
/* latin */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Regular-latin.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Regular-latin-ext.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* cyrillic */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Regular-cyrillic.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* cyrillic-ext */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Regular-cyrillic-ext.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
font-family: 'Lora';
font-style: normal;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Regular-vietnamese.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin - italic */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Italic-latin.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext - italic */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Italic-latin-ext.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* cyrillic - italic */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Italic-cyrillic.woff2) format('woff2');
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* cyrillic-ext - italic */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Italic-cyrillic-ext.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese - italic */
@font-face {
font-family: 'Lora';
font-style: italic;
font-weight: 400 700;
font-display: swap;
src: url(fonts/Lora-Italic-vietnamese.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
</style>
<!-- Favicon -->
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32.png">
<link rel="icon" type="image/png" sizes="16x16" href="favicon-16.png">
<!-- Web app manifest for PWA support -->
<link rel="manifest" href="manifest.json">
</head>
<body>
<div id="root"></div>
</body>
</html>