bwadmin
|
4d6325c70e
|
feat(public): 首页分类移至左侧侧栏 + 大屏自适应布局
- 分类导航由顶部横条改为左侧 sticky 侧栏(≥1025px),含快速导航/我常访问/热门/书签分类/站点页面
- 首页左右去留白:.container 与 .topbar-inner 改为 max-width:100%,布局铺满视口
- 卡片网格按屏宽自适应(minmax(var(--card-min),1fr)),1920 固定 6 列
- 移除顶部 .actions 菜单(与侧栏站点页面重复),主题切换改由侧栏按钮循环切换
- 新增 get_nav_categories() 统一锚点(侧栏/顶部/抽屉/section id 四者同源),修复空分类错位;后台分类增删改/启停后失效前台缓存
|
2026-09-07 11:11:22 +08:00 |
|
bwstudio
|
34e8010830
|
feat(site): 方案 C - 「我常访问」个人榜(匿名 ID + localStorage 合并)
- NavClick 加 anon_id 字段(已为历史表自动迁移)
- 后端静默下发 wk_anon cookie(uuid4,1 年,HttpOnly)
- 点击埋点写入 anon_id;新增 GET /site/api/my-top 与 POST /site/api/my-clear
- 首页服务端渲染「我常访问」区(时间衰减加权分),与「热门网址」共显
- 前端 localStorage 累计 + 与服务端榜取 max 合并;冷启动阈值 2 个网址
- 一键清除:清 localStorage + 服务端删该匿名 ID 的全部记录
- 移动端抽屉、顶部导航同步加「我常访问」入口
- 底部隐私说明更新
|
2026-09-06 19:16:45 +08:00 |
|
bwstudio
|
a47ad991d0
|
feat(public): 首页增加「热门网址」分类(访问量 TOP12)
跨分类聚合:按 NavClick 总点击数倒序,取前 12 个有效 nav。
实现要点:
- applications/view/public/nav.py: 新增 _top_navs(limit=12),
复用 get_nav_visit_counts() 的 60s 进程内缓存;同点击数按 id asc 稳定排序;
0 点击返回空列表(前端整段不渲染)
- _render_index() 注入 top_navs 到模板
- templates/public/index.html: 在 groups 循环前渲染 .section-hot,标题「🔥 热门网址」,
meta 显示「近期访问量最大的 N 个」;卡片复用 .card,新增 .card-top 类
- templates/public/base.html:
- .card-top:左侧 3px 品牌色边框 + 浅色背景渐变 + hover 增强阴影
- .section-hot h2 图标用 brand-orange #ff6b35
- .cat-nav-inner a.cat-nav-hot 顶部导航热门入口用品牌色
- 抽屉:首页 top_navs 非空时插入「🔥 热门」区段,链接到 #cat-top
边界:
- 没有任何点击时整段隐藏(包括抽屉和顶部 nav),不出现「0 个」空标题
- 同一 nav 不会重复(按 nav.id 维度聚合)
- Nav.enable=0 的不会进 TOP12
验证:
- 15 个 nav 各灌入 20..6 次点击,前 12 个按降序显示访问数 20..9
- 清空所有 NavClick 后首页 section-hot / #cat-top / .cat-drawer-hot 三处全不渲染
- 测试数据已清理
|
2026-09-06 18:52:05 +08:00 |
|
bwstudio
|
0ffc103e46
|
feat(plugins): 4 个业务插件代码 + 前台公开页面改造
plugins/navManager:导航 CRUD + 导航分类 CRUD(独立 blueprint)
plugins/friendManager:友情链接 CRUD
plugins/aboutManager:关于本站 CRUD
plugins/siteStats:访问统计主页 + JSON 接口 + /site/* GET 埋点 + nav 卡片点击埋点
applications/view/public/nav.py:导航聚合页 / 分类详情 / JSON 接口,支持 visit_count 注入
applications/view/public/about.py:关于本站公开页
applications/view/public/friend.py:友情链接公开页
templates/public/base.html:响应式首页(搜索框 / 分类抽屉 / 5 主题切换 / footer 隐私小字)
templates/public/index.html / category.html:卡片右下角访问次数
templates/public/about.html / friend.html:关于 + 友链前台页
docs/plugins-development.md:插件开发完整指南(生命周期 + 4 个示例 + FAQ + framework 迁移)
scripts/:探针与端到端验证脚本(probe_*/verify_*/test_*)
|
2026-09-06 18:18:06 +08:00 |
|
bwstudio
|
9ba96bcc3e
|
style(public): 前台导航页响应式适配 + 暗色模式 + 锚点目录
主要改动
- templates/public/base.html
- 增加 3 套响应式断点:≤900px(平板)、≤600px(手机)、≤360px(小屏)
- topbar 在小屏下压缩 padding/字号,actions 自适应换行
- grid 卡片在手机端最小 160px,小屏单列
- 卡片字号、间距在手机端缩放
- 增加 sticky 分类目录条占位
- 增加回到顶部按钮(滚动后显示)
- 增加暗色模式 CSS(prefers-color-scheme + data-theme 手动覆盖)和主题切换按钮
- 补充 theme-color、viewport 等移动端 meta
- templates/public/index.html
- 输出 5 个分类的 sticky 目录导航(点击锚点跳转)
- 每个 section 设置 id=cat-N 锚点
- 卡片 title/url 增加 title 提示
- templates/public/category.html
- 目录条加返回首页 + 当前分类名
- section 锚点统一为 cat-detail
验证
- curl 抓取 /site/ 响应 200,HTML 中 10 项响应式/交互特性检查全部通过
- 服务器本地运行无异常
|
2026-09-05 15:33:45 +08:00 |
|
bwstudio
|
b208087f74
|
feat(nav): 新增前台公开导航页与后台导航管理
新增模块
- Nav 模型(applications/models/admin_nav.py):公开导航表,与 admin_power 解耦
- NavOutSchema / NavManageSchema(applications/schemas/admin_nav.py)
- 前台公开视图 applications/view/public/nav.py:/site/、/site/category/<name>、/site/api/navs,无需登录
- 后台管理视图 applications/view/system/nav.py:CRUD + 启用/禁用,挂入 system_bp
- 前台模板 templates/public/{base,index,category}.html(独立配色,无需登录即可访问)
- 后台模板 templates/system/nav/{main,add,edit}.html(Layui table + form)
调整
- applications/view/__init__.py:注册前台蓝图到根
- applications/view/system/__init__.py:注册后台 nav 子蓝图
- applications/common/script/admin.py:admin init/export 支持 navs 数组
- applications/common/script/app_data/init.json:新增 10 条导航种子 + 4 条 system:nav 权限
数据库
- 新增 public_nav 表(含 category 索引)
- migration: 38751d88d42c_add_public_nav_table.py
|
2026-09-05 14:58:08 +08:00 |
|