Files
谢宇宁andClaude Opus 5.5 d2ddb1c321 [Ai] feat: 花魁短剧 Next.js 站点初始提交
- 原生 Next.js App Router + 严格 TypeScript 实现花魁短剧 PC/H5 页面,按 src/features/{catalog,content,playback} 组织,保留完整 SEO(metadata、JSON-LD、canonical、robots、llms、sitemap、IndexNow)。
- 主域名通过 SITE_URL=https://huakuidj.com 强制覆盖后端 foreverUrlAddr(config/*.env、src/server/config.ts、src/server/seo/shared.ts、src/server/services/shared.ts),支持邮箱改为 support@huakuidj.com。
- 移除登录与账户体系:删除 /account 全部页面、登录/注册/充值弹窗、收藏点赞、评论、金币解锁及对应 BFF 接口;旧账户地址 GET/HEAD 统一 301 到首页(src/lib/routes.ts REMOVED_ACCOUNT_PATHS),保留游客会话、反馈、图片上传、观看上报与搜索联想。
- 播放页:评论位改为同类推荐 + 热播榜单,锁定集改为 App 观看遮罩与底部弹层,新增简介标签、分集图例与独立视觉皮肤(src/features/playback、src/styles/pages/playback.css)。
- 卡片:短剧/视频卡状态与时长移至信息行胶囊标签,封面角标移至左上角(src/components/catalog/Cards.tsx、src/styles/foundations/base.css)。
- 同步更新单元测试、浏览器冒烟脚本、路由清单与 README。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:33:31 +07:00

287 lines
3.7 KiB
JSON

[
[
"/",
"Index"
],
[
"/search-mobile/",
"SearchMobile"
],
[
"/search/",
"Search"
],
[
"/search/:q/",
"Search"
],
[
"/search/:q/page/:page/",
"Search"
],
[
"/profile/",
"Profile"
],
[
"/history/",
"History"
],
[
"/history/page/:page/",
"History"
],
[
"/favorites/",
"Favorites"
],
[
"/favorites/page/:page/",
"Favorites"
],
[
"/favorites/:filter/",
"Favorites"
],
[
"/favorites/:filter/page/:page/",
"Favorites"
],
[
"/purchased/",
"PurchasedSeries"
],
[
"/purchased/page/:page/",
"PurchasedSeries"
],
[
"/setting/",
"Setting"
],
[
"/recharge/",
"Recharge"
],
[
"/about/",
"About"
],
[
"/help/",
"Help"
],
[
"/terms/",
"Terms"
],
[
"/privacy/",
"Privacy"
],
[
"/2257/",
"Compliance2257"
],
[
"/dmca/",
"DMCA"
],
[
"/download-app/",
"DownloadApp"
],
[
"/nav/",
"Nav"
],
[
"/dh/",
"Nav"
],
[
"/list/",
"List"
],
[
"/list/:theme/",
"List"
],
[
"/list/:theme/:updateStatus/:sortType/",
"List"
],
[
"/list/:theme/:updateStatus/:sortType/page/:page/",
"List"
],
[
"/more-list/:configId/:timeRange/:theme/page/:page/",
"MoreList"
],
[
"/more-list/:configId/:timeRange/:theme/",
"MoreList"
],
[
"/more-list/:configId/page/:page/",
"MoreList"
],
[
"/more-list/:configId/",
"MoreList"
],
[
"/more-series-list/:configId/:timeRange/:theme/page/:page/",
"MoreSeriesList"
],
[
"/more-series-list/:configId/:timeRange/:theme/",
"MoreSeriesList"
],
[
"/more-series-list/:configId/page/:page/",
"MoreSeriesList"
],
[
"/more-series-list/:configId/",
"MoreSeriesList"
],
[
"/series/",
"Series"
],
[
"/series/:media/:topic/:sortType/",
"Series"
],
[
"/series/:media/:topic/:sortType/page/:page/",
"Series"
],
[
"/topic/",
"Topic"
],
[
"/topic/page/:page/",
"Topic"
],
[
"/topic/sort/:sortType/",
"Topic"
],
[
"/topic/sort/:sortType/page/:page/",
"Topic"
],
[
"/topic-detail/:slug/sort/:sortType/page/:page/",
"TopicDetail"
],
[
"/topic-detail/:slug/sort/:sortType/",
"TopicDetail"
],
[
"/topic-detail/:slug/page/:page/",
"TopicDetail"
],
[
"/topic-detail/:slug/",
"TopicDetail"
],
[
"/rank/",
"Rank"
],
[
"/rank/page/:page/",
"Rank"
],
[
"/rank/:sortOrder/",
"Rank"
],
[
"/rank/:sortOrder/page/:page/",
"Rank"
],
[
"/tags/:slug/sort/:sortType/page/:page/",
"Tags"
],
[
"/tags/:slug/sort/:sortType/",
"Tags"
],
[
"/tags/:slug/page/:page/",
"Tags"
],
[
"/tags/:slug/",
"Tags"
],
[
"/recently-added/",
"RecentlyAdded"
],
[
"/recently-added/page/:page/",
"RecentlyAdded"
],
[
"/popular-recommend/",
"PopularRecommend"
],
[
"/popular-recommend/page/:page/",
"PopularRecommend"
],
[
"/popular-recommend/:rankType/",
"PopularRecommend"
],
[
"/popular-recommend/:rankType/page/:page/",
"PopularRecommend"
],
[
"/play/:slug/",
"Play"
],
[
"/play/:slug/:ep/",
"Play"
],
[
"/play/:slug/recommendations/page/:guessPage/",
"Play"
],
[
"/play/:slug/:ep/recommendations/page/:guessPage/",
"Play"
],
[
"/series-play/:slug/",
"SeriesPlay"
],
[
"/series-play/:slug/recommendations/page/:guessPage/",
"SeriesPlay"
],
[
"/login/",
"LoginPage"
],
[
"/register/",
"RegisterPage"
],
[
"/feedback/",
"Feedback"
]
]