134 lines
4.2 KiB
Markdown
134 lines
4.2 KiB
Markdown
# Release Notes
|
||
## v1.0.1
|
||
发布时间:2026年2月9日
|
||
版本定位:小程序 UI 优化与布局完善
|
||
|
||
### 里程碑与亮点
|
||
|
||
- 全面适配 Figma 设计稿,UI 风格统一
|
||
- 选择/已收藏区域改为自适应高度(flex fill)
|
||
- 搜索框默认完整展开显示
|
||
- 复选框图标始终显示,状态切换更直观
|
||
- 收藏图标区分已收藏(红心)和未收藏(白心)
|
||
- 新增底部版权说明
|
||
|
||
### 核心特性
|
||
|
||
#### 布局优化
|
||
- 选择和已收藏区域从固定高度改为 flex fill,自适应屏幕
|
||
- 统一三个区域(预览、选择、已收藏)的边框颜色为 `#3EE4C3`
|
||
- 统一容器 padding 为 8rpx
|
||
- 移除多余的嵌套 padding,避免边距叠加
|
||
|
||
#### 图标系统完善
|
||
- 复选框:checkbox.svg(选中)、checkbox-no.svg(未选中)
|
||
- 收藏:favorite.svg(未收藏)、favorite-red.svg(已收藏)
|
||
- 分类全选:selectall.svg / unselectall.svg
|
||
- 导出按钮:download.svg、export-svg-s.svg、export-png-s.svg
|
||
|
||
#### 对齐修复
|
||
- "选择"文字与搜索框垂直居中对齐
|
||
- "选择"和"已收藏"标题水平对齐
|
||
- 覆盖全局样式污染(padding/margin)
|
||
|
||
### 基础功能
|
||
|
||
- 文本输入 + 实时预览
|
||
- 字体搜索、分类树、收藏管理
|
||
- SVG/PNG 导出(远端 API 渲染)
|
||
- 字体大小滑块调节
|
||
- 颜色选择器
|
||
|
||
### 技术实现
|
||
|
||
- 框架:微信小程序原生
|
||
- 渲染:远端 API(apiserver)
|
||
- 状态:本地存储(wx.setStorageSync)
|
||
- 图标:本地 SVG 文件(/assets/icons/)
|
||
|
||
### 项目结构
|
||
|
||
```
|
||
miniprogram/
|
||
├── pages/index/ # 首页
|
||
│ ├── index.wxml # 页面结构
|
||
│ ├── index.wxss # 样式
|
||
│ └── index.js # 逻辑
|
||
├── assets/icons/ # 图标资源
|
||
├── utils/mp/ # 小程序工具函数
|
||
└── app.js/json/wxss # 应用配置
|
||
```
|
||
|
||
### 设计理念
|
||
|
||
- 遵循 Figma 设计稿,保持视觉一致性
|
||
- 适配小程序原生组件限制(如 input 最小高度)
|
||
- 简化图标状态切换逻辑,提升代码可维护性
|
||
|
||
## 下载和安装
|
||
|
||
### 系统要求
|
||
|
||
- 微信开发者工具 1.06+
|
||
- Node.js 18+(用于 apiserver)
|
||
|
||
### 快速开始
|
||
|
||
1. 克隆仓库
|
||
2. 微信开发者工具导入 `miniprogram/` 目录
|
||
3. 部署 apiserver(详见 apiserver/README.md)
|
||
4. 编译运行
|
||
|
||
### 生产构建
|
||
|
||
1. 配置合法域名:`fonts.biboer.cn`
|
||
2. 上传代码并提交审核
|
||
|
||
### 支持和反馈
|
||
|
||
- 邮箱:douboer@gmail.com
|
||
- 仓库:Issues
|
||
|
||
## v1.0.3
|
||
发布时间:2026年2月10日
|
||
版本定位:小程序远端路由切换与多节点接入增强
|
||
|
||
### 里程碑与亮点
|
||
|
||
- 新增小程序“无发版切换后端”能力(基于远端 `route-config.json`)
|
||
- 引入双确认切换策略,避免单点误配置导致错误跳转
|
||
- 增加 `cooldown` 防抖,防止 A/B 来回抖动
|
||
- 新增 Cloudflare Tunnel 入口域名支持(`mac-tunnel.biboer.cn`)
|
||
|
||
### 核心变更
|
||
|
||
#### 小程序路由管理
|
||
- 新增 `route-manager`,负责:
|
||
- 启动时读取路由配置
|
||
- 回前台按节流规则检查路由
|
||
- 接口失败时触发兜底路由检查
|
||
- 路由状态本地持久化:`activeServerKey`、`lastSwitchAt`、`routeConfigCache`、`lastRouteCheckAt`
|
||
|
||
#### 切换规则
|
||
- 双确认:当前服务读取到目标为 `B` 时,必须继续读取 `B` 的配置并确认 `active=B` 才切换
|
||
- 防抖:`cooldownMinutes` 控制最短驻留时间,`0` 表示允许立即切换
|
||
- 读取失败保护:目标配置读取失败或非法时保持当前服务不变
|
||
|
||
#### 接入与运维
|
||
- 新增 `miniprogram/assets/route-config.json` 配置模板
|
||
- `scripts/deploy-fonts.sh` 支持同步 `route-config.json`
|
||
- `miniprogram/README.md`、`apiserver/README.md` 同步更新
|
||
- mac 侧新增 Tunnel 接入路径,支持 `mac-tunnel.biboer.cn` 对外服务
|
||
|
||
### 配置注意事项
|
||
|
||
- 小程序后台必须将目标域名加入 `request` 与 `downloadFile` 合法域名
|
||
- `route-config.json` 修改后建议清除本地 `route-state` 并冷启动验证
|
||
- `/healthz` 建议使用 `GET` 校验(`HEAD` 可能返回 `501`)
|
||
|
||
### 验收项
|
||
|
||
- 可通过修改远端 `route-config.json` 在 A/B 节点间切换,无需重新发布小程序
|
||
- A/B 配置不一致时不切换(保护行为)
|
||
- 目标节点不可用时不切换(保护行为)
|