54 lines
2.0 KiB
HTML
54 lines
2.0 KiB
HTML
<!doctype html>
|
|
<html lang="en-US" suppressHydrationWarning>
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<script>
|
|
(function () {
|
|
try {
|
|
var t = localStorage.getItem("strategy-theme");
|
|
var root = document.documentElement;
|
|
root.classList.remove("dark", "light");
|
|
if (t === "light") return;
|
|
root.classList.add("dark");
|
|
} catch (e) {}
|
|
})();
|
|
</script>
|
|
<script>
|
|
// React 19's development profiler uses the User Timing Level 3
|
|
// `performance.measure(name, options)` overload. Firefox 101 only
|
|
// implements the legacy string-marker form and otherwise throws a
|
|
// DOMException during every scheduled update. Detect that overload
|
|
// before React loads and disable its optional profiler when unavailable.
|
|
(function () {
|
|
try {
|
|
var perf = window.performance;
|
|
if (!perf || typeof perf.measure !== "function" || typeof perf.now !== "function") return;
|
|
var probe = "__deerflow_user_timing_options_probe__";
|
|
var now = perf.now();
|
|
perf.measure(probe, { start: now, end: now });
|
|
if (typeof perf.clearMeasures === "function") perf.clearMeasures(probe);
|
|
} catch (e) {
|
|
try {
|
|
Object.defineProperty(window.performance, "measure", {
|
|
value: undefined,
|
|
configurable: true,
|
|
});
|
|
} catch (defineError) {
|
|
try {
|
|
window.performance.measure = undefined;
|
|
} catch (assignmentError) {}
|
|
}
|
|
}
|
|
})();
|
|
</script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<title>CM 助手</title>
|
|
<script src="/runtime-config.js" data-runtime-config></script>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|