Skip to content
Gazer-887Public

About

🔮 Diviner · 卜兮 —— 去古板化的现代占卜算卦网站 | 八字 / 姓名 / 每日运势 / 塔罗 / 抽签 / 六爻八卦 | Next.js 16 + React 19 静态导出

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Diviner · 卜兮

多主题风格、去古板化的现代占卜算卦网站 —— 八字 / 姓名 / 每日运势 / 塔罗 / 抽签解签 / 六爻八卦 定位:传统文化 × 娱乐参考 | 技术栈:Next.js 16 + React 19 + TypeScript | 部署:腾讯云 CloudBase(已上线)

项目状态

全阶段完成(2026-09-07):

阶段 内容 测试
0 脚手架 Next.js 16 + 静态导出 + GitHub 公开仓库 —
1 设计系统 4 套主题(月明青山/红豆生思/似天在水/昔我往矣)+ 首页 + 主题切换 浏览器截图
2 占卜引擎 五引擎(八字/姓名/运势/塔罗/抽签)+ 内容库(752 字笔画 / 78 塔罗 / 40 签 / 12 生肖) 48 单元测试
3 五玩法页面 /bazi /name /daily /tarot /lottery + 公共组件(PageShell/Field/Button/ResultCard) + 动画体系 浏览器交互回归
4 打磨 SEO(sitemap/robots/favicon)+ ShareButton(Web Share + clipboard)+ 响应式 + prefers-reduced-motion + 免责声明 移动端 375px 全页截图
5 测试交叉验证 tests/cross-validate.test.ts 29 项独立真值验证(干支合法性/五行守恒/塔罗分布/抽签分布/运势确定性) + 边界条件 77 测试全绿
6 部署上线 CloudBase CLI 部署静态托管 out/ → https://suanmingde-d0g9p1ora0e30c601-1451544835.tcloudbaseapp.com 8 路由 200 + 五玩法页真实交互回归
8 六爻八卦 新增第 6 种玩法 /liuyao(铜钱摇卦引擎 + 64 卦内容库 + 摇卦仪式动效)+ 首页 3×2 布局 + 主题装饰纹理 14 单测 + 4 交叉验证
9 主题重构 主题体系重构 + 品牌升级「卜兮」+ 内容扩充 200%+ + WCAG 2.1 AA 校准 —
11 性能优化 装饰动画迁移到 GPU 合成层(只动 transform/opacity)+ 主题辨识度增强 + 微交互 95 测试全绿
12 仪式元素 每套主题专属仪式元素(星轨/朱砂/全息/花瓣)铺满 6 玩法页 —

目录结构

D:\Diviner\
├── README.md            # 项目说明(本文件)
├── DEPLOY.md            # 部署指南(EdgeOne Pages / CloudBase)
├── CHANGELOG.md         # 变更记录
├── AGENTS.md            # AI 代理协作约定
├── requirements.txt     # Python 依赖
├── package.json         # 依赖与脚本
├── tsconfig.json        # TypeScript 配置
├── next.config.ts       # Next.js 配置(output: "export")
├── vitest.config.ts     # Vitest 配置
├── eslint.config.mjs    # ESLint 配置
├── .gitignore           # Git 忽略规则
├── .gitattributes       # 换行符 / 二进制标记规范
├── .editorconfig        # 编辑器统一规范
├── .env.example         # 环境变量模板
├── public/              # 静态资源(favicon.svg 等)
├── src/                 # 源码
│   ├── app/             # Next.js App Router
│   │   ├── api/         # 二期扩展预留(README 占位)
│   │   ├── bazi/        # 生辰八字
│   │   ├── name/        # 姓名测试
│   │   ├── daily/       # 每日运势
│   │   ├── tarot/       # 塔罗占卜
│   │   ├── lottery/     # 抽签解签
│   │   ├── liuyao/      # 六爻八卦(阶段 8 新增)
│   │   ├── not-found.tsx# 自定义 404
│   │   ├── sitemap.ts   # sitemap.xml
│   │   ├── robots.ts    # robots.txt
│   │   └── globals.css  # 全局样式 + 动画体系 + 仪式元素
│   ├── components/      # 公共组件(theme/ + ui/)
│   ├── lib/             # 引擎 + 内容库 + 类型契约
│   │   ├── engines/     # 五套占卜引擎
│   │   ├── data/        # 笔画库/塔罗/签文/运势文案
│   │   ├── theme/       # 主题注册表
│   │   └── engines/types.ts  # 统一类型契约
│   └── ...
├── tests/               # 测试
│   ├── bazi.test.ts     # 八字单元测试(5 项)
│   ├── name.test.ts     # 姓名单元测试(13 项)
│   ├── daily.test.ts    # 运势单元测试(11 项)
│   ├── tarot.test.ts    # 塔罗单元测试(10 项)
│   ├── lottery.test.ts  # 抽签单元测试(9 项)
│   ├── liuyao.test.ts   # 六爻单元测试(14 项)← 阶段 8 新增
│   └── cross-validate.test.ts # 独立真值交叉验证(29 项 + 六爻 4 项)
├── scripts/             # 辅助脚本
├── docs/                # 文档
├── resources/           # 非代码资源
│   ├── shots/           # 阶段验证截图(s0-s12)
│   └── README.md
├── NOTEBOOK/            # 开发笔记(不入 git)
├── PLAN/                # 实施计划(不入 git)
└── .workbuddy/          # WorkBuddy 内部数据(不入 git)

