Compare commits
3 Commits
7b06516cbe
...
0242f14aaa
| Author | SHA1 | Date |
|---|---|---|
|
|
0242f14aaa | |
|
|
f4ad3a5195 | |
|
|
b29e2d11bf |
|
|
@ -61,7 +61,42 @@ jobs:
|
|||
- name: Install frontend dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
# 7. 构建并发布(核心步骤)
|
||||
# 7. 从 docs/CHANGELOG.md 提取当前 tag 对应版本的更新日志
|
||||
- name: Extract changelog for release
|
||||
id: changelog
|
||||
shell: bash
|
||||
env:
|
||||
RELEASE_TAG: ${{ github.ref_name }}
|
||||
run: |
|
||||
node -e '
|
||||
const fs = require("fs");
|
||||
const content = fs.readFileSync("docs/CHANGELOG.md", "utf8");
|
||||
const lines = content.split(/\r?\n/);
|
||||
const marker = "## " + process.env.RELEASE_TAG;
|
||||
const startIdx = lines.findIndex((l) => l.trim().startsWith(marker));
|
||||
if (startIdx === -1) {
|
||||
fs.writeFileSync("release_body.md", "");
|
||||
process.exit(0);
|
||||
}
|
||||
let endIdx = lines.length;
|
||||
for (let i = startIdx + 1; i < lines.length; i++) {
|
||||
if (/^##\s/.test(lines[i])) {
|
||||
endIdx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
fs.writeFileSync(
|
||||
"release_body.md",
|
||||
lines.slice(startIdx + 1, endIdx).join("\n").trim()
|
||||
);
|
||||
'
|
||||
{
|
||||
echo "body<<CHANGELOG_BODY_EOF"
|
||||
cat release_body.md
|
||||
echo "CHANGELOG_BODY_EOF"
|
||||
} >> "$GITHUB_OUTPUT"
|
||||
|
||||
# 8. 构建并发布(核心步骤)
|
||||
- name: Build app & publish release
|
||||
uses: tauri-apps/tauri-action@v0
|
||||
env:
|
||||
|
|
@ -71,7 +106,7 @@ jobs:
|
|||
with:
|
||||
tagName: v__VERSION__ # 自动替换为 tauri.conf.json 里的版本号
|
||||
releaseName: "StealthReader v__VERSION__"
|
||||
releaseBody: "See the assets to download and install."
|
||||
releaseBody: ${{ steps.changelog.outputs.body }}
|
||||
releaseDraft: true # 先创建草稿,手动确认后再发布
|
||||
prerelease: false
|
||||
args: ${{ matrix.args }}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,57 @@
|
|||
# 更新日志
|
||||
|
||||
本文件记录 StealthReader 各版本的更新内容。
|
||||
|
||||
---
|
||||
|
||||
## v0.3.0(2026-08-24 16:52)
|
||||
### 🎉 新版本发布!
|
||||
|
||||
### ✨ 新增功能
|
||||
|
||||
- **应用自动更新**:接入 `@tauri-apps/plugin-updater` 与 `process` 插件,应用启动时静默检查并自动更新,完善了更新流程的异常处理与用户交互。
|
||||
- **手动更新入口**:在「设置 → 关于」页面新增「检查更新」按钮,支持更新中/已是最新/更新失败等状态提示。
|
||||
|
||||
### 🎨 优化
|
||||
|
||||
- **书籍详情页**:重构布局,新增「继续阅读」快速入口;调整简介展示逻辑,优化页面排版。
|
||||
- **阅读器**:优化章节标题显示逻辑。
|
||||
- **关于页面**:重构并完善(升级为完整更新入口页面)。
|
||||
|
||||
### 📄 文档
|
||||
|
||||
- 新增界面预览图并补充 README,直观展示应用效果。
|
||||
|
||||
### 🔧 其他
|
||||
|
||||
- 升级依赖(updater/process 插件)并调整更新相关权限与配置(`capabilities`、`tauri.conf.json`)。
|
||||
|
||||
---
|
||||
|
||||
## v0.2.0(2026-08-24 14:00)
|
||||
### 🎉 新版本发布!
|
||||
|
||||
### ✨ 新增功能
|
||||
|
||||
- **小说阅读器**:整页窗口可拖动;正文按字符串自动分页(一屏一页),支持点击左/右半屏、键盘方向键翻页;提供「上一章 / 下一章」快速切换。
|
||||
- **阅读进度追踪**:新增 `reading_progress` 表记录每章阅读状态;章节列表已读章节置灰显示(`is_read`);记录书籍最后阅读位置与时间。
|
||||
- **书籍导入与解析**:自动识别文件编码(GBK/UTF-8/Big5 等)并解码,按正则智能解析章节,事务一次性写入书籍与全部章节。
|
||||
- **章节标题模糊搜索**:详情页支持按章节标题关键字搜索。
|
||||
- **全局加载状态**:新增 `useLoading` hook 与全局加载遮罩,可自定义加载文字(导入中…/加载中…/删除中…)。
|
||||
- **书籍管理**:列表右键「编辑 / 删除」,编辑弹窗、删除二次确认,默认封面图 `cover.jpg`。
|
||||
|
||||
### 🎨 优化
|
||||
|
||||
- 详情页章节列表双列展示、分页组件;简介区域滚动条包裹;返回按钮悬浮化。
|
||||
- 阅读器默认封面、返回按钮样式与阅读字号优化。
|
||||
- 数据库模型与表结构对齐(`introduction` 字段、`chapters` 主键、可空 `last_read_time`)。
|
||||
|
||||
### 🐛 修复
|
||||
|
||||
- 修复 Windows 下 SQLite 路径无法打开数据库的问题。
|
||||
- 修复重复阅读已读章节时的 `UNIQUE constraint failed`(改为 UPSERT)。
|
||||
- 修复删除确认无响应、Tauri 命令参数 camelCase 不匹配、`NaiveDateTime` 序列化失败等问题。
|
||||
|
||||
### 🚀 工程
|
||||
|
||||
- 配置 GitHub Actions 多平台打包与 release 发布流程(Windows/macOS/Linux)。
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "stealthreader",
|
||||
"private": true,
|
||||
"version": "0.3.0",
|
||||
"version": "0.3.1",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
|
|
|||
Loading…
Reference in New Issue