Files
MeBox/web/src/pages/reader/ReaderRoutes.tsx
T
truewhile 9cc21a47c5 feat(reader): P2 收尾——冒烟 CLI、书架正文链路、替换净化规则
- SmokeChain 结构化全链路冒烟(搜索→详情→目录→正文,分阶段失败定位),
  SmokeSource 支持不落库直测;Debug 接口改为结构化日志输出
- cmd/reader-smoke:批量书源冒烟 CLI(-file/-url 导入、并发、
  各阶段通过率汇总、-json 完整报告)
- GetContentForBook:书架维度正文(章节缓存 + 书源 replaceRegex +
  用户替换净化规则),前端阅读器切换到该接口
- 替换净化规则 CRUD(后端 + /reader/replace 前端页),用户规则
  按 scope/excludeScope 书名过滤、正则带匹配超时防回溯挂死
- rule.ApplyUserReplace 导出(regexp2 MatchTimeout)
2026-09-30 16:55:52 +08:00

24 lines
961 B
TypeScript

import { Navigate, Route, Routes } from 'react-router-dom'
import ReaderBookPage from './ReaderBookPage'
import ReaderHomePage from './ReaderHomePage'
import ReaderReplacePage from './ReaderReplacePage'
import ReaderSearchPage from './ReaderSearchPage'
import ReaderSourcesPage from './ReaderSourcesPage'
import ReaderViewPage from './ReaderViewPage'
// 阅读独立布局路由(不套影视 Layout,全屏沉浸;挂在 /reader/* 下)。
export default function ReaderRoutes() {
return (
<Routes>
<Route index element={<ReaderHomePage />} />
<Route path="search" element={<ReaderSearchPage />} />
<Route path="sources" element={<ReaderSourcesPage />} />
<Route path="replace" element={<ReaderReplacePage />} />
<Route path="book" element={<ReaderBookPage />} />
<Route path="view/:bookId" element={<ReaderViewPage />} />
<Route path="*" element={<Navigate to="/reader" replace />} />
</Routes>
)
}