Compare commits
3 Commits
7b06516cbe
...
0242f14aaa
| Author | SHA1 | Date |
|---|---|---|
|
|
0242f14aaa | |
|
|
f4ad3a5195 | |
|
|
b29e2d11bf |
|
|
@ -61,7 +61,42 @@ jobs:
|
||||||
- name: Install frontend dependencies
|
- name: Install frontend dependencies
|
||||||
run: pnpm install --frozen-lockfile
|
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
|
- name: Build app & publish release
|
||||||
uses: tauri-apps/tauri-action@v0
|
uses: tauri-apps/tauri-action@v0
|
||||||
env:
|
env:
|
||||||
|
|
@ -71,7 +106,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
tagName: v__VERSION__ # 自动替换为 tauri.conf.json 里的版本号
|
tagName: v__VERSION__ # 自动替换为 tauri.conf.json 里的版本号
|
||||||
releaseName: "StealthReader v__VERSION__"
|
releaseName: "StealthReader v__VERSION__"
|
||||||
releaseBody: "See the assets to download and install."
|
releaseBody: ${{ steps.changelog.outputs.body }}
|
||||||
releaseDraft: true # 先创建草稿,手动确认后再发布
|
releaseDraft: true # 先创建草稿,手动确认后再发布
|
||||||
prerelease: false
|
prerelease: false
|
||||||
args: ${{ matrix.args }}
|
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",
|
"name": "stealthreader",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.3.0",
|
"version": "0.3.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue