Rely on loopback bind plus Host/Origin checks; open http://127.0.0.1:8787/ without a query token after SSH tunnel. Co-authored-by: Cursor <cursoragent@cursor.com>
43 lines
1.8 KiB
HTML
43 lines
1.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>个人工程中控台</title>
|
|
<link rel="stylesheet" href="/assets/app.css">
|
|
</head>
|
|
<body>
|
|
<a class="skip" href="#main">跳到主内容</a>
|
|
<header class="top">
|
|
<div>
|
|
<h1>个人工程中控台</h1>
|
|
<p class="meta" id="repo-meta">加载中…</p>
|
|
</div>
|
|
<p class="banner" role="status">只读本地工具 · 不写文档 · 不操作 Git/Docker · 不控制 Herdr</p>
|
|
</header>
|
|
<div class="layout">
|
|
<button type="button" class="nav-toggle" id="nav-toggle" aria-controls="nav" aria-expanded="false">菜单</button>
|
|
<nav id="nav" aria-label="主导航">
|
|
<ul>
|
|
<li><button type="button" data-view="overview" class="nav-btn active">总览</button></li>
|
|
<li><button type="button" data-view="modules" class="nav-btn">架构/模块</button></li>
|
|
<li><button type="button" data-view="tasks" class="nav-btn">任务</button></li>
|
|
<li><button type="button" data-view="git" class="nav-btn">Git</button></li>
|
|
<li><button type="button" data-view="deploy" class="nav-btn">部署</button></li>
|
|
<li><button type="button" data-view="docs" class="nav-btn">文档</button></li>
|
|
<li><button type="button" data-view="evidence" class="nav-btn">证据链</button></li>
|
|
</ul>
|
|
<label class="search-label">搜索
|
|
<input type="search" id="q" placeholder="标题 / 路径 / 正文" autocomplete="off">
|
|
</label>
|
|
<div id="source-strip" class="source-strip" aria-live="polite"></div>
|
|
</nav>
|
|
<main id="main" tabindex="-1">
|
|
<div id="view-status" class="view-status" role="status"></div>
|
|
<div id="content"></div>
|
|
</main>
|
|
</div>
|
|
<script src="/assets/app.js"></script>
|
|
</body>
|
|
</html>
|