Vendorize Lovart dashboard shell
这个提交包含在:
@@ -0,0 +1,111 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Lovart 设计来源与本地化清单</title>
|
||||
<style>
|
||||
:root {
|
||||
--bg: #08111f;
|
||||
--panel: rgba(9, 18, 32, 0.9);
|
||||
--border: rgba(137, 171, 214, 0.2);
|
||||
--text: #f7fafc;
|
||||
--muted: #9fb3ca;
|
||||
--accent: #5eead4;
|
||||
}
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
|
||||
color: var(--text);
|
||||
background:
|
||||
radial-gradient(circle at top left, rgba(94, 234, 212, 0.12), transparent 26%),
|
||||
linear-gradient(160deg, #050c16 0%, #091526 50%, #10233d 100%);
|
||||
}
|
||||
main {
|
||||
max-width: 1080px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 20px 40px;
|
||||
}
|
||||
.panel {
|
||||
background: var(--panel);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 20px;
|
||||
padding: 24px;
|
||||
box-shadow: 0 24px 80px rgba(1, 7, 20, 0.45);
|
||||
}
|
||||
.actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.chip {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
border-radius: 999px;
|
||||
border: 1px solid var(--border);
|
||||
padding: 10px 14px;
|
||||
color: var(--text);
|
||||
background: rgba(255,255,255,0.05);
|
||||
text-decoration: none;
|
||||
}
|
||||
.chip:hover { border-color: rgba(94, 234, 212, 0.42); }
|
||||
h1 {
|
||||
margin: 0 0 12px;
|
||||
font-family: "IBM Plex Serif", Georgia, serif;
|
||||
font-size: clamp(1.8rem, 4vw, 3rem);
|
||||
line-height: 1.08;
|
||||
}
|
||||
.meta {
|
||||
color: var(--muted);
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
pre {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
overflow: auto;
|
||||
border-radius: 16px;
|
||||
border: 1px solid rgba(137, 171, 214, 0.12);
|
||||
background: rgba(2, 8, 22, 0.84);
|
||||
color: #d6e5f5;
|
||||
font-family: "IBM Plex Mono", "SFMono-Regular", monospace;
|
||||
font-size: 0.92rem;
|
||||
line-height: 1.6;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="panel">
|
||||
<div class="actions">
|
||||
<a class="chip" href="../index.html">Back to dashboard</a>
|
||||
</div>
|
||||
<h1>Lovart 设计来源与本地化清单</h1>
|
||||
<div class="meta">Local vendor manifest for the Lovart-derived dashboard shell.</div>
|
||||
<pre>{
|
||||
"template_id": "lovart-authorized-lab-dashboard",
|
||||
"source_url": "https://assets-persist.lovart.ai/agent_images/464011bb-fbbc-4bd4-98f8-90897dd43612.html",
|
||||
"downloaded_at": "2026-03-17T07:56:29Z",
|
||||
"original_filename": "464011bb-fbbc-4bd4-98f8-90897dd43612.html",
|
||||
"vendor_source_path": "scripts/lab/dashboard_templates/lovart/vendor/464011bb-fbbc-4bd4-98f8-90897dd43612.html",
|
||||
"runtime_template": {
|
||||
"index": "scripts/lab/dashboard_templates/lovart/index.html",
|
||||
"styles": "scripts/lab/dashboard_templates/lovart/assets/styles.css",
|
||||
"app": "scripts/lab/dashboard_templates/lovart/assets/app.js",
|
||||
"icons": "scripts/lab/dashboard_templates/lovart/assets/icons.svg"
|
||||
},
|
||||
"notes": [
|
||||
"The remote Lovart HTML is tracked for provenance only and is not used at runtime.",
|
||||
"Runtime assets are localized into repository-managed templates and generated output.",
|
||||
"External fonts and icon CDNs are intentionally removed from the generated dashboard."
|
||||
]
|
||||
}
|
||||
</pre>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
@@ -85,7 +85,7 @@
|
||||
<a class="chip" href="../index.html">Back to dashboard</a>
|
||||
</div>
|
||||
<h1>本地前端工作台设计文档</h1>
|
||||
<div class="meta">Dashboard-local mirror of the UI and interaction specification. | source: docs/frontend-dashboard-design.md</div>
|
||||
<div class="meta">Dashboard-local mirror of the UI and interaction specification.</div>
|
||||
<pre># 本地前端工作台设计文档
|
||||
|
||||
> `LAB ONLY` | `AUTHORIZED TARGETS ONLY`
|
||||
@@ -119,6 +119,8 @@
|
||||
- 信息密度高,但必须可折叠、可筛选、可逐层展开
|
||||
- 日志与原始 JSON 必须能直接预览
|
||||
- 页面视觉应更生动,但不能牺牲扫描效率
|
||||
- 默认路由采用正式新 UI,同时保留 `legacy` 回退入口
|
||||
- 运行期不得依赖外部 HTML、字体 CDN 或图标 CDN
|
||||
|
||||
## 3. 信息架构
|
||||
|
||||
@@ -376,7 +378,22 @@ flowchart LR
|
||||
|
||||
前端不直接写这些数据,只读取并展示。
|
||||
|
||||
## 10. 落地约束
|
||||
## 10. 路由与文档地址
|
||||
|
||||
- `/index.html`
|
||||
- 默认正式入口,使用本地化 Lovart UI 外壳
|
||||
- `/legacy/index.html`
|
||||
- 旧版 dashboard 回退入口
|
||||
- `/docs/project-features.html`
|
||||
- 功能说明镜像页
|
||||
- `/docs/frontend-dashboard-design.html`
|
||||
- 设计说明镜像页
|
||||
- `/docs/secure-code-index.html`
|
||||
- secure-code 索引镜像页
|
||||
- `/docs/design-source.html`
|
||||
- Lovart vendor 来源和本地化说明
|
||||
|
||||
## 11. 落地约束
|
||||
|
||||
- 保持静态前端,不引入长期运行后端
|
||||
- 本地 `serve-dashboard` 即可查看
|
||||
@@ -384,7 +401,7 @@ flowchart LR
|
||||
- 不依赖第三方 CDN UI 库
|
||||
- 优先使用原生 HTML/CSS/JS,可长期维护
|
||||
|
||||
## 11. 验收标准
|
||||
## 12. 验收标准
|
||||
|
||||
页面完成后,应满足:
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
<a class="chip" href="../index.html">Back to dashboard</a>
|
||||
</div>
|
||||
<h1>项目功能与特性总览</h1>
|
||||
<div class="meta">Dashboard-local mirror of the repo feature guide. | source: docs/project-features.md</div>
|
||||
<div class="meta">Dashboard-local mirror of the repo feature guide.</div>
|
||||
<pre># 项目功能与特性总览
|
||||
|
||||
> `LAB ONLY` | `AUTHORIZED TARGETS ONLY`
|
||||
@@ -149,6 +149,9 @@
|
||||
- `report.md`, `report.html`, `timeline.mmd`, `assets/`, `logs/`
|
||||
- `08-threat-intel/generated/dashboard/`
|
||||
- 静态前端工作台
|
||||
- `/index.html` 为本地化 Lovart 正式 UI
|
||||
- `/legacy/index.html` 为旧版工作台回退入口
|
||||
- `/docs/*.html` 为本地可访问的说明与设计镜像页
|
||||
- `07-framework-security/`
|
||||
- 系统级 README、INDEX、案例页,自动显示本地实证状态
|
||||
|
||||
@@ -248,6 +251,15 @@ python3 /Users/x/websafe/scripts/lab/main.py serve-dashboard --port 8734
|
||||
详细设计见:
|
||||
|
||||
- [本地前端工作台设计文档](/Users/x/websafe/docs/frontend-dashboard-design.md)
|
||||
|
||||
当前地址布局固定为:
|
||||
|
||||
- `/index.html`
|
||||
- 默认新 UI,基于本地化 Lovart 视觉壳层,绑定真实 dashboard JSON
|
||||
- `/legacy/index.html`
|
||||
- 旧版工作台显式保留,用于快速回退和对照
|
||||
- `/docs/design-source.html`
|
||||
- 设计来源、vendor manifest 与本地化说明
|
||||
</pre>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
<a class="chip" href="../index.html">Back to dashboard</a>
|
||||
</div>
|
||||
<h1>安全编码修复库索引</h1>
|
||||
<div class="meta">Dashboard-local mirror of the secure-code library index. | source: 05-defense/secure-code/INDEX.md</div>
|
||||
<div class="meta">Dashboard-local mirror of the secure-code library index.</div>
|
||||
<pre># 安全编码修复库
|
||||
|
||||
> `LAB ONLY` | 修复主题用于把实验发现映射回代码整改,不代表默认生产基线。
|
||||
|
||||
在新工单中引用
屏蔽一个用户