snapshot before merge
This commit is contained in:
1 parent
06a5f3da4d
commit
671871e0b2
145 files changed
+9786
-59
No files matched your search
@@ -0,0 +1,68 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
|
||||
<title>WriteServer - Blog CMS</title>
|
||||
<style>
|
||||
:root{color-scheme:dark;--bg:#0f172a;--card:#1e293b;--text:#e2e8f0;--muted:#94a3b8;--accent:#38bdf8;--accent-hover:#7dd3fc;--danger:#fca5a5;--success:#86efac;--line:#334155}
|
||||
*{box-sizing:border-box;margin:0;padding:0}
|
||||
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;min-height:100vh;padding:24px}
|
||||
.container{max-width:900px;margin:0 auto}
|
||||
h1{font-size:22px;font-weight:700;margin-bottom:4px}
|
||||
.sub{font-size:14px;color:var(--muted);margin-bottom:24px}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px}
|
||||
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
|
||||
.card-title{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px}
|
||||
.card-value{font-size:28px;font-weight:700}
|
||||
.card-value.blue{color:var(--accent)}
|
||||
.links{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
|
||||
a.btn{display:inline-block;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;transition:all 0.15s}
|
||||
a.btn-primary{background:var(--accent);color:#0f172a}
|
||||
a.btn-primary:hover{background:var(--accent-hover)}
|
||||
a.btn-secondary{background:transparent;border:1px solid var(--line);color:var(--text)}
|
||||
a.btn-secondary:hover{background:rgba(255,255,255,0.05)}
|
||||
.status{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:16px}
|
||||
.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
|
||||
.dot.green{background:var(--success);box-shadow:0 0 6px var(--success)}
|
||||
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
|
||||
.ql{padding:5px 12px;border-radius:6px;background:rgba(255,255,255,0.04);border:1px solid var(--line);color:var(--accent);text-decoration:none;font-size:12px;font-weight:500}
|
||||
.ql:hover{background:rgba(255,255,255,0.08)}
|
||||
.footer{margin-top:32px;text-align:center;font-size:12px;color:var(--muted)}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>WriteServer</h1>
|
||||
<p class="sub">Blog CMS - Go Edition</p>
|
||||
<div class="status"><div class="dot green"></div><span>Server running</span></div>
|
||||
<div class="grid">
|
||||
<div class="card"><div class="card-title">Posts</div><div class="card-value blue" id="posts">-</div></div>
|
||||
<div class="card"><div class="card-title">RSS Feeds</div><div class="card-value" id="feeds">-</div></div>
|
||||
<div class="card"><div class="card-title">Links</div><div class="card-value" id="links">-</div></div>
|
||||
<div class="card"><div class="card-title">Recycle Bin</div><div class="card-value" id="recycle">-</div></div>
|
||||
</div>
|
||||
<div class="links">
|
||||
<a class="btn btn-primary" href="http://localhost:8017/">Open Admin Panel</a>
|
||||
<a class="btn btn-secondary" href="/api/posts">API: Posts</a>
|
||||
<a class="btn btn-secondary" href="/api/stats">API: Stats</a>
|
||||
</div>
|
||||
<div class="quick">
|
||||
<a class="ql" href="/api/recycle">Recycle Bin</a>
|
||||
<a class="ql" href="/api/rss/feeds">RSS Feeds</a>
|
||||
<a class="ql" href="/api/rss/links">Links</a>
|
||||
</div>
|
||||
<div class="footer">WriteServer - Go</div>
|
||||
</div>
|
||||
<script>
|
||||
fetch('/api/stats').then(r=>r.json()).then(d=>{
|
||||
document.getElementById('posts').textContent=d.posts||0;
|
||||
document.getElementById('feeds').textContent=d.feeds||0;
|
||||
document.getElementById('links').textContent=d.links||0;
|
||||
});
|
||||
fetch('/api/recycle').then(r=>r.json()).then(d=>{
|
||||
document.getElementById('recycle').textContent=Array.isArray(d.items)?d.items.length:0;
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user