Files
blog/public/admin/index.html
T
wait4xandGLM-5.3 ef2bd97267 fix(cms): 图库分组自由输入 + 前端筛选动态化;速通坞折叠防误触
用户实测三处:①照片分组写死 street/landscape 两选不能加——Sveltia select
无 creatable(文档核实),改 string 自由输入;前端筛选同步动态化(分组
从数据反向派生,[a-z0-9-] 命名的分组零配置自动出现筛选片),顺带排查全
后台其余 select:分轨/颜色/字体/来源均为语义契约(写死是安全设计)唯分
组该开放;②速通坞与编辑区抢点击(手机端尤甚)——改默认收起成一枚
26px 圆钮,点开才展开五入口,状态记忆+点外部收起;③翻译无按钮答疑:
英文版走构建链自动机翻(保存中文即出,无按钮是设计),仪表盘有覆盖数。
(同轮收编站长经 CMS 新增的图库照片 夜色金茂湾)

验证: pnpm astro build exit 0;config-check 通过;E2E 65/65(筛选断言适配动态 id);产物断言 f-g-landscape 数据派生

Spec: 2026-11-05_blog-5n-admin-deep-optimization

Co-authored-by: GLM-5.3
2026-11-05 22:34:38 +08:00

77 lines
4.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="robots" content="noindex" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>wait4x 后台</title>
<!-- 站点图标 + PWA(5n B2:手机加主屏独立入口) -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="manifest" href="./manifest.webmanifest" />
<style>
/* 速通坞(5n D1 + 用户实测防误触改版):默认收起成一枚小圆钮,
点开才展开五入口;开关状态存 localStorage(手机端默认必收起)。
收起态只有一个 26px 圆钮,不再与编辑区抢点击面。 */
#qd-toggle{position:fixed;top:10px;right:12px;z-index:9000;width:26px;height:26px;
border-radius:50%;border:1px solid rgba(127,131,140,.4);background:rgba(255,255,255,.85);
color:#5b6472;font:14px/1 system-ui,sans-serif;cursor:pointer;opacity:.6;transition:opacity .2s}
#qd-toggle:hover{opacity:1}
body[data-qd=open] #qd-toggle{background:rgba(52,84,209,.12);color:#3454d1;border-color:rgba(52,84,209,.4)}
#qd-links{position:fixed;top:44px;right:12px;z-index:9000;display:none;flex-direction:column;gap:4px;
font:12px/1 system-ui,sans-serif;padding:6px;border-radius:10px;background:rgba(255,255,255,.95);
box-shadow:0 2px 10px rgba(0,0,0,.12)}
body[data-qd=open] #qd-links{display:flex}
#qd-links a{color:#5b6472;text-decoration:none;padding:5px 10px;border-radius:6px;white-space:nowrap}
#qd-links a:hover{color:#3454d1;background:rgba(52,84,209,.08)}
</style>
</head>
<body>
<nav id="quick-dock" aria-label="快捷入口">
<button id="qd-toggle" type="button" aria-expanded="false" title="快捷入口">≡</button>
<div id="qd-links">
<a href="https://wait4x.online/artalk/" target="_blank" rel="noopener">评论管理</a>
<a href="./stats.html" target="_blank" rel="noopener">内容仪表盘</a>
<a href="https://git.wait4x.online/wait4x/blog" target="_blank" rel="noopener">仓库</a>
<a href="https://git.wait4x.online/wait4x/blog/src/branch/main/docs/%E5%90%8E%E5%8F%B0%E5%9B%9E%E6%BB%9A%E6%8C%87%E5%BC%95.md" target="_blank" rel="noopener">回滚指引</a>
<a href="https://git.wait4x.online/wait4x/blog/src/branch/main/docs/%E7%AE%A1%E7%90%86%E5%8F%B0.md" target="_blank" rel="noopener">管理台手册</a>
</div>
</nav>
<script>
// 速通坞开合:默认收起(误触根除);记住用户选择;点外部自动收起
(function () {
var t = document.getElementById('qd-toggle');
var set = function (open) {
document.body.dataset.qd = open ? 'open' : 'closed';
t.setAttribute('aria-expanded', String(open));
try { localStorage.setItem('qd-open', open ? '1' : '0'); } catch (e) {}
};
var saved;
try { saved = localStorage.getItem('qd-open'); } catch (e) {}
set(saved === '1'); // 缺省收起
t.addEventListener('click', function () {
set(document.body.dataset.qd !== 'open');
});
document.addEventListener('click', function (e) {
if (document.body.dataset.qd === 'open' && !e.target.closest('#quick-dock')) set(false);
});
})();
</script>
<!-- pinned 本地 bundle(0.259.0,5n T1 升级):官方模板仅此一个 script,无 CSS link、无 type=module -->
<script src="./sveltia-cms.js"></script>
<!-- 艺术字体切片(unicode-range 按需取片):选择面板的示例字形用真实字体渲染 -->
<link rel="stylesheet" href="/fonts/subset/hwmc/fonts.css" />
<link rel="stylesheet" href="/fonts/xiaowei/fonts.css" />
<link rel="stylesheet" href="/fonts/huangyou/fonts.css" />
<link rel="stylesheet" href="/fonts/mashanzheng/fonts.css" />
<link rel="stylesheet" href="/fonts/liujianmaocao/fonts.css" />
<link rel="stylesheet" href="/fonts/smiley/fonts.css" />
<link rel="stylesheet" href="/fonts/neoxihei/fonts.css" />
<!-- 可视化排版选择:类清单(单一数据源)→ 编辑器组件注册 → 预览样式注入(顺序固定:CMS 之后、init 之前) -->
<script src="./typography-classes.js"></script>
<script src="./typography-editor.js"></script>
<script src="./preview-style.js"></script>
<!-- 部署状态条(5n B1):轮询 /admin/build-status.json -->
<script src="./deploy-status.js"></script>
</body>
</html>