mirror of
https://github.com/truewhile/MeBox.git
synced 2026-11-15 20:34:23 +08:00
9cc21a47c5
- SmokeChain 结构化全链路冒烟(搜索→详情→目录→正文,分阶段失败定位), SmokeSource 支持不落库直测;Debug 接口改为结构化日志输出 - cmd/reader-smoke:批量书源冒烟 CLI(-file/-url 导入、并发、 各阶段通过率汇总、-json 完整报告) - GetContentForBook:书架维度正文(章节缓存 + 书源 replaceRegex + 用户替换净化规则),前端阅读器切换到该接口 - 替换净化规则 CRUD(后端 + /reader/replace 前端页),用户规则 按 scope/excludeScope 书名过滤、正则带匹配超时防回溯挂死 - rule.ApplyUserReplace 导出(regexp2 MatchTimeout)
24 lines
961 B
TypeScript
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>
|
|
)
|
|
}
|