neko-harness 0.4.7 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -47
- package/dist/client/assets/index-CP-ffuep.css +2 -0
- package/dist/client/assets/index-LHUxaMG9.js +396 -0
- package/dist/client/index.html +36 -2
- package/dist/gateway.js +1902 -1202
- package/dist/neko.js +40349 -37130
- package/package.json +1 -1
- package/dist/client/assets/index-Cdi87SA6.css +0 -2
- package/dist/client/assets/index-DYhp2f2g.js +0 -395
package/dist/client/index.html
CHANGED
|
@@ -4,13 +4,47 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta name="color-scheme" content="light" />
|
|
7
|
+
<script>
|
|
8
|
+
// 首屏前应用外观偏好(与 src/client/lib/appearance.ts 的键名/属性名对拍,test/appearance.test.ts)
|
|
9
|
+
(() => {
|
|
10
|
+
try {
|
|
11
|
+
const data = JSON.parse(localStorage.getItem("neko.appearance") || "null");
|
|
12
|
+
if (!data || typeof data !== "object") return;
|
|
13
|
+
const attrs = {
|
|
14
|
+
theme: "data-theme",
|
|
15
|
+
font: "data-chat-font",
|
|
16
|
+
size: "data-chat-size",
|
|
17
|
+
weight: "data-chat-weight",
|
|
18
|
+
leading: "data-chat-leading",
|
|
19
|
+
};
|
|
20
|
+
for (const key of Object.keys(attrs)) {
|
|
21
|
+
const value = data[key];
|
|
22
|
+
if (typeof value === "string" && /^[a-z0-9-]{1,16}$/.test(value))
|
|
23
|
+
document.documentElement.setAttribute(attrs[key], value);
|
|
24
|
+
}
|
|
25
|
+
const meta = document.querySelector('meta[name="color-scheme"]');
|
|
26
|
+
if (data.theme === "dark" && meta) meta.setAttribute("content", "dark");
|
|
27
|
+
} catch {}
|
|
28
|
+
})();
|
|
29
|
+
</script>
|
|
30
|
+
<script>
|
|
31
|
+
// 首屏前同步界面语言到 <html lang>(与 src/client/lib/language.ts 的键名对拍,test/language.test.ts)
|
|
32
|
+
(() => {
|
|
33
|
+
try {
|
|
34
|
+
document.documentElement.setAttribute(
|
|
35
|
+
"lang",
|
|
36
|
+
localStorage.getItem("neko.language") === "en" ? "en" : "zh-CN",
|
|
37
|
+
);
|
|
38
|
+
} catch {}
|
|
39
|
+
})();
|
|
40
|
+
</script>
|
|
7
41
|
<link
|
|
8
42
|
rel="icon"
|
|
9
43
|
href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='26' fill='%23ffb7c5'/%3E%3Ctext x='50' y='70' font-size='58' text-anchor='middle' fill='%23ffffff' font-family='sans-serif' font-weight='bold'%3En%3C/text%3E%3C/svg%3E"
|
|
10
44
|
/>
|
|
11
45
|
<title>neko harness</title>
|
|
12
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
46
|
+
<script type="module" crossorigin src="/assets/index-LHUxaMG9.js"></script>
|
|
47
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CP-ffuep.css">
|
|
14
48
|
</head>
|
|
15
49
|
<body>
|
|
16
50
|
<div id="root"></div>
|