快速开始

# 依赖安装(Node 22+)
npm install

# 开发服务(http://localhost:3000)
npm run dev

# 构建(webpack,绕宿主 safe-delete shim)
npm run build:local

# 测试(95 用例全绿)
npm test

# 代码质量
npx tsc --noEmit
npx eslint .

部署

已上线(2026-09-01):https://suanmingde-d0g9p1ora0e30c601-1451544835.tcloudbaseapp.com

  • 平台:腾讯云 CloudBase 静态托管(环境 suanmingde-d0g9p1ora0e30c601,个人版,ap-shanghai)
  • 一键部署:pwsh scripts/deploy.ps1(构建 → 验证 → 登录 → 部署,默认部署到上述环境)
  • 详细指南与已知限制(测试域名提示页 / 软 404 / 环境到期)见 DEPLOY.md
  • 备选:EdgeOne Pages(默认 *.edgeone.app 子域名免备案,需在控制台配置)

架构说明

详见 docs/architecture.md:五引擎纯前端架构(确定性 RNG + 内容库)、静态导出、二期 /api 扩展点。

设计系统

四套主题通过 CSS 变量热切,支持系统主题持久化(localStorage.diviner-theme):

主题 标签 风格 仪式元素
月明青山 星辰 深紫底 + 金色 accent(默认) 星轨进度环
红豆生思 水墨 浅米底 + 墨绿 accent 朱砂印记
似天在水 玄学 深青底 + 荧光蓝 accent 全息网格扫描
昔我往矣 春晓 绿粉底 + 春意 accent 花瓣飘落

占卜玩法

玩法 路由 说明
生辰八字 /bazi 真太阳时四柱排盘 + 五行分析
姓名测试 /name 五格三才数理吉凶
每日运势 /daily 属相 + 日期确定性运势
塔罗占卜 /tarot 78 张牌 + 正逆位 + 单张/三张牌阵
抽签解签 /lottery 40 支签均匀分布
六爻八卦 /liuyao 铜钱摇卦 + 64 卦 + 动爻变卦

开发约定

  • Git 默认分支:master
  • 提交信息:<type>: <中文描述>,type ∈ chore / feat / fix / docs / refactor / perf / test
  • 提交署名:附 Co-Authored-By: Anan (WorkBuddy) <noreply@local>
  • 换行符:代码统一 LF、.bat 保持 CRLF,由 .gitattributes 强制
  • 不入 git:NOTEBOOK/、PLAN/、.workbuddy/(开发过程笔记与平台数据)
  • 变更记录:有意义的变更同步更新 CHANGELOG.md

经验教训索引

详见 NOTEBOOK/learnings.md(项目本地,不入 git)。关键教训摘要:

  • L9:3D 翻牌动画优先用 CSS transition 替代 keyframe animation(Chrome 152 nested preserve-3d backface 误判)
  • L11:构建前必停 dev server → mv .next → build(dev server 锁目录导致 mv Permission denied)
  • L15:PowerShell 中 $env:CODEBUDDY_SAFE_DELETE_ENABLED='0' 可关闭 safe-delete shim
  • L16:NO_PROXY=github.com git push 绕过 Clash 代理导致的 schannel TLS 握手失败
  • L17:CloudBase CLI 3.x 登录态存 ~/.config/.cloudbase/auth.json;无 TTY 时预写 usage.json({"agreeCollect": false})跳过遥测卡死询问

许可证

本项目基于 MIT License 开源,Copyright (c) 2026 Gazer-887。

  • 可自由使用、修改、分发、商用,仅需保留版权声明与许可声明
  • 占卜内容(八字/塔罗/签文/六爻等)取材于中国传统文化公有领域素材,仅作娱乐与文化参考,不构成任何专业建议
  • 四套主题视觉、动画体系与文案为原创设计

免责声明:本网站所有占卜结果由确定性算法生成,仅供娱乐,请勿作为决策依据。

About

🔮 Diviner · 卜兮 —— 去古板化的现代占卜算卦网站 | 八字 / 姓名 / 每日运势 / 塔罗 / 抽签 / 六爻八卦 | Next.js 16 + React 19 静态导出

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages